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