Difference between revisions of "N900"

From eLinux.org
Jump to: navigation, search
m (Kernel Status)
m (Add Modem Status section)
Line 430: Line 430:
  
 
This git repository is used for development. All other git repositories on internet are older and does not contains all 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.
  
 
== U-Boot ==
 
== U-Boot ==

Revision as of 19:35, 5 September 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.

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.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 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 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
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 RFCv1 (2013-08-11) WIP 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 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 ?
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.

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.

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.