Fork us on GitHub Follow us on Facebook Follow us on Twitter

HelenOS on BeagleBoard

Information pertaining to porting HelenOS to the BeagleBoard-xM single-board computer.

BeagleBoard-xM connected to laptop via USB-serial cable and powered from the same laptop via USB-miniUSB cable BeagleBoard-xM with serial console connected via USB-serial cable


Supported models:

  • BeagleBoard-xM

The BeagleBoard-xM has been supported since HelenOS 0.6.0.

Serial Console

BeagleBoard has a female DB-9 connector, so one can plug a USB-serial adapter with male DB-9 connector straight to it, without any additional cabling (such as a laplink cable).

Comms settings: 115200 bd, 8 data bits, 1 stop bit, no parity, disable hardware flow control.

Only kconsole can be used via the serial console, there is no user-space serial console.


The BeagleBoard can be either netbooted or booted over serial.

In either case, start by build HelenOS for the arm32/beagleboard target. This produces an uImage.bin binary. You need to use a microSD card with uBoot. uBoot will typically auto-boot from te SD card after a few seconds and you can press a key to interrupt and get a command line.

In order to boot over network, do:

U-Boot# dhcp
U-Boot# bootm

where is the IP address of the tftpboot server and /helenos/uImage.bin is the path to the HelenOS uboot image relative to the beginning of the tftpboot directory. }}}

Boot over serial takes much longer:

U-Boot# loady   # after this command, start sending the uImage.bin from the terminal program using the ymodem protocol
U-Boot# bootm

Display / keyboard

The BeagleBoard-xM has a PS/2 keyboard port, HDMI video output and USB. However, neither PS/2 nor USB is currently supported by HelenOS. TODO What is the state of kfb and amdm37x_dispc?

Serial console output

Here is the expected serial console output from HelenOS 0.6.0:

Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)
Beagle xM
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)

OMAP36XX/37XX-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  512 MiB
NAND:  0 MiB
*** Warning - readenv() failed, using default environment

In:    serial
Out:   serial
Err:   serial
Beagle xM Rev C
No EEPROM on expansion board
Die ID #6de200029ff80000016849a902025005
Hit any key to stop autoboot:  0 
OMAP3 # loady
## Ready for binary (ymodem) download to 0x80200000 at 115200 bps...
C0(CAN) packets, 4 retries
## Total Size      = 0x00a9787d = 11106429 Bytes
OMAP3 # bootm
## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   HelenOS-0.6.0
   Image Type:   ARM NetBSD Kernel Image (uncompressed)
   Data Size:    11106365 Bytes = 10.6 MiB
   Load Address: 80000000
   Entry Point:  80000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
## Transferring control to NetBSD stage-2 loader (at address 80000000) ...
HelenOS bootloader, release 0.6.0 (Elastic Horse)
Built on 2014-12-21 20:09:52 for arm32
Copyright (c) 2001-2014 HelenOS project
Boot data: 0x80008000 -> 0x80a9783d

Memory statistics
 0x8000d000|0x8000d000: bootstrap stack
 0x80008000|0x80008000: bootstrap page table
 0x8000d6dc|0x8000d6dc: boot info structure
 0x80a00000|0x80a00000: kernel entry point
 0x8000dbe0|0x8000dbe0: kernel image (533160/147652 bytes)
 0x80031ca4|0x80031ca4: ns image (163019/71242 bytes)
 0x800432ee|0x800432ee: loader image (161521/70928 bytes)
 0x800547fe|0x800547fe: init image (163707/71457 bytes)
 0x80065f1f|0x80065f1f: locsrv image (170647/74824 bytes)
 0x80078367|0x80078367: rd image (160990/70472 bytes)
 0x800896af|0x800896af: vfs image (177104/78259 bytes)
 0x8009c862|0x8009c862: logger image (166674/72926 bytes)
 0x800ae540|0x800ae540: ext4fs image (228614/100234 bytes)
 0x800c6cca|0x800c6cca: initrd image (29360128/10292083 bytes)

