
On Thu, Oct 22, 2015 at 10:01 AM, Nikita Kiryanov nikita@compulab.co.il wrote:
This series has two parts: patches 1-7 perform refactors aimed at reducing the ifdef complexity of SPL mmc code (and some nand as well). This refactor also addresses a few design issues I noticed while working on the refactor.
The rest of the series introduces a new SPL feature that allows board code to define a list of boot devices that SPL will try before failing (instead of the only one device it attempts now). This feature is useful for implementing fallbacks, as well as reacting to bootROM sequences. For example:
On CM-FX6, if boot from the alternate boot device (MMC) fails, the bootROM proceeds to try boot from SPI flash. If the SPI flash boot is succesful, SPL will still try to load U-Boot from MMC, instead of from the actual boot device (SPI flash), and probably fail and hang. The alternate boot feature makes it possible for SPL to follow the MMC boot attempt with boot from the SPI flash. The CM-FX6 based miniature PC Utilite depends on this capability for its SPI flash boot to work, since SPI flash boot is only attempted if MMC boot fails.
This series was tested on CM-FX6 and compile tested for arm and powerpc.
Thanks a lot for working on this; it does improves the SPL framework and extends its feature set. One thing I missed is the patches to rework the current boards removing the defines the serie drops and a proper documentation in the README files.