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.

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)

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.

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:

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
 * Packages are available in Debian & Ubuntu (apt-get install 0xffff)