The Barebox project has released version 2014.02.0 of its bootloader:
New or updated Barebox features are:
- many bug fixes and improvements all over the code
- support for the OpenCores 10/100 Mbps ethernet MAC was added
- the IPU framebuffer driver (i.MX35) was improved and now supports clock calculation with low jitter. This enables the usage of external LVDS connected LC displays
- the memory management was changed and Barebox now finds a location where to store the ATAGS for the kernel parameters by its own in a generic way. All platforms now make use of it, so the platform specific code shrinks once more a little bit, due to the armlinux_set_bootparams() function is gone now.
barebox works great on NXP's i.MX platforms. While there is some support for Marvell's mvebu platform, it is not even near being complete. The main limitation is in my eyes that there is no code to initialize RAM settings on these machines.
The Arria10 SoCFPGA can boot from multiple sources: SD Card, NAND flash, QSPI flash and eMMC, that can be selected via the BSEL pins. If the bootrom can not find a valid bootloader on that medium, it will fall back to JTAG. So for developing and testing, the BSEL pins can just be set to a medium that is non-existent. In case of bootstrapping, the bootrom falls back to JTAG anyway, as there is no valid bootloader, yet.
One of our projects required the addition of board support for the Digi ConnectCore 6UL SBC Pro to the Barebox bootloader. This article outlines the used development setup and required additions to the bootloader to support a board with a well supported processor. Development of the board support was done live during the monthly talks at Stratum 0, the hackerspace in Braunschweig. The video (in German) is embedded at the end of the article.