Difference between revisions of "N900"

From eLinux.org
Jump to: navigation, search
(Kernel Status: rx51 smc code will be in 3.13)
(Kernel Status: direct link to isp1704 pdf)
Line 343: Line 343:
 
|-
 
|-
 
| isp1704 || USB charger detector
 
| isp1704 || USB charger detector
|bgcolor="lime"| [http://datasheetz.com/NXP/ISP1704A_1/ISP1704A_1.html datasheet]
+
|bgcolor="lime"| [http://pdf.datasheetz.com/NXP/ISP1704A_1/ISP1704A_1.pdf datasheet]
 
|bgcolor="lime"| Yes
 
|bgcolor="lime"| Yes
 
|bgcolor="lime"| 2.6.37-rc1
 
|bgcolor="lime"| 2.6.37-rc1

Revision as of 16:13, 11 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.

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 3.13-rc1 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: PATCHv3, Patch for DTS
* Power Button part of TI TWL4030 Yes Yes Yes Yes PATCHv7
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 Patch 1: WIP 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 RFC
* 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, depends on omap3isp
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, 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 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 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.