summerofcode2012:freebsdonbeagleboardxm

FreeBSD/arm port to BeagleBoard-xM

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 memory stick 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.

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.

  • Create Device Tree for BeagleBoard-xM
  • write/adapt device drivers for internal SoC devices - i2c, sDMA,GPTimers
  • write/adapt device drivers for board's peripherals - USB (USB3320), PMIC (TPS65950)
core kernel is booting (without any peripherals, mounting the compiled-in memory disc) done
SoC's internal device drivers (i2c, gptimer) are written done
MMC/sd driver is writen - BB-xM is booting from SD card done
EHCI USB driver is working done after GSoC (14.10.2012)
dvi driver - console on external screen not done
  • fix TPS65950 driver - the driver is sitting on iicbus, and it need to be configured “here and now” - now, the configuration is postponed after the booting process because of the lack of interrupts (??). When the configuration is done while booting, I can repower USB3320 and get it to work (because u-boot left usb3320 in bad state)
  • finish USB EHCI driver and test it
  • write TFP410 driver (DVI driver)
  • testing under stress with stress utility
  • usb tests with a lot of usb peripherals

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

profilic 2303 based usb-rs232 converter works
Logitech wireless mouse works (cat /dev/mouse | hexdump)
some random camera detected but no module
smsc3320 ethernet works

http://beagleboard.org

#beagle@freenode - BeagleBoard channel

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

  • summerofcode2012/freebsdonbeagleboardxm.txt
  • Last modified: 2018/03/04 00:39
  • by MarkLinimon