====== FreeBSD/arm port to BeagleBoard-xM ====== ===== Student ===== [[/AleksanderDutkowski|AleksanderDutkowski]] ===== Mentor ===== [[/RafalJaworowski|RafalJaworowski]] ===== 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 [[http://svnweb.freebsd.org/socsvn?view=revision&revision=242720|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 ===== http://beagleboard.org #beagle@freenode - %%BeagleBoard%% channel #bsdmips@efnet - The IRC channel for %%FreeBSD%% on ARM, MIPS, and %%PowerPC%%