Difference between revisions of "N900"
m (simplify table) |
m (→Kernel Status) |
||
Line 217: | Line 217: | ||
|bgcolor="lime" colspan="2"| 2.6.33 | |bgcolor="lime" colspan="2"| 2.6.33 | ||
|bgcolor="lime" colspan="2"| Yes | |bgcolor="lime" colspan="2"| Yes | ||
− | |bgcolor=" | + | |bgcolor="lime"| [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=f95a48834cb9c581eec952215666a323136f339f 3.13-rc1] |
|- | |- | ||
| TLV320AIC3X || Digital audio data serial | | TLV320AIC3X || Digital audio data serial |
Revision as of 04:51, 15 November 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 | 3.13 | |||
* Cortex A8 | CPU | ARM infocenter | Yes | N/A | 3.13 | |||
* * ARMv7 | Instruction set | ARM infocenter | Yes | N/A | ||||
* * NEON | Media Extensions | ARM infocenter | Yes | N/A | ||||
* * Thumb | Code compression | ARM infocenter | 2.6.12 | N/A | ||||
* * Thumb2 | Code compression | ARM infocenter | Yes | 3.13-rc1 | No | |||
* * ThumbEE | Instruction Set for JIT compilers | ARM infocenter | Yes | N/A (Userspace: Java VM?) | ||||
* * VFP | Floating-point coprocessor | ARM infocenter | 2.6.12 | N/A | ||||
* M-Shield | AES, SHA1 and MD5 acceleration (needs updated X-Loader) | code | 2.6.37-rc1 | Yes | No | |||
* OMAP 3 Camera ISP | OMAP3 Camera Chip Connection Bus | OMAP34xx TRM | 2.6.39-rc1 | N/A | No | |||
* OMAP DSS | Video HW abstraction layer | OMAP34xx TRM | Yes | N/A | WIP | |||
* OMAP DRM | KMS video driver | N/A | 3.3-rc1 | N/A | No | |||
* TMS320 C64x | DSP (also called IVA 2+) | datasheet | 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 | 3.8 | Yes | 3.13 | |||
* OMAP MMC/SD/SDIO | eMMC | OMAP34xx TRM | Yes | Yes | No | |||
* OMAP MMC/SD/SDIO | SD/MMC card | OMAP34xx TRM | Yes | Yes | 3.13 | |||
TI TWL4030 | multifunction (I2C) | TPS65950 TRM | N/A | 3.13 | ||||
* | Audio | part of TI TWL4030 | Yes | Yes | 3.13 | |||
* | Vibrator | part of TI TWL4030 | Yes | 2.6.39-rc1 | 3.13 | |||
* | Real-Time Clock | part of TI TWL4030 | Yes | N/A | 3.13 | |||
* | Watchdog | part of TI TWL4030 | 3.8 | Yes | 3.13 | |||
* | Keypad | part of TI TWL4030 | 2.6.33 | Yes | WIP: PATCHv3, Patch for DTS | |||
* | Power Button | part of TI TWL4030 | Yes | Yes | PATCHv7 | |||
GPIO | Camera button | N/A | Yes | Yes | 3.13 | |||
Taos TSL2563 | Ambient light sensor | datasheet | 2.6.33 | Yes | WIP | |||
LP5523 | LED driver | documentation | 2.6.37-rc2 | 3.1-rc1 | Patch 1: 3.13, Patch 2: 3.13 | |||
Sony ACX565AKM | LCD panel | code | 2.6.35 | 2.6.36 | 3.13 (partially) | |||
TI TSC2005 | Touchscreen controller | datasheet | 2.6.39-rc1 | 3.3-rc1 | 3.13 (partially) | |||
WL1251 | 802.11b/g WiFi | code | 2.6.31 | 2009-11-22 | Patch 1: WIP | wl1251-fw.bin wl1251-nvs.bin | ||
* | Packet injection support | code | Yes | WIP | N/A | |||
Si4713 | FM transmitter | datasheet | 2.6.32 | Yes | No | |||
TPA6130a2 | Headphone amplifier | datasheet | 2.6.33 | Yes | 3.13-rc1 | |||
TLV320AIC3X | Digital audio data serial | ti.com | 2.6.25 | Yes | 3.13 | |||
Board | Sound SoC Wiring | N/A | Yes | Yes | No | RFC | ||
* | All sound alsa switches and channels | In maemo fremantle kernel | No | No | N/A | |||
GPIO | Proximity sensor | N/A | Yes | Yes | 3.13 | |||
Phonet | Modem protocol | code | 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 | 2.6.37-rc1 | 2011-04-20 | WIP | |||
bq27200 | Battery monitor chip | documentation | 2.6.28 | 3.3-rc1 | 3.13 | |||
OneNAND | Flash memory | code | 2.6.15 | Yes | 3.13 | |||
LIS302DL | Accelerometers | datasheet | 2.6.32 | 3.5-rc1 | No | |||
ADP 1653 | Flash Torch | datasheet | 3.1-rc1 | Yes | WIP | No, depends on omap3isp | ||
rx51_battery | Battery design capacity, battery temperature | code | 3.8 | 3.8 | No | |||
bq24150a | Battery charger | documentation | 3.8 | Yes | WIP | No | ||
STM VS6555 | Front Webcam | datasheet | 3.4-rc4 | Yes | No | No, depends on omap3isp | No firmware needed | |
ET8EK8 | Main Camera | datasheet | Yes | No | Yes | No | No, depends on omap3isp | Firmware was integrated into driver (it was only data structure) |
AD5820 | Autofocus | datasheet for AD5821, which may be similar | Yes | No | Yes | No | No, depends on omap3isp | |
BCM2048 | Bluetooth | old code | Yes | WIP | Yes | No | No | bcmfw.bin |
* | FM/RDS receiver | old code | Yes | WIP: staging (3.14) | Yes | No | No | |
IR Diode on PWM GPIO | Infrared/CIR transmitter | N/A | 3.7-rc1 | 3.7-rc1 | No | |||
omap3-rom-rng | OMAP3 ROM Random Number Generator support | code | Yes | WIP | 3.13-rc1 | 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)