[U-Boot] [PATCH 00/12] SPL mmc refactor and alternate boot device feature

Nikita Kiryanov nikita at compulab.co.il
Thu Oct 22 14:01:08 CEST 2015


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.

Cc: Igor Grinberg <grinberg at compulab.co.il>
Cc: Tom Rini <trini at konsulko.com>
Cc: Pantelis Antoniou <panto at antoniou-consulting.com>

Nikita Kiryanov (12):
  spl: nand: remove code duplication
  spl: mmc: add break statements in spl_mmc_load_image()
  spl: mmc: refactor device location code to its own function
  spl: mmc: remove #ifdef CONFIG_SPL_OS_BOOT check
  spl: mmc: get rid of #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
    check
  spl: mmc: move fs boot into its own function
  spl: mmc: get rid of emmc boot code duplication
  spl: change return values of spl_*_load_image()
  common: spl: move image load to its own function
  spl: add support for alternative boot device
  spl: announce boot devices
  arm: mx6: cm-fx6: define fallback boot devices for spl

 arch/arm/cpu/armv7/sunxi/board.c |   4 +-
 arch/arm/include/asm/spl.h       |   2 +-
 board/compulab/cm_fx6/spl.c      |  19 +--
 common/spl/spl.c                 | 191 ++++++++++++++++++++++------
 common/spl/spl_ext.c             |   6 +
 common/spl/spl_fat.c             |   6 +
 common/spl/spl_mmc.c             | 263 +++++++++++++++++++++++----------------
 common/spl/spl_nand.c            |  47 ++++---
 common/spl/spl_net.c             |   9 +-
 common/spl/spl_nor.c             |   6 +-
 common/spl/spl_onenand.c         |   4 +-
 common/spl/spl_sata.c            |  11 +-
 common/spl/spl_usb.c             |  17 ++-
 common/spl/spl_ymodem.c          |   5 +-
 drivers/mtd/spi/spi_spl_load.c   |  17 ++-
 include/configs/cm_fx6.h         |   1 -
 include/spl.h                    |  18 +--
 17 files changed, 414 insertions(+), 212 deletions(-)

-- 
1.9.1



More information about the U-Boot mailing list