diff options
author | Nikita Kiryanov <nikita@compulab.co.il> | 2015-11-08 17:11:47 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2015-11-18 14:50:01 -0500 |
commit | f52b729393c4ec2af22f3a51a193362fc4f55e4f (patch) | |
tree | a365b8317fdce5c3d0129d68ef70353f06683f01 /common/spl/spl_mmc.c | |
parent | d074ebb9361f0cd23146ed9e0f443c1b0ab3c249 (diff) | |
download | u-boot-imx-f52b729393c4ec2af22f3a51a193362fc4f55e4f.zip u-boot-imx-f52b729393c4ec2af22f3a51a193362fc4f55e4f.tar.gz u-boot-imx-f52b729393c4ec2af22f3a51a193362fc4f55e4f.tar.bz2 |
spl: mmc: move fs boot into its own function
Move the code that handles fs boot out of spl_mmc_load_image() and into its
own function to reduce the #ifdef complexity of spl_mmc_load_image().
No functional changes.
Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Paul Kocialkowski <contact@paulk.fr>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'common/spl/spl_mmc.c')
-rw-r--r-- | common/spl/spl_mmc.c | 81 |
1 files changed, 51 insertions, 30 deletions
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index d646dc8..5dc576b 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -171,6 +171,55 @@ static int mmc_load_image_raw_os(struct mmc *mmc) } #endif +#ifdef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION +int spl_mmc_do_fs_boot(struct mmc *mmc) +{ + int err = -ENOSYS; + +#ifdef CONFIG_SPL_FAT_SUPPORT + if (!spl_start_uboot()) { + err = spl_load_image_fat_os(&mmc->block_dev, + CONFIG_SYS_MMCSD_FS_BOOT_PARTITION); + if (!err) + return err; + } +#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 err; +#endif +#endif +#ifdef CONFIG_SPL_EXT_SUPPORT + if (!spl_start_uboot()) { + err = spl_load_image_ext_os(&mmc->block_dev, + CONFIG_SYS_MMCSD_FS_BOOT_PARTITION); + if (!err) + return err; + } +#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); + if (!err) + return err; +#endif +#endif + +#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) + err = -ENOENT; +#endif + + return err; +} +#else +int spl_mmc_do_fs_boot(struct mmc *mmc) +{ + return -ENOSYS; +} +#endif + void spl_mmc_load_image(void) { struct mmc *mmc; @@ -214,38 +263,10 @@ void spl_mmc_load_image(void) case MMCSD_MODE_FS: debug("spl: mmc boot mode: fs\n"); -#ifdef CONFIG_SYS_MMCSD_FS_BOOT_PARTITION -#ifdef CONFIG_SPL_FAT_SUPPORT - if (!spl_start_uboot()) { - err = spl_load_image_fat_os(&mmc->block_dev, - CONFIG_SYS_MMCSD_FS_BOOT_PARTITION); - if (!err) - return; - } -#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 - if (!spl_start_uboot()) { - err = spl_load_image_ext_os(&mmc->block_dev, - CONFIG_SYS_MMCSD_FS_BOOT_PARTITION); - if (!err) - return; - } -#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); + err = spl_mmc_do_fs_boot(mmc); if (!err) return; -#endif -#endif -#endif + break; #ifdef CONFIG_SUPPORT_EMMC_BOOT case MMCSD_MODE_EMMCBOOT: |