Difference between revisions of "N900"
(PowerVR is part of OMAP) |
m (wording update) |
||
(34 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | == Status == | + | The [https://en.wikipedia.org/wiki/Nokia_N900 Nokia N900] is a Linux based smartphone from Nokia, which has been released in November 2009. It's sold with [[Maemo]] using a patched 2.6.28 kernel (adding board support and lots of drivers). Since then board support has been added to the mainline kernel and most hardware can be used with a current kernel. Details can be seen in the table below. |
− | {| | + | |
+ | == Kernel Status == | ||
+ | {| class="wikitable" | ||
! chip !! purpose | ! chip !! purpose | ||
! docs !! impl !! merge | ! docs !! impl !! merge | ||
! board impl !! board merge | ! board impl !! board merge | ||
+ | ! firmware | ||
|- | |- | ||
| OMAP3430 || System-on-chip | | OMAP3430 || System-on-chip | ||
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 60: | Line 63: | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
|- | |- | ||
− | | * | + | | * OMAP 3 Camera ISP || OMAP3 Camera Chip Connection Bus |
− | | | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| 2.6.39-rc1 | ||
+ | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |- | ||
+ | | * OMAP DSS || Video HW abstraction layer | ||
+ | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
− | |||
− | |||
− | |||
− | |||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
− | |||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
|- | |- | ||
− | | * OMAP | + | | * OMAP DRM || KMS video driver |
|bgcolor="cyan"| N/A | |bgcolor="cyan"| N/A | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 78: | Line 81: | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
|- | |- | ||
− | | * TMS320 C64x || DSP | + | | * TMS320 C64x || DSP (also called IVA 2+) |
|bgcolor="lime"| [http://www.ti.com/lit/ug/spru395b/spru395b.pdf datasheet] | |bgcolor="lime"| [http://www.ti.com/lit/ug/spru395b/spru395b.pdf datasheet] | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 91: | Line 94: | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | ? | + | | * OMAP Watchdog || Watchdog |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] |
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=67c0f55468443ef8a1edc6ee92f9a92e4915be24 3.8] | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |- | ||
+ | | * OMAP MMC/SD/SDIO || eMMC & SD/MMC card | ||
+ | |bgcolor="lime"| [http://www.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZV.zip OMAP34xx TRM] | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 122: | Line 132: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |- | ||
+ | | * || Watchdog | ||
+ | |bgcolor="lime"| part of TI TWL4030 | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b2c4e4b2696287671723ef986f0db23cf4f52f15 3.8] | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
|- | |- | ||
| GPIO || Camera button | | GPIO || Camera button | ||
Line 137: | Line 154: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|- | |- | ||
− | | LP5523 || LED | + | | LP5523 || LED driver |
|bgcolor="lime"| [http://www.ti.com/product/LP5523 documentation] | |bgcolor="lime"| [http://www.ti.com/product/LP5523 documentation] | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
Line 164: | Line 181: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| 2009-11-22 | |bgcolor="lime"| 2009-11-22 | ||
+ | |bgcolor="yellow"| [https://api.pub.meego.com/public/source/CE:Adaptation:N900/ti-wl1251-firmware/ti-wl1251-firmware_0.4.tar.bz2 wl1251-fw.bin] | ||
|- | |- | ||
| Si4713 || FM transmitter | | Si4713 || FM transmitter | ||
Line 180: | Line 198: | ||
|- | |- | ||
| TLV320AIC3X || Digital audio data serial | | TLV320AIC3X || Digital audio data serial | ||
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.ti.com/product/tlv320aic33#technicaldocuments ti.com] |
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| 2.6.25 | |bgcolor="lime"| 2.6.25 | ||
Line 211: | Line 229: | ||
|bgcolor="lime"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b1a808ff436343956a6ae63178ea1810c5e5a3a1 3.4-rc2] | |bgcolor="lime"| [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=b1a808ff436343956a6ae63178ea1810c5e5a3a1 3.4-rc2] | ||
|bgcolor="cyan" colspan="2"| N/A | |bgcolor="cyan" colspan="2"| N/A | ||
+ | |- | ||
+ | | Omap SSI || Synchronous Serial Interface | ||
+ | |bgcolor="yellow"| code | ||
+ | |bgcolor="yellow"| [http://article.gmane.org/gmane.linux.kernel/1153543 RFCv5 (2011-06-10)] | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
+ | |bgcolor="red"| No | ||
|- | |- | ||
| * TI NaviLink NL5350 || GPS (via Phonet modem protocol) | | * TI NaviLink NL5350 || GPS (via Phonet modem protocol) | ||
|bgcolor="yellow"| [http://wiki.maemo.org/N900_Hardware_GPS reveng] | |bgcolor="yellow"| [http://wiki.maemo.org/N900_Hardware_GPS reveng] | ||
− | |bgcolor="cyan" colspan="4"| Userspace [http://luke.dashjr.org/tmp/code/gps2.c | + | |bgcolor="cyan" colspan="4"| Userspace [http://luke.dashjr.org/tmp/code/gps2.c gps2.c] |
|- | |- | ||
| * || A-GPS | | * || A-GPS | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
− | |bgcolor="cyan" colspan="4"| Client | + | |bgcolor="cyan" colspan="4"| Client SUPL application: http://www.tajuma.com/supl/index.html |
|- | |- | ||
| isp1704 || USB charger detector | | isp1704 || USB charger detector | ||
− | |bgcolor=" | + | |bgcolor="lime"| [http://datasheetz.com/NXP/ISP1704A_1/ISP1704A_1.html datasheet] |
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| 2.6.37-rc1 | |bgcolor="lime"| 2.6.37-rc1 | ||
Line 249: | Line 274: | ||
|- | |- | ||
| ADP 1653 || Flash Torch | | ADP 1653 || Flash Torch | ||
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.analog.com/static/imported-files/data_sheets/ADP1653.pdf datasheet] |
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="lime"| 3.1-rc1 | |bgcolor="lime"| 3.1-rc1 | ||
− | |bgcolor="lime"| Yes | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/2/17/61 Yes] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | | + | | rx51_battery || Battery design capacity, battery temperature |
− | |bgcolor="lime"| [http://www.ti.com/product/ | + | |bgcolor="yellow"| code |
− | |bgcolor=" | + | |bgcolor="lime"| [https://lkml.org/lkml/2012/10/30/446 Yes] |
− | |bgcolor=" | + | |bgcolor="lime"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=04930baf28f08cd275e4afbf5a335b42335705df 3.8] |
+ | |bgcolor="lime"| [https://lkml.org/lkml/2012/11/19/194 Yes] | ||
+ | |bgcolor="lime"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=7605c0b0d384ec98f80abc6ac2148a6cd993026c 3.8] | ||
+ | |- | ||
+ | | bq24150a || Battery charger | ||
+ | |bgcolor="lime"| [http://www.ti.com/product/bq24150a documentation] | ||
+ | |bgcolor="lime"| [https://lkml.org/lkml/2012/11/2/429 Yes] | ||
+ | |bgcolor="lime"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=0bc98cc6155205b615a9d29a2d54d1b839521c04 3.8] | ||
|bgcolor="yellow"| WIP | |bgcolor="yellow"| WIP | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
|- | |- | ||
− | | STM VS6555 || Webcam | + | | STM VS6555 || Front Webcam |
|bgcolor="lime"| [http://natisbad.org/N900/ref/VS6555.pdf datasheet] | |bgcolor="lime"| [http://natisbad.org/N900/ref/VS6555.pdf datasheet] | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| [https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=ccfc97bdb5ae8b8edc55169ac6924e08449836ac v3.4-rc4] | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
− | |||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="lime"| No firmware needed | ||
|- | |- | ||
| ET8EK8 || Main Camera | | ET8EK8 || Main Camera | ||
Line 275: | Line 308: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="yellow"| [https://gitorious.org/omap3camera/camera-firmware et8ek8-0002.bin] | ||
|- | |- | ||
| AD5820 || Autofocus | | AD5820 || Autofocus | ||
Line 289: | Line 323: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="red"| No | |bgcolor="red"| No | ||
+ | |bgcolor="yellow"| [https://api.pub.meego.com/public/source/CE:Adaptation:N900/bcm-bt-firmware/bcm-bt-firmware-0.21rc3.tar.bz2 bcmfw.bin] | ||
|- | |- | ||
| * || FM/RDS receiver | | * || FM/RDS receiver | ||
Line 298: | Line 333: | ||
|- | |- | ||
| IR Diode on GPIO || Infrared/CIR transmitter | | IR Diode on GPIO || Infrared/CIR transmitter | ||
− | |bgcolor=" | + | |bgcolor="cyan"| N/A |
− | |bgcolor="lime"| [http:// | + | |bgcolor="lime"| [http://www.spinics.net/lists/linux-omap/msg75258.html Yes] |
− | + | |bgcolor="lime"| [http://www.spinics.net/lists/linux-omap/msg75258.html 3.7-rc1] | |
− | |bgcolor="lime"| [http:// | + | |bgcolor="lime"| [http://www.spinics.net/lists/linux-omap/msg75257.html Yes] |
− | |bgcolor=" | + | |bgcolor="lime"| [http://www.spinics.net/lists/linux-omap/msg75257.html 3.7-rc1] |
|- | |- | ||
− | | | + | | omap3-rom-rng || OMAP3 ROM Random Number Generator support |
− | |bgcolor="yellow"| | + | |bgcolor="yellow"| code |
− | |bgcolor="lime"| [ | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/2/28/452 Yes] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
− | |bgcolor="lime"| [ | + | |bgcolor="lime"| [https://lkml.org/lkml/2013/2/28/452 Yes] |
|bgcolor="red"| No | |bgcolor="red"| No | ||
|} | |} | ||
− | + | == Kernel git repository for N900 == | |
− | + | There is git repository for upstream linux kernel with all N900 patches. | |
− | + | https://gitorious.org/linux-n900/linux-n900 | |
+ | |||
+ | This git repository is used for development. All other git repositories on internet are older and does not contains all patches. | ||
== U-Boot == | == U-Boot == | ||
− | Instead of booting the kernel directly from NOLO (which restricts you to using | + | Instead of booting the kernel directly from NOLO (which restricts you to using exactly one kernel), U-Boot can be used as second bootloader. The Maemo kernel can be appended to U-Boot to keep the existing Maemo installation working (U-Boot must be located at the location of the Maemo kernel). The resulting boot process will end up like this: NOLO -> U-Boot -> Kernel. |
− | |||
− | the location | ||
− | + | Pali Rohár has been working on getting the N900 support into the mainline U-Boot: | |
− | + | {| class="wikitable" | |
− | + | !description | |
− | + | !date | |
− | + | !status | |
− | + | |- | |
− | + | |Board Support | |
− | + | |2012-10-29 | |
− | + | |bgcolor="lime"| [http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=ed407be53e1e8f0be90d5723ca71ab1c37e2eed8 mainline] | |
− | + | |- | |
− | [ | + | |Bootmenu Support |
− | + | |2013-03-07 | |
− | + | |bgcolor="lime"| [http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=d999398822c6d57335677bc4ecc6bea4a569492f mainline] | |
− | + | |} | |
− | |||
− | |||
− | + | Currently all U-Boot development for the Nokia N900 is done in this git repository: https://gitorious.org/u-boot-shr/u-boot (branch pali). | |
− | |||
− | + | There's also a thread on talk.maemo.org, where the latest released & tested version can be found: http://talk.maemo.org/showthread.php?t=81613 | |
− | |||
− | |||
− | |||
− | + | == Flashing == | |
− | + | There is an open source flasher application called 0xFFFF, which is working with the Nokia N900. Git repository is on: https://gitorious.org/0xffff/0xffff | |
− | |||
− |
Revision as of 12:26, 2 April 2013
The Nokia N900 is a Linux based smartphone from Nokia, which has been released in November 2009. It's sold with Maemo using a patched 2.6.28 kernel (adding board support and lots of drivers). Since then board support has been added to the mainline kernel and most hardware can be used with a current kernel. Details can be seen in the table below.
Kernel Status
chip | purpose | docs | impl | merge | board impl | board merge | firmware |
---|---|---|---|---|---|---|---|
OMAP3430 | System-on-chip | OMAP34xx TRM | Yes | Yes | Yes | Yes | |
* Cortex A8 | CPU | ARM infocenter | Yes | Yes | N/A | ||
* * ARMv7 | Instruction set | ARM infocenter | Yes | Yes | N/A | ||
* * NEON | Media Extensions | ARM infocenter | Yes | Yes | N/A | ||
* * Thumb | Code compression | ARM infocenter | Yes | by 2.6.12 ? | N/A | ||
* * Thumb2 | Code compression | ARM infocenter | Yes | Yes | N/A | ||
* * ThumbEE | Instruction Set for JIT compilers | ARM infocenter | Yes | Yes | N/A (Userspace: Java VM?) | ||
* * VFP | Floating-point coprocessor | ARM infocenter | Yes | by 2.6.12 ? | N/A | ||
* M-Shield | AES acceleration | code | Yes | 2.6.37-rc1 | N/A | ||
* OMAP 3 Camera ISP | OMAP3 Camera Chip Connection Bus | OMAP34xx TRM | Yes | 2.6.39-rc1 | N/A | ||
* OMAP DSS | Video HW abstraction layer | OMAP34xx TRM | Yes | Yes | N/A | ||
* OMAP DRM | KMS video driver | N/A | Yes | 3.3-rc1 | N/A | ||
* TMS320 C64x | DSP (also called IVA 2+) | datasheet | Yes | Yes | N/A (Userspace: gst-dsp) | ||
* PowerVR SGX530 | OpenGL ES and OpenVG acceleration | No | No | No | No | No | |
* OMAP Watchdog | Watchdog | OMAP34xx TRM | Yes | 3.8 | Yes | Yes | |
* OMAP MMC/SD/SDIO | eMMC & SD/MMC card | OMAP34xx TRM | Yes | Yes | Yes | Yes | |
TI TWL4030 | multifunction (I2C) | TPS65950 TRM | N/A | ||||
* | Audio | part of TI TWL4030 | Yes | Yes | Yes | Yes | |
* | Vibrator | part of TI TWL4030 | Yes | Yes | Yes | 2.6.39-rc1 | |
* | Real-Time Clock | part of TI TWL4030 | Yes | Yes | N/A | ||
* | Watchdog | part of TI TWL4030 | Yes | 3.8 | Yes | Yes | |
GPIO | Camera button | N/A | Yes | Yes | Yes | Yes | |
Taos TSL2563 | Ambient light sensor | datasheet | Yes | 2.6.33 | Yes | Yes | |
LP5523 | LED driver | documentation | Yes | 2.6.37-rc2 | Yes | 3.1-rc1 | |
Sony ACX565AKM | LCD panel | code | Yes | 2.6.35 | Yes | 2.6.36 | |
TI TSC2005 | Touchscreen controller | datasheet | 2.6.39-rc1 | 2.6.39-rc1 | Yes | 3.3-rc1 | |
WL1251 | 802.11b/g WiFi | code | Yes | 2.6.31 | Yes | 2009-11-22 | wl1251-fw.bin |
Si4713 | FM transmitter | datasheet | Yes | 2.6.32 | Yes | Yes | |
TPA6130a2 | Headphone amplifier | datasheet | Yes | 2.6.33 | Yes | Yes | |
TLV320AIC3X | Digital audio data serial | ti.com | Yes | 2.6.25 | Yes | Yes | |
GPIO | Proximity sensor | N/A | Yes | Yes | Yes | Yes | |
GPIO | Keyboard | N/A (layout: code) | Yes | 2.6.33 | Yes | Yes | |
Phonet | Modem protocol | code | Yes | 2.6.28 | N/A | ||
HSI | Modem Bus Framework | code | Yes | 3.4-rc2 | N/A | ||
Omap SSI | Synchronous Serial Interface | code | RFCv5 (2011-06-10) | No | No | No | |
* TI NaviLink NL5350 | GPS (via Phonet modem protocol) | reveng | Userspace gps2.c | ||||
* | A-GPS | No | Client SUPL application: http://www.tajuma.com/supl/index.html | ||||
isp1704 | USB charger detector | datasheet | Yes | 2.6.37-rc1 | Yes | 2011-04-20 | |
bq27200 | Battery monitor chip | documentation | Yes | 2.6.28 | patch | 3.3-rc1 | |
OneNAND | Flash memory | code | Yes | 2.6.15 | Yes | Yes | |
LIS302DL | Accelerometers | datasheet | Yes | 2.6.32 | patch | 3.5-rc1 | |
ADP 1653 | Flash Torch | datasheet | Yes | 3.1-rc1 | Yes | No | |
rx51_battery | Battery design capacity, battery temperature | code | Yes | 3.8 | Yes | 3.8 | |
bq24150a | Battery charger | documentation | Yes | 3.8 | WIP | No | |
STM VS6555 | Front Webcam | datasheet | Yes | v3.4-rc4 | No | No | No firmware needed |
ET8EK8 | Main Camera | datasheet | Yes | No | Yes | No | et8ek8-0002.bin |
AD5820 | Autofocus | code | Yes | No | Yes | No | |
BCM2048 | Bluetooth | old code | Yes | No | Yes | No | bcmfw.bin |
* | FM/RDS receiver | old code | Yes | No | Yes | No | |
IR Diode on GPIO | Infrared/CIR transmitter | N/A | Yes | 3.7-rc1 | Yes | 3.7-rc1 | |
omap3-rom-rng | OMAP3 ROM Random Number Generator support | code | Yes | No | Yes | No |
Kernel git repository for N900
There is git repository for upstream linux kernel with all N900 patches.
https://gitorious.org/linux-n900/linux-n900
This git repository is used for development. All other git repositories on internet are older and does not contains all patches.
U-Boot
Instead of booting the kernel directly from NOLO (which restricts you to using exactly one kernel), U-Boot can be used as second bootloader. The Maemo kernel can be appended to U-Boot to keep the existing Maemo installation working (U-Boot must be located at the location of the Maemo kernel). The resulting boot process will end up like this: NOLO -> U-Boot -> Kernel.
Pali Rohár has been working on getting the N900 support into the mainline U-Boot:
description | date | status |
---|---|---|
Board Support | 2012-10-29 | mainline |
Bootmenu Support | 2013-03-07 | mainline |
Currently all U-Boot development for the Nokia N900 is done in this git repository: https://gitorious.org/u-boot-shr/u-boot (branch pali).
There's also a thread on talk.maemo.org, where the latest released & tested version can be found: http://talk.maemo.org/showthread.php?t=81613
Flashing
There is an open source flasher application called 0xFFFF, which is working with the Nokia N900. Git repository is on: https://gitorious.org/0xffff/0xffff