N900

Camera
Camera (front & back) drivers are available from this git:. The code is not in the mainline kernel, because of the non-free camera firmware. The driver is supposed to be rewritten to avoid this firmware.

U-Boot
Instead of booting the kernel directly from NOLO (which restricts you to using ONE kernel), U-Boot can be used as second bootloader. The Boot Process will end up like this: NOLO -> U-Boot -> Kernel. The Maemo kernel is appended to U-Boot, since U-Boot will be at the location where the Maemo kernel is located normally.

The U-Boot patches to support the N900 are not yet mainline, but have been proposed for inclusion recently: U-Boot RX51 support

Git repository with N900 patches based on U-Boot master is here: https://gitorious.org/u-boot-shr/u-boot (branch pali)

Modem
The Modem is connected via a bus called SSI, which is an old version of HSI. In linux multiple things are involved to get it working:


 * SSI driver (not yet mainline, WIP)
 * Status 2012-01-09: http://marc.info/?l=linux-omap&m=132611324318625&w=2
 * HSI framework for the SSI driver (linux-next, will probably go into 3.3)
 * PhoNet for userspace communication (mainline since 2.6.28)