From eLinux.org
Revision as of 03:14, 23 September 2013 by Pali (Talk | contribs) (Kernel Status: Update table and links to patches)

Jump to: navigation, search

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


  • 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.12
* Cortex A8 CPU ARM infocenter Yes Yes N/A 3.12
* * 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  ?
* 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  ?
* OMAP MMC/SD/SDIO eMMC & SD/MMC card OMAP34xx TRM Yes Yes Yes Yes  ?
TI TWL4030 multifunction (I2C) TPS65950 TRM N/A 3.12
* 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 3.12
TI TSC2005 Touchscreen controller datasheet 2.6.39-rc1 2.6.39-rc1 Yes 3.3-rc1 3.12
WL1251 802.11b/g WiFi code Yes 2.6.31 Yes 2009-11-22  ? wl1251-fw.bin
* Packet injection support code Yes No N/A
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 3.4-rc2 N/A
* hsi_char HSI client driver used by N900 code 3.4-rc2 No No
* 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 RFCv2 (2013-09-15) 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  ?
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 WIP  ?
rx51_battery Battery design capacity, battery temperature code Yes 3.8 Yes 3.8  ?
bq24150a Battery charger documentation Yes 3.8 Yes WIP  ?
STM VS6555 Front Webcam datasheet Yes 3.4-rc4 Yes No  ? No firmware needed
ET8EK8 Main Camera datasheet Yes No Yes No  ? Firmware was integrated into driver (it was only data structure)
AD5820 Autofocus datasheet for AD5821, which may be similar Yes No Yes No  ?
BCM2048 Bluetooth old code Yes WIP 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 WIP Yes WIP  ?
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.


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.


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/


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


There is an open source flasher application called 0xFFFF, which is working with the Nokia N900.