FreeBSD/arm port to BeagleBoard-xM





Project description

I want to port FreeBSD/arm to BeagleBoard-xM platform. This board is based on OMAP3 arm chip, which is not supported right now by FreeBSD. Besides implementing SoC support, I will write and adapt support for peripherals: USB host, ethernet, microSD. If time permits I will write support for audio and DVI device. After my project, FreeBSD will be able to boot on BeagleBoard-xM and read rootfs from either usb memorystick or microSD card. Additionally, audio playing/recording and using LCD screen instead of rs232 will be possible.

After my project, porting other OMAP3-based boards will be much easier and faster. This includes regular BeagleBoard support also.

Approach to solving the problem

My working environment for running kernel includes openocd with jtag adapter and gdb and BeagleBoard-xM. The port will be based on existing ti/BeagleBone code and some snippets of BeagleBoard code, done by Ben Gray.



core kernel is booting (without any peripherals, mounting the compiled-in memory disc)


SoC's internal device drivers (i2c, gptimer) are written


MMC/sd driver is writen - BB-xM is booting from SD card


EHCI USB driver is working

done after GSoC (14.10.2012)

dvi driver - console on external screen

not done

Things to do after the GSoC

Test Plan


USB on BB is working since revision 242720. I have tested it with couple of usb hardware I had in my drawer:

profilic 2303 based usb-rs232 converter


Logitech wireless mouse

works (cat /dev/mouse | hexdump)

some random camera

detected but no module

smsc3320 ethernet


The Code

#beagle@freenode - BeagleBoard channel

#bsdmips@efnet - The IRC channel for FreeBSD on ARM, AVR32 and PowerPC

SummerOfCode2012/FreeBSDonBeagleBoardxM (last edited 2012-10-15 08:35:03 by AleksanderDutkowski)