N900
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
| 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