Difference between revisions of "N800"

From eLinux.org
Jump to: navigation, search
(Status)
(Status)
Line 184: Line 184:
 
| ?
 
| ?
 
|-
 
|-
| * Retu || N8x0 || ??? including watchdog
+
| * Retu/Vilma || N8x0 || ??? including watchdog
 
|bgcolor="yellow"| old code
 
|bgcolor="yellow"| old code
 
|bgcolor="orange"| Linux-OMAP
 
|bgcolor="orange"| Linux-OMAP
Line 190: Line 190:
 
| ?
 
| ?
 
|-
 
|-
| * Tahvo || N8x0 || ???
+
| * Tahvo/Betty || N8x0 || ???
 
|bgcolor="yellow"| old code
 
|bgcolor="yellow"| old code
 
|bgcolor="orange"| Linux-OMAP
 
|bgcolor="orange"| Linux-OMAP

Revision as of 03:01, 6 June 2010

Overview

This page is about adding Nokia N800/N810 support to Linux mainline kernels. N800/N810 (from now on called just n8x0) has been in linux-omap tree far too long, we need to get it finally to mainline. There has been discussions on the linux-omap mailing list about this:

All the information about n8x0 mainline inclusion is scattered and the purpose of this page is to collect them into one place. As this is a wiki, it's encouraged for the people to improve the page based on their knowledge.

Status

chip dev purpose docs impl merge board impl board merge
OMAP2420 N8x0 System-on-chip code Yes 2.6.15 Yes 2.6.32
* ARMv6 N8x0 CPU code Yes by 2.6.12 N/A
* * SIMD N8x0 Media Extensions  ?
* * Thumb N8x0 Code compression code Yes by 2.6.12 ?  ?
* * Jazelle N8x0 Java acceleration  ?
* * VFP N8x0 Floating-point coprocessor code Yes by 2.6.12 ?  ?
* TMS320 C55x N8x0 DSP old code No No  ?
* PowerVR MBX N8x0 OpenGL ES and OpenVG acceleration No No No No No
* OMAP Boot Tags N8x0 Provides boot information from bootloader (NOLO) code Yes needs rewrite N/A
* OMAP MMC N8x0 SD/MMC cards code Yes 2.6.22 untested 2.6.34
* ??? N8x0 Internal UART/Serial code Yes Yes Yes 2.6.32
* * GPS5300 N810 A-GPS chipset No No No No No
tcm825x N8x0 Webcam + i2c bus code Yes 2.6.24 No No
* tea5761 N800 FM radio code Yes 2.6.26 No No
* lm8323 N810 Keyboard code Yes 2.6.31 No No
* tsl2563 N810 (Both?) Ambient light sensor code Yes 2.6.33 No No
* lp5521 N810 (Both?) 3 channel LED code Yes No No No
blizzard N8x0 LCD controller code Yes 2.6.23 usable needs tahvo
menelaus N8x0 GPIO extender + i2c bus + ??? code Yes 2.6.29 untested 2.6.34 ?
* tmp105 N8x0 Temperature sensor (menelaus GPIO) code untested 2.6.35 no no
McSPI N8x0 SPI bus code Yes 2.6.23 Yes 2.6.32
* ??? N8x0 LCD panel (compatible with MIPID) code Yes 2.6.32 usable w/ blizzard
* cx3110x / stlc4550 N8x0 802.11b/g WiFi code Yes 2.6.31 Yes 2.6.32
* tsc2301 N800 Touchscreen + Keypad + GPIO + Audio old code No No No No
* tsc2005 N810 Touchscreen controller code Yes No No No
Cbus N8x0  ??? old code Linux-OMAP needs rewrite  ?
* Retu/Vilma N8x0  ??? including watchdog old code Linux-OMAP No  ?
* Tahvo/Betty N8x0  ??? old code Linux-OMAP No  ?
 ??? N8x0 Battery charger Slightly No No No No
OneNAND N8x0 Flash memory code Yes 2.6.15 Yes 2.6.32
TUSB6010 N8x0 USB code Yes 2.6.27 untested 2.6.34

Patches

Some older patches are available from:

http://www.valot.fi/kalle/n8x0/patches/

The patches are against latest Linus' tree. This is to make merge to the mainline as easy as possible.

The compilation instructions:

make ARCH=arm CROSS_COMPILE=arm-linux- n8x0_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-
flasher -k arch/arm/boot/zImage -f -b

The patches have been, at least, tested with Sourcery G++ Lite 2008q3-66.

Communication

All discussion should happen at <linux-omap@vger.kernel.org> (subscription instructions). Kalle Valo <kalle.valo@iki.fi> coordinates all this, so you might want to contact him in case there's something private you want to discuss and CC on all n8x0 related patches. The public communication in the mailing list is the preferred method.

The Plan

This a a draft and very much work in progress!

Most of the drivers needed by n8x0 should be already in mainline, notably exception being the Nokia's proprietary cbus support. But this must be checked.

  1. platform data support for omap serial driver
  2. n8x0 board file
    1. serial port
    2. onenand
    3. spi
    4. display
    5. touchscreen
    6. keyboard
    7. wlan
    8. usb
  3. cbus
    • should be converted to use spi framework and send to inclusion for mainline
  4. retu
    • should use new cbus driver
  5. tahvo
    • should use new cbus driver

User space interfaces

Diablo user space components use non-standard kernel interfaces and most likely the interfaces are not acceptable to mainline. If we want to get diablo running with latest mainline kernels, this needs to be solved somehow. (Do we really want that or instead focus, for example, on Mer?)

Identified non-standard interfaces:

  • watchdog interface used by dsme
  • bme interface
  • private Wireless Extension calls used by wlancond/eapd
  • audio and DSP in general
  • maybe also display control
  • /proc/component_version read by linuxrc from initfs
  • /proc/bootreason read by dsme

In theory it might be possible to implement an out-of-tree module or separate patchset which provide the diablo specific interfaces to user space. This needs to be investigated.

Tips

Simplify make

To avoid using adding ARCH variable to every make command add a file named GNUmakefile with the contents below and then you can run make without any options. Thanks to Johannes Berg for the tip.

ARCH=arm
CROSS_COMPILE=arm-linux-
include Makefile

Avoid CodeSourcery G++ Lite 2007q3-53 release

Kernel compiled with 2007q3-53 fails to boot:

<6>OMAP242x GPIO hardware version 1.8                                           
<6>OMAP clockevent source: GPTIMER1 at 32000 Hz                                 
Console: colour dummy device 80x30                                              
<6>Calibrating delay loop... 

Links