From 5a7b11e65a54ab9f82bb08bfc402aa4ca1aa3a78 Mon Sep 17 00:00:00 2001 From: Alex Kiernan Date: Tue, 8 May 2018 04:43:31 +0000 Subject: [PATCH] Convert CONFIG_SUPPORT_EMMC_RPMB to Kconfig Convert CONFIG_SUPPORT_EMMC_RPMB to Kconfig. Split the command handling from the underlying support and expose this through CMD_MMC_RPMB. Signed-off-by: Alex Kiernan --- README | 4 ---- cmd/Kconfig | 7 +++++++ cmd/mmc.c | 6 +++--- configs/gwventana_emmc_defconfig | 1 + configs/gwventana_gw5904_defconfig | 1 + configs/gwventana_nand_defconfig | 1 + configs/vining_2000_defconfig | 1 + drivers/mmc/Kconfig | 7 +++++++ include/configs/gw_ventana.h | 1 - include/configs/vining_2000.h | 1 - scripts/config_whitelist.txt | 1 - 11 files changed, 21 insertions(+), 10 deletions(-) diff --git a/README b/README index a62aee1..48ed3e0 100644 --- a/README +++ b/README @@ -1172,10 +1172,6 @@ The following options need to be configured: CONFIG_SUPPORT_EMMC_BOOT Enable some additional features of the eMMC boot partitions. - CONFIG_SUPPORT_EMMC_RPMB - Enable the commands for reading, writing and programming the - key for the Replay Protection Memory Block partition in eMMC. - - USB Device Firmware Update (DFU) class support: CONFIG_DFU_OVER_USB This enables the USB portion of the DFU USB class diff --git a/cmd/Kconfig b/cmd/Kconfig index 38406fc..036bad8 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -816,6 +816,13 @@ config CMD_MMC help MMC memory mapped support. +config CMD_MMC_RPMB + bool "Enable support for RPMB in the mmc command" + depends on CMD_MMC + help + Enable the commands for reading, writing and programming the + key for the Replay Protection Memory Block partition in eMMC. + config CMD_NAND bool "nand" default y if NAND_SUNXI diff --git a/cmd/mmc.c b/cmd/mmc.c index 68bbf1f..a3357ef 100644 --- a/cmd/mmc.c +++ b/cmd/mmc.c @@ -128,7 +128,7 @@ static int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return CMD_RET_SUCCESS; } -#ifdef CONFIG_SUPPORT_EMMC_RPMB +#if CONFIG_IS_ENABLED(CMD_MMC_RPMB) static int confirm_key_prog(void) { puts("Warning: Programming authentication key can be done only once !\n" @@ -886,7 +886,7 @@ static cmd_tbl_t cmd_mmc[] = { U_BOOT_CMD_MKENT(partconf, 5, 0, do_mmc_partconf, "", ""), U_BOOT_CMD_MKENT(rst-function, 3, 0, do_mmc_rst_func, "", ""), #endif -#ifdef CONFIG_SUPPORT_EMMC_RPMB +#if CONFIG_IS_ENABLED(CMD_MMC_RPMB) U_BOOT_CMD_MKENT(rpmb, CONFIG_SYS_MAXARGS, 1, do_mmcrpmb, "", ""), #endif U_BOOT_CMD_MKENT(setdsr, 2, 0, do_mmc_setdsr, "", ""), @@ -953,7 +953,7 @@ U_BOOT_CMD( " - Change the RST_n_FUNCTION field of the specified device\n" " WARNING: This is a write-once field and 0 / 1 / 2 are the only valid values.\n" #endif -#ifdef CONFIG_SUPPORT_EMMC_RPMB +#if CONFIG_IS_ENABLED(CMD_MMC_RPMB) "mmc rpmb read addr blk# cnt [address of auth-key] - block size is 256 bytes\n" "mmc rpmb write addr blk# cnt
- block size is 256 bytes\n" "mmc rpmb key
- program the RPMB authentication key.\n" diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig index c77de88..d4de3b4 100644 --- a/configs/gwventana_emmc_defconfig +++ b/configs/gwventana_emmc_defconfig @@ -56,6 +56,7 @@ CONFIG_CMD_UBI=y CONFIG_ENV_IS_IN_MMC=y CONFIG_DM=y CONFIG_DWC_AHSATA=y +CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_NETDEVICES=y diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig index 007b49a..fdad5ee 100644 --- a/configs/gwventana_gw5904_defconfig +++ b/configs/gwventana_gw5904_defconfig @@ -56,6 +56,7 @@ CONFIG_CMD_UBI=y CONFIG_ENV_IS_IN_MMC=y CONFIG_DM=y CONFIG_DWC_AHSATA=y +CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_MV88E61XX_SWITCH=y diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig index 1de7081..e6ccfef 100644 --- a/configs/gwventana_nand_defconfig +++ b/configs/gwventana_nand_defconfig @@ -58,6 +58,7 @@ CONFIG_CMD_UBI=y CONFIG_ENV_IS_IN_NAND=y CONFIG_DM=y CONFIG_DWC_AHSATA=y +CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_FSL_ESDHC=y CONFIG_NAND=y CONFIG_NAND_MXS=y diff --git a/configs/vining_2000_defconfig b/configs/vining_2000_defconfig index 1d28b2f..8cc030b 100644 --- a/configs/vining_2000_defconfig +++ b/configs/vining_2000_defconfig @@ -30,6 +30,7 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_EFI_PARTITION=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_SUPPORT_EMMC_RPMB=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PCI=y diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 3f15f85..693b3ce 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -71,6 +71,13 @@ config MMC_HW_PARTITIONING This adds a command and an API to do hardware partitioning on eMMC devices. +config SUPPORT_EMMC_RPMB + bool "Support eMMC replay protected memory block (RPMB)" + imply CMD_MMC_RPMB + help + Enable support for reading, writing and programming the + key for the Replay Protection Memory Block partition in eMMC. + config MMC_IO_VOLTAGE bool "Support IO voltage configuration" help diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h index b8eefe3..1b7e29c 100644 --- a/include/configs/gw_ventana.h +++ b/include/configs/gw_ventana.h @@ -89,7 +89,6 @@ /* eMMC Configs */ #define CONFIG_SUPPORT_EMMC_BOOT -#define CONFIG_SUPPORT_EMMC_RPMB /* * SATA Configs diff --git a/include/configs/vining_2000.h b/include/configs/vining_2000.h index 0b5f940..43f9863 100644 --- a/include/configs/vining_2000.h +++ b/include/configs/vining_2000.h @@ -98,7 +98,6 @@ #ifdef CONFIG_ENV_IS_IN_MMC #define CONFIG_SUPPORT_EMMC_BOOT -#define CONFIG_SUPPORT_EMMC_RPMB #define CONFIG_SYS_MMC_ENV_DEV 0 /* USDHC4 eMMC */ /* 0=user, 1=boot0, 2=boot1, * 4..7=general0..3. */ #define CONFIG_SYS_MMC_ENV_PART 1 /* boot0 */ diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 8327798..7481f32 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -2033,7 +2033,6 @@ CONFIG_SUNXI_MAX_FB_SIZE CONFIG_SUNXI_USB_PHYS CONFIG_SUPERH_ON_CHIP_R8A66597 CONFIG_SUPPORT_EMMC_BOOT -CONFIG_SUPPORT_EMMC_RPMB CONFIG_SUVD3 CONFIG_SXNI855T CONFIG_SYSFLAGS_ADDR