aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2021-01-27 14:46:46 +0100
committerMarek Vasut <marex@denx.de>2021-02-07 19:22:55 +0100
commit7596696bc5c6062c52f07e2ed99e3b2eebb3a33e (patch)
tree08971212d392e2f632805c397516b44a56a267aa /drivers
parenta362ce214f03f965b05a9a89997294773cd6e908 (diff)
downloadu-boot-7596696bc5c6062c52f07e2ed99e3b2eebb3a33e.zip
u-boot-7596696bc5c6062c52f07e2ed99e3b2eebb3a33e.tar.gz
u-boot-7596696bc5c6062c52f07e2ed99e3b2eebb3a33e.tar.bz2
fastboot: mmc: Add CONFIG_FASTBOOT_MMC_USER_SUPPORT
Split userdata and boot partition support for eMMC update and correct the description (update is supported). The new configuration CONFIG_FASTBOOT_MMC_USER_SUPPORT allows to activate support of userdata partition update, based on target name=CONFIG_FASTBOOT_MMC_USER_NAME This patch also removes the unnecessary dependency with ARCH_MEDIATEK and EFI_PARTITION. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/fastboot/Kconfig22
-rw-r--r--drivers/fastboot/fb_mmc.c9
2 files changed, 23 insertions, 8 deletions
diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
index d4436df..45e07d0 100644
--- a/drivers/fastboot/Kconfig
+++ b/drivers/fastboot/Kconfig
@@ -124,14 +124,26 @@ config FASTBOOT_MMC_BOOT1_NAME
defined here.
The default target name for updating EMMC_BOOT1 is "mmc0boot0".
+config FASTBOOT_MMC_USER_SUPPORT
+ bool "Enable eMMC userdata partition flash/erase"
+ depends on FASTBOOT_FLASH_MMC
+ help
+ Define this to enable the support "flash" and "erase" command on
+ eMMC userdata. The "flash" command only update the MBR and GPT
+ header when CONFIG_EFI_PARTITION is supported.
+ The "erase" command erase all the userdata.
+ This occurs when the specified "partition name" on the
+ fastboot command line matches the value CONFIG_FASTBOOT_MMC_USER_NAME.
+
config FASTBOOT_MMC_USER_NAME
- string "Target name for erasing EMMC_USER"
- depends on FASTBOOT_FLASH_MMC && EFI_PARTITION && ARCH_MEDIATEK
+ string "Target name for updating EMMC_USER"
+ depends on FASTBOOT_MMC_USER_SUPPORT
default "mmc0"
help
- The fastboot "erase" command supports erasing EMMC_USER. This occurs
- when the specified "EMMC_USER name" on the "fastboot erase" commands
- match the value defined here.
+ The fastboot "flash" and "erase" command supports EMMC_USER.
+ This occurs when the specified "EMMC_USER name" on the
+ "fastboot flash" and the "fastboot erase" commands match the value
+ defined here.
The default target name for erasing EMMC_USER is "mmc0".
config FASTBOOT_GPT_NAME
diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
index 4e26cef..b5d4c90 100644
--- a/drivers/fastboot/fb_mmc.c
+++ b/drivers/fastboot/fb_mmc.c
@@ -174,7 +174,8 @@ static void write_raw_image(struct blk_desc *dev_desc,
fastboot_okay(NULL, response);
}
-#ifdef CONFIG_FASTBOOT_MMC_BOOT1_SUPPORT
+#if defined(CONFIG_FASTBOOT_MMC_BOOT1_SUPPORT) || \
+ defined(CONFIG_FASTBOOT_MMC_USER_SUPPORT)
static int fb_mmc_erase_mmc_hwpart(struct blk_desc *dev_desc)
{
lbaint_t blks;
@@ -193,7 +194,9 @@ static int fb_mmc_erase_mmc_hwpart(struct blk_desc *dev_desc)
return 0;
}
+#endif
+#ifdef CONFIG_FASTBOOT_MMC_BOOT1_SUPPORT
static void fb_mmc_boot1_ops(struct blk_desc *dev_desc, void *buffer,
u32 buff_sz, char *response)
{
@@ -473,7 +476,7 @@ void fastboot_mmc_flash_write(const char *cmd, void *download_buffer,
#endif
#if CONFIG_IS_ENABLED(EFI_PARTITION)
-#ifndef CONFIG_FASTBOOT_MMC_USER_NAME
+#ifndef CONFIG_FASTBOOT_MMC_USER_SUPPORT
if (strcmp(cmd, CONFIG_FASTBOOT_GPT_NAME) == 0) {
#else
if (strcmp(cmd, CONFIG_FASTBOOT_GPT_NAME) == 0 ||
@@ -603,7 +606,7 @@ void fastboot_mmc_erase(const char *cmd, char *response)
}
#endif
-#ifdef CONFIG_FASTBOOT_MMC_USER_NAME
+#ifdef CONFIG_FASTBOOT_MMC_USER_SUPPORT
if (strcmp(cmd, CONFIG_FASTBOOT_MMC_USER_NAME) == 0) {
/* erase EMMC userdata */
if (fb_mmc_erase_mmc_hwpart(dev_desc))