Message ID | 1433797509-8557-1-git-send-email-contact@paulk.fr |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
Le lundi 08 juin 2015 à 23:05 +0200, Paul Kocialkowski a écrit : > This allows using only one of either raw or fs mode for SPL mmc boot, without > the need to have provisions for the other. In particular, a device may have > U-Boot installed on a file system on the mmc, without ever needing to read > U-Boot from raw memory. Thus, there is no reason to provide a sector or > partition for raw mode. This allows this behaviour and still provides a robust > fallback mechanism in case provisions for both modes are defined. For reference, PATCH 1/2 is spl: spl_mmc: Minor cosmetics, that I sent last week. This one goes on top of it. > Signed-off-by: Paul Kocialkowski <contact@paulk.fr> > --- > common/spl/spl_mmc.c | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c > index f5ac844..552f80d 100644 > --- a/common/spl/spl_mmc.c > +++ b/common/spl/spl_mmc.c > @@ -130,19 +130,21 @@ void spl_mmc_load_image(void) > return; > } > #endif > -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION > +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION) > err = mmc_load_image_raw_partition(mmc, > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION); > -#else > + if (!err) > + return; > +#elif defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) > err = mmc_load_image_raw_sector(mmc, > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); > -#endif > if (!err) > return; > -#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) > +#endif > case MMCSD_MODE_FS: > debug("spl: mmc boot mode: fs\n"); > > +#ifdef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION > #ifdef CONFIG_SPL_FAT_SUPPORT > #ifdef CONFIG_SPL_OS_BOOT > if (!spl_start_uboot()) { > @@ -152,12 +154,14 @@ void spl_mmc_load_image(void) > return; > } > #endif > +#ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME > err = spl_load_image_fat(&mmc->block_dev, > CONFIG_SYS_MMCSD_FS_BOOT_PARTITION, > CONFIG_SPL_FS_LOAD_PAYLOAD_NAME); > if (!err) > return; > #endif > +#endif > #ifdef CONFIG_SPL_EXT_SUPPORT > #ifdef CONFIG_SPL_OS_BOOT > if (!spl_start_uboot()) { > @@ -167,6 +171,7 @@ void spl_mmc_load_image(void) > return; > } > #endif > +#ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME > err = spl_load_image_ext(&mmc->block_dev, > CONFIG_SYS_MMCSD_FS_BOOT_PARTITION, > CONFIG_SPL_FS_LOAD_PAYLOAD_NAME); > @@ -174,6 +179,7 @@ void spl_mmc_load_image(void) > return; > #endif > #endif > +#endif > #ifdef CONFIG_SUPPORT_EMMC_BOOT > case MMCSD_MODE_EMMCBOOT: > /* > @@ -200,16 +206,18 @@ void spl_mmc_load_image(void) > return; > } > #endif > -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION > +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION) > err = mmc_load_image_raw_partition(mmc, > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION); > -#else > + if (!err) > + return; > +#elif defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) > err = mmc_load_image_raw_sector(mmc, > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); > -#endif > if (!err) > return; > #endif > +#endif > case MMCSD_MODE_UNDEFINED: > default: > #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
On Mon, Jun 08, 2015 at 11:05:09PM +0200, Paul Kocialkowski wrote: > This allows using only one of either raw or fs mode for SPL mmc boot, without > the need to have provisions for the other. In particular, a device may have > U-Boot installed on a file system on the mmc, without ever needing to read > U-Boot from raw memory. Thus, there is no reason to provide a sector or > partition for raw mode. This allows this behaviour and still provides a robust > fallback mechanism in case provisions for both modes are defined. > > Signed-off-by: Paul Kocialkowski <contact@paulk.fr> Applied to u-boot/master, thanks!
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index f5ac844..552f80d 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -130,19 +130,21 @@ void spl_mmc_load_image(void) return; } #endif -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION) err = mmc_load_image_raw_partition(mmc, CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION); -#else + if (!err) + return; +#elif defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) err = mmc_load_image_raw_sector(mmc, CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); -#endif if (!err) return; -#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) +#endif case MMCSD_MODE_FS: debug("spl: mmc boot mode: fs\n"); +#ifdef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION #ifdef CONFIG_SPL_FAT_SUPPORT #ifdef CONFIG_SPL_OS_BOOT if (!spl_start_uboot()) { @@ -152,12 +154,14 @@ void spl_mmc_load_image(void) return; } #endif +#ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME err = spl_load_image_fat(&mmc->block_dev, CONFIG_SYS_MMCSD_FS_BOOT_PARTITION, CONFIG_SPL_FS_LOAD_PAYLOAD_NAME); if (!err) return; #endif +#endif #ifdef CONFIG_SPL_EXT_SUPPORT #ifdef CONFIG_SPL_OS_BOOT if (!spl_start_uboot()) { @@ -167,6 +171,7 @@ void spl_mmc_load_image(void) return; } #endif +#ifdef CONFIG_SPL_FS_LOAD_PAYLOAD_NAME err = spl_load_image_ext(&mmc->block_dev, CONFIG_SYS_MMCSD_FS_BOOT_PARTITION, CONFIG_SPL_FS_LOAD_PAYLOAD_NAME); @@ -174,6 +179,7 @@ void spl_mmc_load_image(void) return; #endif #endif +#endif #ifdef CONFIG_SUPPORT_EMMC_BOOT case MMCSD_MODE_EMMCBOOT: /* @@ -200,16 +206,18 @@ void spl_mmc_load_image(void) return; } #endif -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION +#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION) err = mmc_load_image_raw_partition(mmc, CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION); -#else + if (!err) + return; +#elif defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) err = mmc_load_image_raw_sector(mmc, CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); -#endif if (!err) return; #endif +#endif case MMCSD_MODE_UNDEFINED: default: #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
This allows using only one of either raw or fs mode for SPL mmc boot, without the need to have provisions for the other. In particular, a device may have U-Boot installed on a file system on the mmc, without ever needing to read U-Boot from raw memory. Thus, there is no reason to provide a sector or partition for raw mode. This allows this behaviour and still provides a robust fallback mechanism in case provisions for both modes are defined. Signed-off-by: Paul Kocialkowski <contact@paulk.fr> --- common/spl/spl_mmc.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)