- Contact: tech-toolchain
- Mentors: Martin Husemann
- Duration estimate: 3 months
IMPORTANT: This project was completed by Joe Davis. You may still contact the people above for details, but please do not submit an application for this project.
The U-Boot bootloader is being used by an increasing number of devices, including lots which run NetBSD. The NetBSD ${TOOLDIR} infrastructure even includes the mkubootimage program, which is used to wrap binaries (e.g. a kernel) into a packet understood by U-Boot.
While the ${TOOLDIR} provides all toolchain bits needed (cross-compiler, assembler, linker, ...) and can be created by the build.sh script automatically for any supported architecture, U-Boot itself needs to be compiled natively on a Linux machine.
The purpose of this project is to fix this, and feed as much as possible of the resulting changes upstream to the U-Boot developers.
If possible, the result should be a pkgsrc package, that only needs to be pointed at a pre-populated tooldir for building. But a simple bsd style makefile would be good enough as well.
An optional extension (but unlikely to be doable within the GSoC timescale): add support for loading from FFS file system to U-Boot. This would allow devices with SATA or USB disks to load the kernel directly from the root file system (while currently a wrappd .ub copy of the kernel has to be put into flash or on SD card).
Deliverables of this project:
- Make U-Boot build on NetBSD, using a bsd style makefile and environment variables pointing at ${TOOLDIR}
- Discuss the changes needed for [1] with U-Boot upstream developers, follow their advice and try to upstream the changes
- Create a pkgsrc entry for the native U-Boot
- Add a FFS module to U-Boot, using NetBSD system headers
Items [2] and [4] will not be required for GSoC success.