diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-01-27 14:46:46 +0100 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2021-02-07 19:22:55 +0100 |
commit | 7596696bc5c6062c52f07e2ed99e3b2eebb3a33e (patch) | |
tree | 08971212d392e2f632805c397516b44a56a267aa /drivers/fastboot | |
parent | a362ce214f03f965b05a9a89997294773cd6e908 (diff) | |
download | u-boot-7596696bc5c6062c52f07e2ed99e3b2eebb3a33e.tar.gz |
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/fastboot')
-rw-r--r-- | drivers/fastboot/Kconfig | 22 | ||||
-rw-r--r-- | drivers/fastboot/fb_mmc.c | 9 |
2 files changed, 23 insertions, 8 deletions
diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig index d4436dfc91..45e07d05e0 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 4e26cef941..b5d4c90bfc 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)) |