Difference between revisions of "N900"
m (TPA DTS status) |
m (add power button) |
||
Line 182: | Line 182: | ||
|bgcolor="lime"| Yes | |bgcolor="lime"| Yes | ||
|bgcolor="yellow"| WIP: [https://lkml.org/lkml/2013/10/9/505 Patch 1], [https://lkml.org/lkml/2013/10/9/506 Patch 2] | |bgcolor="yellow"| WIP: [https://lkml.org/lkml/2013/10/9/505 Patch 1], [https://lkml.org/lkml/2013/10/9/506 Patch 2] | ||
+ | |- | ||
+ | | * || Power Button | ||
+ | |bgcolor="lime"| part of TI TWL4030 | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="lime"| Yes | ||
+ | |bgcolor="yellow"| [https://lkml.org/lkml/2013/10/23/327 WIP] | ||
|- | |- | ||
| GPIO || Camera button | | GPIO || Camera button |
Revision as of 08:20, 23 October 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.
Contents
Kernel Status
Colors:
- Green = Available
- Yellow = Work in Progress (WIP), for docs: no documentation, but kernel code available
- Red = Missing
- Gray = Deprecated
- Cyan = Not Available (N/A)
Chip | Purpose | Docs | Driver | Mainline | Board | Board Mainline | Device Tree | Firmware |
---|---|---|---|---|---|---|---|---|
OMAP3430 | System-on-chip | OMAP34xx TRM | Yes | Yes | Yes | Yes | 3.13 | |
* Cortex A8 | CPU | ARM infocenter | Yes | Yes | N/A | 3.13 | ||
* * ARMv7 | Instruction set | ARM infocenter | Yes | Yes | N/A | |||
* * NEON | Media Extensions | ARM infocenter | Yes | Yes | N/A | |||
* * Thumb | Code compression | ARM infocenter | Yes | 2.6.12 | N/A | |||
* * Thumb2 | Code compression | ARM infocenter | Yes | Yes | patch1 patch2 | WIP | No | |
* * ThumbEE | Instruction Set for JIT compilers | ARM infocenter | Yes | Yes | N/A (Userspace: Java VM?) | |||
* * VFP | Floating-point coprocessor | ARM infocenter | Yes | 2.6.12 | N/A | |||
* M-Shield | AES, SHA1 and MD5 acceleration (needs updated X-Loader) | code | Yes | 2.6.37-rc1 | Yes | Yes | No | |
* 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 | No | |
* OMAP Watchdog | Watchdog | OMAP34xx TRM | Yes | 3.8 | Yes | Yes | 3.13 | |
* OMAP MMC/SD/SDIO | eMMC | OMAP34xx TRM | Yes | Yes | Yes | Yes | No | |
* OMAP MMC/SD/SDIO | SD/MMC card | OMAP34xx TRM | Yes | Yes | Yes | Yes | 3.13 | |
TI TWL4030 | multifunction (I2C) | TPS65950 TRM | N/A | 3.13 | ||||
* | Audio | part of TI TWL4030 | Yes | Yes | Yes | Yes | 3.13 | |
* | Vibrator | part of TI TWL4030 | Yes | Yes | Yes | 2.6.39-rc1 | 3.13 | |
* | Real-Time Clock | part of TI TWL4030 | Yes | Yes | N/A | 3.13 | ||
* | Watchdog | part of TI TWL4030 | Yes | 3.8 | Yes | Yes | 3.13 | |
* | Keypad | part of TI TWL4030 | Yes | 2.6.33 | Yes | Yes | WIP: Patch 1, Patch 2 | |
* | Power Button | part of TI TWL4030 | Yes | Yes | Yes | Yes | WIP | |
GPIO | Camera button | N/A | Yes | Yes | Yes | Yes | 3.13 | |
Taos TSL2563 | Ambient light sensor | datasheet | Yes | 2.6.33 | Yes | Yes | No | |
LP5523 | LED driver | documentation | Yes | 2.6.37-rc2 | Yes | 3.1-rc1 | Patch 1: 3.13, Patch 2: 3.13 | |
Sony ACX565AKM | LCD panel | code | Yes | 2.6.35 | Yes | 2.6.36 | 3.13 | |
TI TSC2005 | Touchscreen controller | datasheet | 2.6.39-rc1 | 2.6.39-rc1 | Yes | 3.3-rc1 | 3.13 | |
WL1251 | 802.11b/g WiFi | code | Yes | 2.6.31 | Yes | 2009-11-22 | No | wl1251-fw.bin wl1251-nvs.bin |
* | Packet injection support | code | Yes | No | N/A | |||
Si4713 | FM transmitter | datasheet | Yes | 2.6.32 | Yes | Yes | No | |
TPA6130a2 | Headphone amplifier | datasheet | Yes | 2.6.33 | Yes | Yes | WIP | |
TLV320AIC3X | Digital audio data serial | ti.com | Yes | 2.6.25 | Yes | Yes | 3.13 | |
Board | Sound SoC Wiring | N/A | Yes | Yes | No | No | ||
* | All sound alsa switches and channels | In maemo fremantle kernel | No | No | N/A | |||
GPIO | Proximity sensor | N/A | Yes | Yes | Yes | Yes | 3.13 | |
Phonet | Modem protocol | code | Yes | 2.6.28 | N/A | |||
HSI | Modem Bus Framework | code | 3.4-rc2 | N/A | ||||
* hsi_char | HSI client driver used by N900 | code | 3.4-rc2 | No | WIP | |||
* ssi_protocol | HSI client driver used by N900 | code | Yes | No | No | No | ||
* cmt_speech | HSI client driver used by N900 | code | Yes | No | No | No | ||
Omap SSI | Synchronous Serial Interface | code | RFCv3 (2013-10-06) | No | WIP | |||
* 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 | No | |
bq27200 | Battery monitor chip | documentation | Yes | 2.6.28 | patch | 3.3-rc1 | 3.13 | |
OneNAND | Flash memory | code | Yes | 2.6.15 | Yes | Yes | 3.13 | |
LIS302DL | Accelerometers | datasheet | Yes | 2.6.32 | patch | 3.5-rc1 | No | |
ADP 1653 | Flash Torch | datasheet | Yes | 3.1-rc1 | Yes | WIP | No | |
rx51_battery | Battery design capacity, battery temperature | code | Yes | 3.8 | Yes | 3.8 | No | |
bq24150a | Battery charger | documentation | Yes | 3.8 | Yes | WIP | No | |
STM VS6555 | Front Webcam | datasheet | Yes | 3.4-rc4 | Yes | No | No | No firmware needed |
ET8EK8 | Main Camera | datasheet | Yes | No | Yes | No | No | Firmware was integrated into driver (it was only data structure) |
AD5820 | Autofocus | datasheet for AD5821, which may be similar | Yes | No | Yes | No | No | |
BCM2048 | Bluetooth | old code | Yes | WIP | Yes | No | No | bcmfw.bin |
* | FM/RDS receiver | old code | Yes | No | Yes | No | No | |
IR Diode on GPIO | Infrared/CIR transmitter | N/A | Yes | 3.7-rc1 | Yes | 3.7-rc1 | No | |
omap3-rom-rng | OMAP3 ROM Random Number Generator support | code | Yes | WIP | Yes | WIP | No | |
cmt | modem | code | Yes | No | Patch1, Patch2 | No | 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.
Modem Status in Mainline Kernel
Missing drivers to have a working modem in the mainline kernel:
- omap-ssi - the modem is attached via ssi, this driver adds support for the ssi hardware of the omap processor
- ssi-protocol - this adds support for the protocol used to to communicate with the modem (AKA McSAAB)
- cmt-speech - this adds support for the protocol used to exchange peech data with the modem
- cmt - this driver handles the modem's reset pin
There is currently work going on to get the omap-ssi driver into the mainline kernel. This work may be ready for 3.13 or 3.14.
M-Shield
For M-Shield AES, SHA1 and MD5 acceleration is needed updated signed bootloader X-Loader. Without it M-Shield crashing.
More info on: http://maemo.org/community/maemo-developers/n900_aes_and_sha1-md5_hw_acceleration_drivers/
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
- Packages are available in Debian & Ubuntu (apt-get install 0xffff)