Difference between revisions of "N800"
(missing parts) |
m (Added category) |
||
(27 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category: OMAP]] | ||
+ | |||
== Overview == | == Overview == | ||
Line 15: | Line 17: | ||
! board impl !! board merge | ! board impl !! board merge | ||
|- | |- | ||
− | | OMAP Boot Tags || N8x0 || Provides boot information from bootloader (NOLO) | + | | OMAP2420 || N8x0 || System-on-chip |
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.15 | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.32 | ||
+ | |- | ||
+ | | * ARMv6 || N8x0 || CPU | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| by 2.6.12 | ||
+ | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |- | ||
+ | | * * SIMD || N8x0 || Media Extensions | ||
+ | | ? | ||
+ | |- | ||
+ | | * * Thumb || N8x0 || Code compression | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| by 2.6.12 ? | ||
+ | | ? | ||
+ | |- | ||
+ | | * * Jazelle || N8x0 || Java acceleration | ||
+ | | ? | ||
+ | |- | ||
+ | | * * VFP || N8x0 || Floating-point coprocessor | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| by 2.6.12 ? | ||
+ | | ? | ||
+ | |- | ||
+ | | * TMS320 C55x || N8x0 || DSP | ||
+ | |bgcolor="yellow"| old code | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | | ? | ||
+ | | | ||
+ | |- | ||
+ | | * OMAP video || N8x0 || Video output | ||
+ | |bgcolor="yellow"| old? code | ||
+ | |bgcolor="red"| ??? | ||
+ | |bgcolor="red"| ??? | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |- | ||
+ | | * PowerVR MBX || N8x0 || OpenGL ES and OpenVG acceleration | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |- | ||
+ | | * OMAP Boot Tags || N8x0 || Provides boot information from bootloader (NOLO) | ||
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
|bgcolor="orange"| Yes | |bgcolor="orange"| Yes | ||
|bgcolor="red"| needs rewrite | |bgcolor="red"| needs rewrite | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |- | ||
+ | | * OMAP MMC || N8x0 || SD/MMC cards | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.22 | ||
+ | |bgcolor="yellow"| [https://dev.openwrt.org/browser/trunk/target/linux/omap24xx/patches-2.6.35/810-mmc-fixes.patch Patch-1] [https://dev.openwrt.org/browser/trunk/target/linux/omap24xx/patches-2.6.35/811-mmc-multiplexer-fixes.patch Patch-2] | ||
+ | |bgcolor="yellow"| 2.6.34 | ||
+ | |- | ||
+ | | * ??? || N8x0 || Internal UART/Serial | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.32 | ||
+ | |- | ||
+ | | * * GPS5300 || N810 || A-GPS chipset | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
|- | |- | ||
| tcm825x || N8x0 || Webcam + i2c bus | | tcm825x || N8x0 || Webcam + i2c bus | ||
Line 62: | Line 137: | ||
|bgcolor="yellow"| usable | |bgcolor="yellow"| usable | ||
|bgcolor="red"| needs tahvo | |bgcolor="red"| needs tahvo | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| menelaus || N8x0 || GPIO extender + i2c bus + ??? | | menelaus || N8x0 || GPIO extender + i2c bus + ??? | ||
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
− | |bgcolor=" | + | |bgcolor="yellow"| 2.6.35 [https://dev.openwrt.org/browser/trunk/target/linux/omap24xx/patches-2.6.35/811-mmc-multiplexer-fixes.patch Patch] |
− | |bgcolor=" | + | |bgcolor="lime"| 2.6.35 |
− | |bgcolor=" | + | |bgcolor="lime"| 2.6.35 |
|- | |- | ||
| * tmp105 || N8x0 || Temperature sensor (menelaus GPIO) | | * tmp105 || N8x0 || Temperature sensor (menelaus GPIO) | ||
Line 83: | Line 151: | ||
|bgcolor="red"| no | |bgcolor="red"| no | ||
|bgcolor="red"| no | |bgcolor="red"| no | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| McSPI || N8x0 || SPI bus | | McSPI || N8x0 || SPI bus | ||
Line 105: | Line 159: | ||
|bgcolor="lime"| 2.6.32 | |bgcolor="lime"| 2.6.32 | ||
|- | |- | ||
− | | * | + | | * Sharp LS041Y3 || N8x0 || LCD panel (compatible with [[Mobile Industry Processor Interface DBI-C/DCS|MIPID]]) |
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 117: | Line 171: | ||
|bgcolor="lime"| 2.6.31 | |bgcolor="lime"| 2.6.31 | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
− | |bgcolor="lime"| 2.6. | + | |bgcolor="lime"| 2.6.36 |
|- | |- | ||
| * tsc2301 || N800 || Touchscreen + Keypad + GPIO + Audio | | * tsc2301 || N800 || Touchscreen + Keypad + GPIO + Audio | ||
Line 128: | Line 182: | ||
| * tsc2005 || N810 || Touchscreen controller | | * tsc2005 || N810 || Touchscreen controller | ||
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
− | |bgcolor="lime"| [http:// | + | |bgcolor="lime"| 2.6.35 |
− | |bgcolor=" | + | |bgcolor="lime"| 2.6.35 |
+ | |bgcolor="lime"| 2.6.35 | ||
+ | |bgcolor="lime"| 2.6.35 | ||
+ | |- | ||
+ | | TLV320AIC33 || N810 || Audio | ||
+ | |bgcolor="yellow"| [http://focus.ti.com/lit/ug/sbau114/sbau114.pdf Yes?] | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.25 | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
Line 139: | Line 200: | ||
| ? | | ? | ||
|- | |- | ||
− | | * 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 145: | Line 206: | ||
| ? | | ? | ||
|- | |- | ||
− | | * Tahvo || N8x0 || ??? | + | | * Tahvo/Betty || N8x0 || ??? |
|bgcolor="yellow"| old code | |bgcolor="yellow"| old code | ||
|bgcolor="orange"| Linux-OMAP | |bgcolor="orange"| Linux-OMAP | ||
Line 152: | Line 213: | ||
|- | |- | ||
| ??? || N8x0 || Battery charger | | ??? || N8x0 || Battery charger | ||
− | |bgcolor="red"| [http://www.mail-archive.com/maemo-developers@maemo.org/msg15304.html Slightly] | + | |bgcolor="red"| [http://www.mail-archive.com/maemo-developers@maemo.org/msg15304.html Slightly] [https://dev.openwrt.org/browser/trunk/target/linux/omap24xx/patches-2.6.35/900-n810-battery-management.patch non-charge driver] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
Line 164: | Line 225: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| 2.6.32 | |bgcolor="lime"| 2.6.32 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| TUSB6010 || N8x0 || USB | | TUSB6010 || N8x0 || USB | ||
Line 187: | Line 234: | ||
|} | |} | ||
− | == | + | == Progress == |
+ | |||
+ | === Luke-Jr's git tree === | ||
+ | |||
+ | Luke maintains a git tree with his latest work: | ||
+ | |||
+ | http://gitorious.org/~Luke-Jr/linux-omap/n8x0 | ||
+ | |||
+ | === Kalle Valo's old patches === | ||
Some older patches are available from: | Some older patches are available from: | ||
Line 193: | Line 248: | ||
[http://www.valot.fi/kalle/n8x0/patches/ http://www.valot.fi/kalle/n8x0/patches/] | [http://www.valot.fi/kalle/n8x0/patches/ http://www.valot.fi/kalle/n8x0/patches/] | ||
− | The patches are against | + | The patches are against a very old tree of Linus'. This was to make merge to the mainline as easy as possible. |
− | The | + | They have been, at least, tested with [http://www.codesourcery.com/sgpp/lite/arm Sourcery G++ Lite 2008q3-66]. |
+ | |||
+ | === TSC2301 support on linux-omap === | ||
+ | TSC2301 support started in the linux-omap tree somewhere in early 2007. See for example [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=d6aa131160c8eb1c1f72d9c87c826015f1d66945 commit d6aa131...] | ||
+ | |||
+ | The sound driver was removed in [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=c65c733e1af5eac5681233309fed38538c9e06d2 commit c65c733...] (5 Dec 2008) because the driver must be updated to the new ALSA SoC (ASoC) standard. | ||
+ | |||
+ | In 10, 17 Jun 2009 the other TSC2301 related files (keypad, touchscreen and core drivers) were all removed in commits [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=0887c518816bb76968ac155254a4668665bde169 0887c51...], [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=42a0006cc58b5594fd11670d754edbfb37fdeae4 42a0006...] and [http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=6e9c9bde557d257f29b4035b78040d1a371f0f73 6e9c9bd...]. Reason was just a reset to mainline. This code must be checked for compatibility with current mainline, and then resubmitted to there. | ||
+ | |||
+ | == Compiling == | ||
+ | |||
+ | Compilation instructions: | ||
<pre> | <pre> | ||
− | + | ## Set environment parameters for cross-compilation | |
− | make | + | export ARCH=arm CROSS_COMPILE=arm-linux- |
− | flasher -k arch/arm/boot/zImage -f -b | + | ## Load default configuration parameters for the N8x0 |
+ | make n8x0_defconfig | ||
+ | ## Build kernel image and modules | ||
+ | make zImage modules | ||
+ | ## Load kernel for testing | ||
+ | flasher -k arch/arm/boot/zImage -l -b | ||
+ | ## Record, or "flash" kernel into device memory | ||
+ | #flasher -k arch/arm/boot/zImage -f -b | ||
</pre> | </pre> | ||
− | |||
− | |||
== Communication == | == Communication == | ||
− | All discussion should happen at <[mailto:linux-omap@vger.kernel.org linux-omap@vger.kernel.org]> ([http://vger.kernel.org/vger-lists.html#linux-omap subscription instructions]). Kalle Valo <[mailto: | + | All discussion should happen at <[mailto:linux-omap@vger.kernel.org linux-omap@vger.kernel.org]> ([http://vger.kernel.org/vger-lists.html#linux-omap subscription instructions]). Kalle Valo <[mailto:kvalo@adurom.com kvalo@adurom.com]> 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 == | == The Plan == | ||
Line 232: | Line 303: | ||
#* should use new cbus driver | #* should use new cbus driver | ||
− | == User space interfaces == | + | == User space interfaces for Maemo == |
+ | |||
+ | Diablo (Maemo OS 2008) user space components use non-standard kernel interfaces and most likely the interfaces are not acceptable to mainline. To get Diablo running with latest mainline kernels, this needs to be solved somehow. (You should consider instead looking for more recent systems, such as [http://wiki.meego.com/ MeeGo].) | ||
+ | |||
− | |||
Identified non-standard interfaces: | Identified non-standard interfaces: | ||
Line 247: | Line 320: | ||
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. | 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. | ||
+ | |||
+ | [https://dev.openwrt.org/browser/trunk/target/linux/omap24xx/patches-2.6.35/510-retu-tahvo-user-debugging.patch Patch] for dumping retu/tahvo userspace interface activities. | ||
== Tips == | == Tips == | ||
Line 274: | Line 349: | ||
* [http://www.natisbad.org/N810/index.html Debian and recent linux kernel on N810] | * [http://www.natisbad.org/N810/index.html Debian and recent linux kernel on N810] | ||
− | * [http:// | + | * [http://slonopotamus.org/gentoo-on-n8x0 Gentoo for N8x0] |
+ | * [http://bu3sch.de/joomla/index.php/openwrt-on-nokia-n810 OpenWRT on N810] |
Revision as of 18:47, 27 October 2011
Contents
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:
- Re: N810: latest linux-omap-2.6.git master
- OMAP support in mainline?
- Re: Things to do after 2.6.29 gets released
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 | ? | |
* OMAP video | N8x0 | Video output | 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 | Patch-1 Patch-2 | 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.35 Patch | 2.6.35 | 2.6.35 |
* 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 |
* Sharp LS041Y3 | 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.36 |
* tsc2301 | N800 | Touchscreen + Keypad + GPIO + Audio | old code | No | No | No | No |
* tsc2005 | N810 | Touchscreen controller | code | 2.6.35 | 2.6.35 | 2.6.35 | 2.6.35 |
TLV320AIC33 | N810 | Audio | Yes? | Yes | 2.6.25 | 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 non-charge driver | 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 |
Progress
Luke-Jr's git tree
Luke maintains a git tree with his latest work:
http://gitorious.org/~Luke-Jr/linux-omap/n8x0
Kalle Valo's old patches
Some older patches are available from:
http://www.valot.fi/kalle/n8x0/patches/
The patches are against a very old tree of Linus'. This was to make merge to the mainline as easy as possible.
They have been, at least, tested with Sourcery G++ Lite 2008q3-66.
TSC2301 support on linux-omap
TSC2301 support started in the linux-omap tree somewhere in early 2007. See for example commit d6aa131...
The sound driver was removed in commit c65c733... (5 Dec 2008) because the driver must be updated to the new ALSA SoC (ASoC) standard.
In 10, 17 Jun 2009 the other TSC2301 related files (keypad, touchscreen and core drivers) were all removed in commits 0887c51..., 42a0006... and 6e9c9bd.... Reason was just a reset to mainline. This code must be checked for compatibility with current mainline, and then resubmitted to there.
Compiling
Compilation instructions:
## Set environment parameters for cross-compilation export ARCH=arm CROSS_COMPILE=arm-linux- ## Load default configuration parameters for the N8x0 make n8x0_defconfig ## Build kernel image and modules make zImage modules ## Load kernel for testing flasher -k arch/arm/boot/zImage -l -b ## Record, or "flash" kernel into device memory #flasher -k arch/arm/boot/zImage -f -b
Communication
All discussion should happen at <linux-omap@vger.kernel.org> (subscription instructions). Kalle Valo <kvalo@adurom.com> 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.
- platform data support for omap serial driver
- n8x0 board file
- serial port
- onenand
- spi
- display
- touchscreen
- keyboard
- wlan
- usb
- cbus
- should be converted to use spi framework and send to inclusion for mainline
- retu
- should use new cbus driver
- tahvo
- should use new cbus driver
User space interfaces for Maemo
Diablo (Maemo OS 2008) user space components use non-standard kernel interfaces and most likely the interfaces are not acceptable to mainline. To get Diablo running with latest mainline kernels, this needs to be solved somehow. (You should consider instead looking for more recent systems, such as MeeGo.)
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.
Patch for dumping retu/tahvo userspace interface activities.
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...