Difference between revisions of "N900"
(→U-Boot) |
m (→Kernel Status: wl1251 packet injection) |
||
Line 249: | Line 249: | ||
|bgcolor="yellow"| code | |bgcolor="yellow"| code | ||
|bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | |bgcolor="lime"| [https://gitorious.org/linux-n900/linux-n900 Yes] | ||
− | |bgcolor=" | + | |bgcolor="yellow"| [https://lkml.org/lkml/2013/10/26/148 WIP] |
|bgcolor="cyan" colspan="3"| N/A | |bgcolor="cyan" colspan="3"| N/A | ||
|- | |- |
Revision as of 14:08, 26 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 | No | ||
* OMAP DSS | Video HW abstraction layer | OMAP34xx TRM | Yes | Yes | N/A | WIP | ||
* OMAP DRM | KMS video driver | N/A | Yes | 3.3-rc1 | N/A | No | ||
* TMS320 C64x | DSP (also called IVA 2+) | datasheet | Yes | Yes | N/A (Userspace: gst-dsp) | No | ||
* * | DSP patches for Maemo/N900 | code | Yes | No | N/A | |||
* 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 | WIP | |
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 (partially) | |
TI TSC2005 | Touchscreen controller | datasheet | 2.6.39-rc1 | 2.6.39-rc1 | Yes | 3.3-rc1 | 3.13 (partially) | |
WL1251 | 802.11b/g WiFi | code | Yes | 2.6.31 | Yes | 2009-11-22 | dependency | wl1251-fw.bin wl1251-nvs.bin |
* | Packet injection support | code | Yes | WIP | N/A | |||
Si4713 | FM transmitter | datasheet | Yes | 2.6.32 | Yes | Yes | No | |
TPA6130a2 | Headphone amplifier | datasheet | Yes | 2.6.33 | Yes | Yes | queued | |
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 | WIP | 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.
Kernel Compilation
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- make rx51_defconfig make zImage modules
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 |
Now all N900 patches are in upstream U-Boot mainline project (part of U-Boot 2013.04). Source code is on http://git.denx.de/?p=u-boot.git
Debian packaging for Maemo is in this git repository: https://gitorious.org/u-boot-shr/u-boot (branch maemo).
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
More info about U-Boot on N900 is in first post.
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)