Inflating components ... initrd ext4fs logger vfs rd locsrv init loader ns kernel .
Booting the kernel...
SPARTAN kernel, release 0.6.0 (Elastic Horse)
Built on 2014-12-21 20:09:52 for arm32
Copyright (c) 2001-2014 HelenOS project
Detected 1 CPU(s), 524288 KiB free memory
Found DCache L1: 4-way, 128 sets, 64 byte lines (shifts: w29, s6)
Found DCache L2: 8-way, 512 sets, 64 byte lines (shifts: w28, s6)
Detected VFPv3+ with 32 regs
Program loader at 0xf0080000
Kernel console ready (press any key to activate)
RAM disk at 0x80bda000 (size 29360128 bytes)
ns: HelenOS IPC Naming Service
ns: Accepting connections
init: HelenOS init
loc: HelenOS Location Service
rd: HelenOS RAM disk server
rd: Found RAM disk at 0x80bda000, 29360128 bytes
vfs: HelenOS VFS server
logger: HelenOS Logging Service
ext4fs: HelenOS ext4 file system server
loc: Accepting connections
vfs: Accepting connections
logger: Accepting connections
rd: Accepting connections
ext4fs: Accepting connections
init: Root filesystem mounted on / (ext4fs at bd/initrd)
init: Starting /srv/tmpfs
tmpfs: HelenOS TMPFS file system server
tmpfs: Accepting connections
init: Starting /srv/klog
[kernel/other] note: Program loader at 0xf0080000
init: Starting /srv/locfs
[kernel/other] note: RAM disk at 0x80bda000 (size 29360128 bytes)
locfs: HelenOS Device Filesystem
locfs: Accepting connections
init: Starting /srv/taskmon
taskmon: Task Monitoring Service
init: Location service filesystem mounted on /loc (locfs)
init: Temporary filesystem mounted on /tmp (tmpfs)
init: Starting /srv/devman
devman: HelenOS Device Manager
devman: Accepting connections.
root: HelenOS root device driver
init: Unable to stat /srv/apic
init: Unable to stat /srv/i8259
[devman] note: The `root' driver was successfully registered as running.
init: Unable to stat /srv/icp-ic
init: Unable to stat /srv/obio
init: Unable to stat /srv/cuda_adb
init: Unable to stat /srv/s3c24xx_uart
init: Unable to stat /srv/s3c24xx_ts
init: Starting /srv/loopip
loopip: HelenOS loopback IP link provider
loopip: Accepting connections.
init: Starting /srv/ethip
virt: HelenOS virtual devices root driver
amdm37x: HelenOS AM/DM37x(OMAP37x) platform driver
[devman] note: The `virt' driver was successfully registered as running.
[devman] note: The `amdm37x' driver was successfully registered as running.
[amdm37x] note: Base frequency: 13.0Mhz
[virt] note: Registered child device `kfb'
[amdm37x] note: MPU running at 600.0 MHz
[amdm37x] note: CORE CLK running at 332.0 MHz
[amdm37x] note: L3 interface at 166.0 MHz
[amdm37x] error: USB TLL is not accessible
[amdm37x] fatal: Failed to init USB TLL!.
ethip: HelenOS IP over Ethernet service
ethip: Accepting connections.
init: Starting /srv/inetsrv
kfb: HelenOS kernel framebuffer driver
[devman] note: The `kfb' driver was successfully registered as running.
kfb: Accepting connections
inetsrv: HelenOS Internet Protocol service
inetsrv: Accepting connections.
init: Starting /srv/tcp
tcp: TCP (Transmission Control Protocol) network module
tcp: Accepting connections.
init: Starting /srv/udp
udp: UDP (User Datagram Protocol) service
udp: Accepting connections.
init: Starting /srv/dnsrsrv
dnsres: DNS Resolution Service
dnsres: Accepting connections.
init: Starting /srv/dhcp
dhcp: DHCP Service
dhcp: Accepting connections.
init: Starting /srv/nconfsrv
nconfsrv: HelenOS Network configuration service
[nconfsrv] note: Found IP link '24'
[nconfsrv] note: Configure link net/loopback
nconfsrv: Accepting connections.
init: Starting /srv/clipboard
clipboard: HelenOS clipboard service
clipboard: Accepting connections
init: Starting /srv/remcons
remcons: HelenOS Remote console service
init: Starting /srv/input
input: HelenOS input service
input: Accepting connections
init: Starting /srv/output
output: HelenOS output service
output: Accepting connections
init: Unable to stat /srv/hound
init: Starting /srv/compositor
compositor: HelenOS Compositor server
compositor: Accepting connections
init: Spawning /app/barber comp:0/winreg
init: Spawning /app/vlaunch comp:0/winreg
init: Spawning /app/vterm comp:0/winreg
init: Starting /srv/console
console: HelenOS Console service
console: Accepting connections
init: Spawning /app/getterm term/vc0 /loc --msg --wait -- /app/bdsh
init: Spawning /app/getterm term/vc1 /loc --wait -- /app/bdsh
init: Spawning /app/getterm term/vc2 /loc --wait -- /app/bdsh
init: Spawning /app/getterm term/vc3 /loc --wait -- /app/bdsh
init: Spawning /app/getterm term/vc4 /loc --wait -- /app/bdsh
init: Spawning /app/getterm term/vc5 /loc --wait -- /app/bdsh

BeagleBoard-xM from the side showing serial (female DB-9) port, axial power port, miniUSB power port and microSD socket BeagleBoard-xM from the side showing serial (female DB-9) port

Last modified 20 months ago Last modified on 2020-11-22T22:12:11Z

Attachments (2)

Download all attachments as: .zip