Adaptation/N8x0

= Nokia N8x0 hardware adaptation =

This page is intended to help track the task required and the progress of creating a hardware adaptation for Mer on the Nokia N8x0 Internet tablets.

Hardware components
Common components
 * OMAP2420 armv6 CPU
 * TMS320 C55x DSP
 * OMAP video output
 * PowerPVR MBX OpenGLES and OpenVG
 * blizzard LCD controller
 * Sharp LS041Y3 LCD Panel
 * OMAP MMC SD/MMC crard
 * OneNAND Flash memory
 * tcm825x web cam
 * tsl2563 Ambient light sensor
 * TUSB6010 USB
 * Retu/Vilma watchdog, ...
 * Tahvo/Betty ...
 * cx3110x/stlc4550 WiFi
 * lp5521 LED
 * tmp105 temperature sensor

The N800 components
 * tsc2301 Touchscreen, Keypad, GPIO, Audio
 * tea5761 FM radio

The N810 components
 * lm8323 Keyboard
 * tsc2005 touchscreen

The N810W components
 * WiMax
 * TLV320AIC33 audio
 * GPS5300 GPS

The good news is that there is sufficient support in the mainline kernel and with the addition of the patches maintained by OpenWRT we can produce recent kernels 2.6.38.8 and 3.1 to access most of hardware.

The current gaps are PowerPVR drivers, DSP?, GPS, ...

Adaptation Progress

 * Videos
 * http://www.youtube.com/watch?v=8AEKIXVeBGY Booting Mer into X with QML viewer
 * http://www.youtube.com/watch?v=EbE4Ply5Cbs Booting Mer into Razor-qt on N810
 * http://www.youtube.com/watch?v=J1ZlXsmfISM Booting Mer on N800
 * http://sethstorm.net/images/n810/n810w_mer_boot_nokb.mp4 Booting Mer on N810w


 * Adaptation is in
 * COBS home:cxl000:n810:testing 2.6.38.8 kernel, utility programs and configuration
 * COBS home:cxl000:n810:next 3.3.8 kernel


 * The current kernels have both be used to boot a N810 to X using fbdev driver.
 * watchdog keepalive
 * X Configuration to enable access to all keyboard keys with touchscreen calibrated.
 * WiFi calibration data is extracted and stored to the firmware directory
 * With the WiFi firmware from Maemo the p54spi WiFi driver has been loaded, hw ether address taken from /etc/sysconfig/wlan-mac at first boot
 * manual set and connection to WPA2 enabled Access Point established using connman-test.
 * Battery Management calibration data is extracted to firmware directory
 * X omapfb driver works
 * RTC patches enables reading sane time values. Offset read from calibration area.
 * Time now set from clock at boot using a prototype service
 * N810 WiMax requires disabling of rng and aes drivers at this time

Adaptation ToDo

 * Find how to extract MAC addresses
 * N800 touchscreen calibration
 * hardware clock (further functionality)
 * Sound
 * Bluetooth
 * USB/Host/OTG
 * USB gadgets (Network)
 * lock key
 * keyboard slide
 * other keys
 * camera
 * battery management
 * keyboard backlight
 * indicator LED
 * UI integration
 * N800 FM radio
 * GPS

To Build

 * Current Kickstart file n810-armv6l-razor01.ks
 * Use mic2 to create a raw image
 * mic-image-creator --pkgmgr=yum --prefix=n810 --tmpdir=/tmp --fstype=vfat --format=raw --cache=your-cache --arch=armv6l --record-pkgs=name --config=n810-armv6l-razor01.ks --outdir=your-outdir --overlay-size-mb=64 --logfile=your-logfile
 * dd to external card
 * mount root partition p1
 * copy bluetooth and WiFi firmware to firmware directory
 * mount boot partition p3
 * copy the zImage from boot partition

Images available

 * http://images.formeego.org/n810/
 * n810-armv6l-razor01.ks
 * Based on Mer release 2011-11-11
 * Provides basic Razor/QtDesktop with calibration touchscreen and working keyboard on N810
 * n810-armv6l-razor02.ks
 * Based on Mer release 2011-11-14
 * This includes a system testing and information gathering tool
 * After copy image mount root and place you WiFi MAC address in /etc/ethers and driver firmware from Maemo in /lib/firmware
 * This will start xinput_calibration so N800 users can calibrate there touchscreen (If you have a N800 please provide a copy from /var/log/cxlinfo0/xinput_calibration for inclusion in future images.)
 * n810-armv6l-razor05min.ks
 * Based on Mer release 0.20121115.1
 * You will need add firmware. This will boot to Razor-qt 0.5.1 system clock is set based on hw clock

To Run

 * record you WLAN MAC


 * boot using flasher


 * start xterm and su root


 * ifconfig wlan0 down
 * ifconfig wlan0 hw ether 
 * ifconfig wlan0 up


 * systemctl restart connman
 * /usr/lib/connman/test/test-connman list
 * record the connman ID for your AP SSID
 * /usr/lib/connman/test/test-connman remove 
 * /usr/lib/connman/test/test-connman passphrase  
 * /usr/lib/connman/test/test-connman connect 

Team Members
Chris Leach / cxl000