i.MX515 Project
Haiku Operating System port to ARM architecture

in category Operating Systems
proposed by mmu_man on 13th February 2009
Project Proposal
The goal is to port Haiku to the ARM architecture, specifically the i.MX515.

Haiku is a MIT-licenced Free Software Operating System inspired by the BeOS.
It currently focuses on x86 architecture for R1/alpha, but has also been ported to PowerPC (primarily Pegasos and Mac targets; currently builds but requires fixing), and a port to the m68k architecture has been started by myself to demonstrate the portability of the OS.

Haiku has been developed for desktop systems, but its lightweight design inherited from the BeOS and low system requirements makes it suitable for smaller devices. The current trend in embedded systems, led by System-on-a-Chip platforms like the i.MX515, is also often referred to as "mobile desktop", which reinforces their validity as target platforms for Haiku.

The Haiku GUI is clean enough to be usable on devices where screen size matters:

And should even be usable on PDAs with little modifications, as demonstrated by this mockup:


The modular design used within Haiku also calls for interesting uses of the unique features of the i.MX515 processor, like hardware accelerated image decoders with the Translation Kit, and hardware accelerated video and audio decoders using the node-based Media Kit. Here is a view of the media nodes as displayed in the Cortex application, including the node I wrote that interfaces with our port of OpenSound System v4:


The project would include:
  • Adapting the Haiku bootloader to the ARM architecture and available firmwares by :
    • adding ARM bindings to the existing OpenFirmware support and/or
    • adding U-Boot support
  • Support for the ARM architecture at the kernel and user levels with C and minimal assembler code:
    • Synchronization primitives (spinlock,atomic ops)
    • Interrupt and context switching trampolines
    • timer management
  • Support for the Cortex-A8 mmu needed by the kernel.
  • Support for booting from an external device using OpenBFS, then optionally from internal board Flash memory with a flash optimized file system or adapted OpenBFS.
  • Basic GUI support
    • Framebuffer or 2D accelerated graphics
    • External input device through USB or minimal internal input device support.
  • Basic ethernet connectivity
  • A sample Media Kit node add-on providing hardware accelerated decoding of one or more of the i.MX515 supported codecs.

Project Blog Entries

No blog entries for this project
Genesi Network: Genesi - Main Site Power2People PowerDeveloper