= HelenOS on Neo !FreeRunner = {{{#!imagebox align=right, width=200px [[Image(gta02_first_contact_d2x.jpg,center,180px, margin-left=10, margin-bottom=30, title="First contact picture of HelenOS running on GTA02")]] First contact picture of HelenOS running on GTA02. }}} Information pertaining to porting HelenOS to Neo !FreeRunner smartphone (alias GTA02) which was developed by the [http://wiki.openmoko.org/wiki/Main_Page Openmoko project]. == Status == Supported in HelenOS 0.4.3 and later. The system boots to the command line. All kernel tests pass. Kernel can write to serial debug console and to the display. Userspace fb server can use the display. You can use the serial debug console as a keyboard. You can also use the touchscreen to move the mouse pointer around (not in 0.4.3 due to bug). That is all you can do, because there is nothing to control with the mouse (the resolution is low so no VC buttons are displayed). == Plans == === Input === We would like to provide a virtual keyboard so that the serial console would not be necessary. Also, it would be nice if it were possible to control some applications using the touch screen (currently there is no way for an application to receive mouse events). === Host-side USB === !FreeRunner has an OHCI USB host controller, the USB port be switched to host mode with some platform-specific knobs. (You need to use a USB gender-changer, however). The OHCI USB driver from the USB project, once integrated, should be relatively easy to get running on GTA02. Possible hurdle is interrupt handling (I/O access in pseudocode). === Device-side USB === By default the USB port runs in device mode. It would be nice to implement a device-side USB stack in HelenOS. This is a bigger project, however. == Resources == External resources: * [http://wiki.openmoko.org/ Openmoko Wiki] * [http://git.openmoko.org/ Openmoko Git source code repos] (U-Boot, Qi, etc.) * [http://wiki.openmoko.org/wiki/Neo_FreeRunner_GTA02_Hardware Neo FreeRunner Hardware] * [http://www.amebasystems.com/downloads/hardware/datasheets/freerunner/SoC/um_s3c2442b_rev12.pdf Samsung S3C2442B Processor Datasheet] * [http://www.keil.com/dd/docs/datashts/samsung/s3c2440_um.pdf Samsung S3C2440A Processor user manual] Very similar to the S3C2442B * [http://wiki.openmoko.org/wiki/Neo_FreeRunner_Memory_Mapping FreeRunner memory map] * [http://wiki.openmoko.org/wiki/Smedia_Glamo_3362 Smedia Glamo 3362] (Video chip and microSD reader) Internal resources: * [wiki:UBoot U-Boot Bootloader] * [wiki:FreeRunnerLEDs Programming Neo FreeRunner LEDs] * [wiki:FreeRunner/Video Video (Glamo)] == Memory system == * The memory system is configured to ''little endian'' mode == S3C2442B Processor == * The core is an ARM920T (ARMv4T architecture) == Similar devices == * FriendlyARM Mini 2440 SBC (Single-Board Computer) with 400 MHz Samsung S3C2440 ARM9 processor [http://www.friendlyarm.net/products/mini2440 web]