Loox550

Development environment

 * arm-linux-gnueabi is needed (or armv5te)
 * Setup cross-compiler. Lastest glibc, binutils and linux-headers are fine.
 * GCC up to 4.7 series.
 * DO NOT USE 4.8, it sometimes generate broken code. (had to verify and send upstream report)
 * 4.7.3(-r1) is well tested
 * 4.6.4 work well too

Bootloader (HaRET)
Version starting by 0.5.0 supported, 0.5.2 recommended.

It's not going to boot, if device was suspended. If this happend, reboot your device.

Is recommended to boot from SD card, because it leave MMC initialized. You can also boot from internal memory. Booting from USB stick is not recommended, because it works only sometimes.

default.txt sample: set MTYPE 1454 set KERNEL zImage set RAMADDR 0xA0200000 set RAMSIZE 0x03E00000 set cmdline "root=/dev/sda1 rootdelay=10" bootlinux In order do:
 * set MTYPE to N560 (doesn't matter really, just need to match mach-type in kernel)
 * define "zImage" as kernel file
 * device RAMADDRess start at 0xA000 0000, BUT we can't use it from start. We need start at 0xA020 0000! (some device firmware using first 2MB of memory, so not interfere)
 * RAMSIZE has to be reduced from default 64MB (detected by HaRET) to 62M! Otherwise it'll not boot. We moved memory start, so we have consider it.
 * commandline - root device (usb stick, first partition), 10 seconds delay before boot (to enough time to plug in stick).
 * all defined, so bootlinux.

Linux port status
Tasks to do: you can check trello
 * Kernel: 3.12 (git)
 * rtc-pxa can't be loaded at boot time => kernel panic. As module it's fine.

What works

 * Basic functionality
 * GPIOs
 * EGPIOs
 * USB host
 * USB OTG
 * LCD
 * SPI
 * Touchscreen (need improvements)
 * I2C
 * WM8750S mixer for audio (addr 0-001a)
 * I2S (Audio)
 * jack 3.5 works, internal speaker needs more work
 * All buttons including power button
 * limited SD card
 * technically: only when SD is used right before kernel boot, then regulator gives power to SD slot and it works
 * simple: you need to boot from SD card or someway utilize it until kernel boots

Hardware
CPU Intel 520 MHz XScale PXA270 (ARMv5TE) Display TD035STEE1 Touchscreen TI TSC2046 ? (OR 7845 it works with it) ROM 128 MB M-SYSTEM DiskOnChip G4 MD8832-d1G-V3-X-P RAM 64 MB HYB18L256160BF-7.5 Audio Wolfson WM8750S Wi-Fi TI WL1250 aka TNETW1250 Bluetooth TI BRF6150 Other (unknown): wl3422mzwn (wifi transciever) AIC1110 (TLV320AIC1110 PCM codec) CPLD 2C64A

Basic GPIOs
? = not verified in code or not sure 0 Power button ... 4 Battery cover ... 9 AC plug ... 11 Full battery detection 12 ? 13 USB detect N 14 ? 15 SD Readonly ? 16 Backlight PWM ? 17 works as PWM ? ... 22 Bluetooth reset ? ... 28 I2S_BITCLK OUT sound codec 29 I2S_SDATA_IN sound 30 I2S_SDATA_OUT sound 31 I2S_SYNC sound ... 48 WiFi CLK ? ... 52 WiFi PWR ? --- 56 Audio cradle out enabled ? 57 USB PULLUP ... 78 SD card detection ... 82 MMC/SD and WiFi MUX 0 accessing MMC/SD 1 accessing WiFi ... 90 WiFi reset ? ... 93 Headphone Jack ? 94 Touchscreen panel IRQ_N ... 97 PXA27x keypad matrix output 0 ? 98 PXA27x keypad matrix output 1 ? 99 GPIO_NR_LOOXC550_CHARGE_EN_N 100 PXA27x keypad matrix input 0 ? 101 PXA27x keypad matrix input 1 ? 102 PXA27x keypad matrix input 2 ? 103 GPIO_NR_LOOXC550_KP_MKOUT0 ? 104 GPIO_NR_LOOXC550_KP_MKOUT1 ? ... 107 Charge enabled??? WM5 sets it to 0 on external power connected (GPIO_NR_LOOXC550_USB_CHARGE_RATE_N) ? 108 SD POWER ? ... 113 I2S_SYSCLK sound codec 114 ??? output, turbo mode=1,standart=0, power-saving=1 or 0 115 ??? output, turbo mode=1,standart=1, power-saving=0 116 ??? output, turbo mode=0,standart=1, power-saving=0 117 I2C SCL 118 I2C SDA

EGPIOs (by htc-egpio)
7 banks * 16 gpio in one, in summary 112 gpios. Starts at 192.

... 16 LED 1 ? 17 LED 2 ? 18 LED 3 ? ... 32 LED 4 ? 33 LED 5 ? 34 LED 6 ? ... 48 LED 7 - Keyboard backlight ... 63 controls power of LCD chip

Memory
ADDR SIZE DESC 0x10000000 2*8 EGPIO-htc chip, 7 banks 0xA0000000 2M RAM reserved (sdio wifi libertas kernel?) 0xA0200000 62M RAM usable

Userspace
You can use ulozto.net/x6P845U8/to-okias-tar-bz2 Copying to USB stick with first partition formated with ext3 should be enough. Simple shell, with ssh enabled access and few tools. Thank to pc2005 for creating it. For ssh on computer do: ifconfig usb0 192.168.4.1 ssh root:pokus@192.168.4.2