summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--common/spl/Kconfig14
-rw-r--r--common/spl/spl_mmc.c12
-rw-r--r--configs/db-88f6820-gp_defconfig1
-rw-r--r--configs/kc1_defconfig2
-rw-r--r--configs/sniper_defconfig2
-rw-r--r--include/configs/db-88f6820-gp.h1
-rw-r--r--include/configs/kc1.h2
-rw-r--r--include/configs/sniper.h2
-rw-r--r--include/configs/socfpga_common.h2
10 files changed, 23 insertions, 16 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0229800598..e84b74efb6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -633,6 +633,7 @@ config ARCH_SOCFPGA
select ENABLE_ARM_SOC_BOOT0_HOOK
select ARCH_EARLY_INIT_R
select ARCH_MISC_INIT
+ select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
config TARGET_CM_T43
bool "Support cm_t43"
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index baff7b672e..60ae60c17e 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -96,6 +96,20 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
Address on the MMC to load U-Boot from, when the MMC is being used
in raw mode. Units: MMC sectors (1 sector = 512 bytes).
+config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+ bool "MMC Raw mode: by partition"
+ depends on SPL
+ help
+ Use a partition for loading U-Boot when using MMC/SD in raw mode.
+
+config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
+ hex "Partition to use to load U-Boot from"
+ depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+ default 1
+ help
+ Partition on the MMC to load U-Boot from when the MMC is being
+ used in raw mode
+
config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
bool "MMC raw mode: by partition type"
depends on SPL && DOS_PARTITION && \
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index fb51fd5a98..18c1b59b22 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -150,7 +150,7 @@ static int spl_mmc_find_device(struct mmc **mmcp, u32 boot_device)
return 0;
}
-#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
+#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
static int mmc_load_image_raw_partition(struct spl_image_info *spl_image,
struct mmc *mmc, int partition)
{
@@ -187,13 +187,6 @@ static int mmc_load_image_raw_partition(struct spl_image_info *spl_image,
return mmc_load_image_raw_sector(spl_image, mmc, info.start);
#endif
}
-#else
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION -1
-static int mmc_load_image_raw_partition(struct spl_image_info *spl_image,
- struct mmc *mmc, int partition)
-{
- return -ENOSYS;
-}
#endif
#ifdef CONFIG_SPL_OS_BOOT
@@ -341,11 +334,12 @@ int spl_mmc_load_image(struct spl_image_info *spl_image,
if (!err)
return err;
}
-
+#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
err = mmc_load_image_raw_partition(spl_image, mmc,
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION);
if (!err)
return err;
+#endif
#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
err = mmc_load_image_raw_sector(spl_image, mmc,
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR);
diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
index 1347550b22..fec5e56fd9 100644
--- a/configs/db-88f6820-gp_defconfig
+++ b/configs/db-88f6820-gp_defconfig
@@ -51,3 +51,4 @@ CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_STORAGE=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
diff --git a/configs/kc1_defconfig b/configs/kc1_defconfig
index d9895d757d..ffaaec3726 100644
--- a/configs/kc1_defconfig
+++ b/configs/kc1_defconfig
@@ -36,3 +36,5 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
CONFIG_G_DNL_VENDOR_NUM=0x0451
CONFIG_G_DNL_PRODUCT_NUM=0xd022
CONFIG_OF_LIBFDT=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=2
diff --git a/configs/sniper_defconfig b/configs/sniper_defconfig
index fbdbc0c9d9..9dd737f53a 100644
--- a/configs/sniper_defconfig
+++ b/configs/sniper_defconfig
@@ -37,3 +37,5 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
CONFIG_G_DNL_VENDOR_NUM=0x0451
CONFIG_G_DNL_PRODUCT_NUM=0xd022
CONFIG_OF_LIBFDT=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=2
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index 700fb5ed3e..676dfc996b 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -122,7 +122,6 @@
#if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD
/* SPL related MMC defines */
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1
#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)
#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS
#ifdef CONFIG_SPL_BUILD
diff --git a/include/configs/kc1.h b/include/configs/kc1.h
index 76642d9089..cc78a09f6a 100644
--- a/include/configs/kc1.h
+++ b/include/configs/kc1.h
@@ -107,8 +107,6 @@
#define CONFIG_SPL_LDSCRIPT "arch/arm/mach-omap2/u-boot-spl.lds"
#define CONFIG_SPL_BOARD_INIT
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 2
-
/*
* Console
*/
diff --git a/include/configs/sniper.h b/include/configs/sniper.h
index a1431ca41d..fb28dcd687 100644
--- a/include/configs/sniper.h
+++ b/include/configs/sniper.h
@@ -115,8 +115,6 @@
#define CONFIG_SPL_LDSCRIPT "arch/arm/mach-omap2/u-boot-spl.lds"
#define CONFIG_SPL_BOARD_INIT
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 2
-
#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1
#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img"
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index b1878608ef..582b04af3d 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -310,8 +310,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 2
#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot-dtb.img"
-#else
-#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1
#endif
#endif