FreeBSD/arm port to BeagleBoard-xM
Student
Mentor
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 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.
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.
Deliverables
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)
Milestones
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 |
Things to do after the GSoC
- 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)
Test Plan
testing under stress with stress utility
- usb tests with a lot of usb peripherals
USB
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 |
The Code
https://socsvn.freebsd.org/socsvn/soc2012/aleek/
Useful links
#beagle@freenode - BeagleBoard channel
#bsdmips@efnet - The IRC channel for FreeBSD on ARM, MIPS, and PowerPC