N900

From eLinux.org
Revision as of 12:26, 2 April 2013 by Sre (talk | contribs) (wording update)
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

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