====== FreeBSD/ARM port to NXP LPC3250 ====== ===== Project Description: ===== This project aims to port %%FreeBSD%% to NXP LPC32x0 ARM9 System On Chip family. LPC32x0-s are found in many single board computers and evaluations boards. Development will be done on Embedded Artists LPC3250 Developer Kit (which I own already). Port will be based on actual %%FreeBSD%%-current code and will use FDT. Benefits for the %%FreeBSD%% community: It will be possible to run %%FreeBSD%% on wide range of single board computers equipped with LPC32x0. ===== Deliverables: ===== - Make a device tree file for this target. Investigate target bootloader. 1.1. Write machine initialization code. - Attach serial console driver, load %%FreeBSD%% kerne and see some output from it on serial console. - Write interrupt controller and timer drivers (including RTC clock). - Boot kernel in single user mode with serial console and memory disk. - Write ethernet controller driver. - Write SD/MMC driver. - Attach USB OHCI controller driver. - Write framebuffer driver. - Write man pages for all new drivers. ===== Milestones: ===== ^ Milestone ^ Status ^ Comment ^ | **M0**: Target board is working, examined bootloader, got all required documentation. (week 1) | Complete | | | **M1**: %%FreeBSD%% boots with serial console and compiled-in memory disk drive in single user mode (week 3) | Complete | | | **M1.1**: Ethernet controller driver is working (week 5) | Complete | | | **M2**: %%FreeBSD%% boots from NFS-root in multiuser mode (week 6) | Complete | | | **M3**: %%FreeBSD%% boots from USB stick or SD card root in multiuser mode (week 8) | Complete | | | **M4**: Self-hosted builds are working (week 10) | Not done | | | **M5**: Framebuffer is working (week 11) | Complete | | | **M6**: Manual pages are done (week 12) | Not done | | ===== Working peripherals ===== | UART | Working | | Interrupt controller | Working | | Integrated timers | Working | | Power & clock control | Working | | RTC | Working | | Ethernet | Working | | MMC/SD | In progress (unstable) | | USB | Working | | Framebuffer | Working | | Touch screen | Not working | ===== Resources: ===== * [[SOC2011JakubKlama/dmesg|dmesg of board booting using NFS-root]]