Fastboot currently builds only for U-Boot proper, so its source and
Makefile rules test CONFIG_FASTBOOT_* directly. The same checks would
select U-Boot-proper options when these files are compiled for another
phase, potentially compiling unavailable backends or using the wrong
configuration values.

Use CONFIG_IS_ENABLED(), CONFIG_VAL() and CONFIG_$(PHASE_) consistently
for code and object selection. The empty phase prefix preserves the
existing U-Boot-proper configuration and behavior while making the
shared implementation safe to reuse from SPL.

Signed-off-by: Julien Masson <[email protected]>
Signed-off-by: Vitor Sato Eschholz <[email protected]>
Signed-off-by: Carlo Caione <[email protected]>
---
 drivers/Makefile              |  2 +-
 drivers/fastboot/Makefile     |  8 ++++----
 drivers/fastboot/fb_block.c   |  9 ++++-----
 drivers/fastboot/fb_command.c | 31 +++++++++++++++++--------------
 drivers/fastboot/fb_common.c  |  4 ++--
 drivers/fastboot/fb_getvar.c  | 14 +++++++-------
 drivers/fastboot/fb_mmc.c     | 36 ++++++++++++++++++------------------
 7 files changed, 53 insertions(+), 51 deletions(-)

diff --git a/drivers/Makefile b/drivers/Makefile
index 43d0ba33281..43d03479146 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_$(PHASE_)DMA) += dma/
 obj-$(CONFIG_$(PHASE_)DMA_LEGACY) += dma/
 obj-$(CONFIG_$(PHASE_)DFU) += dfu/
 obj-$(CONFIG_$(PHASE_)EXTCON) += extcon/
+obj-$(CONFIG_$(PHASE_)FASTBOOT) += fastboot/
 obj-$(CONFIG_$(PHASE_)GPIO) += gpio/
 obj-$(CONFIG_$(PHASE_)DRIVERS_MISC) += misc/
 obj-$(CONFIG_$(PHASE_)SYSRESET) += sysreset/
@@ -93,7 +94,6 @@ obj-y += block/
 obj-y += cache/
 obj-$(CONFIG_CPU) += cpu/
 obj-y += crypto/
-obj-$(CONFIG_FASTBOOT) += fastboot/
 obj-$(CONFIG_FWU_MDATA) += fwu-mdata/
 obj-y += misc/
 obj-$(CONFIG_MMC) += mmc/
diff --git a/drivers/fastboot/Makefile b/drivers/fastboot/Makefile
index 32e8e072c88..12008ac05e2 100644
--- a/drivers/fastboot/Makefile
+++ b/drivers/fastboot/Makefile
@@ -4,8 +4,8 @@ obj-y += fb_common.o
 obj-y += fb_getvar.o
 obj-y += fb_command.o
 obj-$(CONFIG_USB_FUNCTION_FASTBOOT) += fb_usb.o
-obj-$(CONFIG_FASTBOOT_FLASH_BLOCK) += fb_block.o
+obj-$(CONFIG_$(PHASE_)FASTBOOT_FLASH_BLOCK) += fb_block.o
 # MMC reuses block implementation
-obj-$(CONFIG_FASTBOOT_FLASH_MMC) += fb_block.o fb_mmc.o
-obj-$(CONFIG_FASTBOOT_FLASH_NAND) += fb_nand.o
-obj-$(CONFIG_FASTBOOT_FLASH_SPI) += fb_spi_flash.o
+obj-$(CONFIG_$(PHASE_)FASTBOOT_FLASH_MMC) += fb_block.o fb_mmc.o
+obj-$(CONFIG_$(PHASE_)FASTBOOT_FLASH_NAND) += fb_nand.o
+obj-$(CONFIG_$(PHASE_)FASTBOOT_FLASH_SPI) += fb_spi_flash.o
diff --git a/drivers/fastboot/fb_block.c b/drivers/fastboot/fb_block.c
index 51d1abb18c7..9658b14e668 100644
--- a/drivers/fastboot/fb_block.c
+++ b/drivers/fastboot/fb_block.c
@@ -130,11 +130,10 @@ int fastboot_block_get_part_info(const char *part_name,
                                 char *response)
 {
        int ret;
-       const char *interface = config_opt_enabled(CONFIG_FASTBOOT_FLASH_BLOCK,
-                                                  
CONFIG_FASTBOOT_FLASH_BLOCK_INTERFACE_NAME,
-                                                  NULL);
-       const int device = config_opt_enabled(CONFIG_FASTBOOT_FLASH_BLOCK,
-                                             
CONFIG_FASTBOOT_FLASH_BLOCK_DEVICE_ID, -1);
+       const char *interface = CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK,
+               (CONFIG_VAL(FASTBOOT_FLASH_BLOCK_INTERFACE_NAME)), (NULL));
+       const int device = CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK,
+               (CONFIG_VAL(FASTBOOT_FLASH_BLOCK_DEVICE_ID)), (-1));
 
        if (!part_name || !strcmp(part_name, "")) {
                fastboot_fail("partition not given", response);
diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c
index 18d86988f4c..111516fd1b3 100644
--- a/drivers/fastboot/fb_command.c
+++ b/drivers/fastboot/fb_command.c
@@ -339,19 +339,19 @@ void fastboot_data_complete(char *response)
  */
 static void __maybe_unused flash(char *cmd_parameter, char *response)
 {
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_BLOCK))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK))
                fastboot_block_flash_write(cmd_parameter, fastboot_buf_addr,
                                           image_size, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC))
                fastboot_mmc_flash_write(cmd_parameter, fastboot_buf_addr,
                                         image_size, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_NAND))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND))
                fastboot_nand_flash_write(cmd_parameter, fastboot_buf_addr,
                                          image_size, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_SPI))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_SPI))
                fastboot_spi_flash_write(cmd_parameter, fastboot_buf_addr,
                                         image_size, response);
 }
@@ -367,16 +367,16 @@ static void __maybe_unused flash(char *cmd_parameter, 
char *response)
  */
 static void __maybe_unused erase(char *cmd_parameter, char *response)
 {
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_BLOCK))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK))
                fastboot_block_erase(cmd_parameter, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC))
                fastboot_mmc_erase(cmd_parameter, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_NAND))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND))
                fastboot_nand_erase(cmd_parameter, response);
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_SPI))
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_SPI))
                fastboot_spi_flash_erase(cmd_parameter, response);
 }
 
@@ -482,8 +482,9 @@ static void reboot_recovery(char *cmd_parameter, char 
*response)
 static void __maybe_unused oem_format(char *cmd_parameter, char *response)
 {
        char cmdbuf[32];
-       const int mmc_dev = config_opt_enabled(CONFIG_FASTBOOT_FLASH_MMC,
-                                              CONFIG_FASTBOOT_FLASH_MMC_DEV, 
-1);
+       const int mmc_dev = CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC,
+                                             
(CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV)),
+                                             (-1));
 
        if (!env_get("partitions")) {
                fastboot_fail("partitions not set", response);
@@ -505,8 +506,9 @@ static void __maybe_unused oem_format(char *cmd_parameter, 
char *response)
 static void __maybe_unused oem_partconf(char *cmd_parameter, char *response)
 {
        char cmdbuf[32];
-       const int mmc_dev = config_opt_enabled(CONFIG_FASTBOOT_FLASH_MMC,
-                                              CONFIG_FASTBOOT_FLASH_MMC_DEV, 
-1);
+       const int mmc_dev = CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC,
+                                             
(CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV)),
+                                             (-1));
 
        if (!cmd_parameter) {
                fastboot_fail("Expected command parameter", response);
@@ -531,8 +533,9 @@ static void __maybe_unused oem_partconf(char 
*cmd_parameter, char *response)
 static void __maybe_unused oem_bootbus(char *cmd_parameter, char *response)
 {
        char cmdbuf[32];
-       const int mmc_dev = config_opt_enabled(CONFIG_FASTBOOT_FLASH_MMC,
-                                              CONFIG_FASTBOOT_FLASH_MMC_DEV, 
-1);
+       const int mmc_dev = CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC,
+                                             
(CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV)),
+                                             (-1));
 
        if (!cmd_parameter) {
                fastboot_fail("Expected command parameter", response);
diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
index 9c52e004588..3c0013490cc 100644
--- a/drivers/fastboot/fb_common.c
+++ b/drivers/fastboot/fb_common.c
@@ -234,8 +234,8 @@ void fastboot_set_progress_callback(void (*progress)(const 
char *msg))
  */
 void fastboot_init(void *buf_addr, u32 buf_size)
 {
-#if IS_ENABLED(CONFIG_FASTBOOT_FLASH_BLOCK)
-       if (!strcmp(CONFIG_FASTBOOT_FLASH_BLOCK_INTERFACE_NAME, "mmc"))
+#if CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK)
+       if (!strcmp(CONFIG_VAL(FASTBOOT_FLASH_BLOCK_INTERFACE_NAME), "mmc"))
                printf("Warning: the fastboot block backend features are 
limited, consider using the MMC backend\n");
 #endif
 
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c
index e8aa0e09aa6..9e8e8889d08 100644
--- a/drivers/fastboot/fb_getvar.c
+++ b/drivers/fastboot/fb_getvar.c
@@ -70,19 +70,19 @@ static const struct {
                .variable = "current-slot",
                .dispatch = getvar_current_slot,
                .list = true
-#if IS_ENABLED(CONFIG_FASTBOOT_FLASH)
+#if CONFIG_IS_ENABLED(FASTBOOT_FLASH)
        }, {
                .variable = "has-slot",
                .dispatch = getvar_has_slot,
                .list = false
 #endif
-#if IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC)
+#if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC)
        }, {
                .variable = "partition-type",
                .dispatch = getvar_partition_type,
                .list = false
 #endif
-#if IS_ENABLED(CONFIG_FASTBOOT_FLASH)
+#if CONFIG_IS_ENABLED(FASTBOOT_FLASH)
        }, {
                .variable = "partition-size",
                .dispatch = getvar_partition_size,
@@ -116,21 +116,21 @@ static int getvar_get_part_info(const char *part_name, 
char *response,
        struct disk_partition disk_part;
        struct part_info *part_info;
 
-       if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_BLOCK)) {
+       if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_BLOCK)) {
                r = fastboot_block_get_part_info(part_name, &dev_desc, 
&disk_part,
                                                 response);
                if (r >= 0 && size)
                        *size = disk_part.size * disk_part.blksz;
-       } else if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC)) {
+       } else if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC)) {
                r = fastboot_mmc_get_part_info(part_name, &dev_desc, &disk_part,
                                               response);
                if (r >= 0 && size)
                        *size = disk_part.size * disk_part.blksz;
-       } else if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_NAND)) {
+       } else if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND)) {
                r = fastboot_nand_get_part_info(part_name, &part_info, 
response);
                if (r >= 0 && size)
                        *size = part_info->size;
-       } else if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_SPI)) {
+       } else if (CONFIG_IS_ENABLED(FASTBOOT_FLASH_SPI)) {
                r = fastboot_spi_flash_get_part_info(part_name, &disk_part,
                                                     response);
                if (r >= 0 && size)
diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
index 9bc782ccd02..ae33e35365b 100644
--- a/drivers/fastboot/fb_mmc.c
+++ b/drivers/fastboot/fb_mmc.c
@@ -75,7 +75,7 @@ static int do_get_part_info(struct blk_desc **dev_desc, const 
char *name,
        int ret;
 
        /* First try partition names on the default device */
-       *dev_desc = blk_get_dev("mmc", CONFIG_FASTBOOT_FLASH_MMC_DEV);
+       *dev_desc = blk_get_dev("mmc", CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV));
        if (*dev_desc) {
                ret = part_get_info_by_name(*dev_desc, name, info);
                if (ret >= 0)
@@ -111,7 +111,7 @@ static int part_get_info_by_name_or_alias(struct blk_desc 
**dev_desc,
        return do_get_part_info(dev_desc, name, info);
 }
 
-#ifdef CONFIG_FASTBOOT_MMC_BOOT_SUPPORT
+#if CONFIG_IS_ENABLED(FASTBOOT_MMC_BOOT_SUPPORT)
 static void fb_mmc_boot_ops(struct blk_desc *dev_desc, void *buffer,
                            int hwpart, u32 buff_sz, char *response)
 {
@@ -130,7 +130,7 @@ static void fb_mmc_boot_ops(struct blk_desc *dev_desc, void 
*buffer,
 }
 #endif
 
-#ifdef CONFIG_ANDROID_BOOT_IMAGE
+#if CONFIG_IS_ENABLED(ANDROID_BOOT_IMAGE)
 /**
  * Read Android boot image header from boot partition.
  *
@@ -346,7 +346,7 @@ int fastboot_mmc_get_part_info(const char *part_name,
 static struct blk_desc *fastboot_mmc_get_dev(char *response)
 {
        struct blk_desc *ret = blk_get_dev("mmc",
-                                          CONFIG_FASTBOOT_FLASH_MMC_DEV);
+                                          CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV));
 
        if (!ret || ret->type == DEV_TYPE_UNKNOWN) {
                pr_err("invalid mmc device\n");
@@ -370,15 +370,15 @@ void fastboot_mmc_flash_write(const char *cmd, void 
*download_buffer,
        struct blk_desc *dev_desc;
        struct disk_partition info = {0};
 
-#ifdef CONFIG_FASTBOOT_MMC_BOOT_SUPPORT
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT1_NAME) == 0) {
+#if CONFIG_IS_ENABLED(FASTBOOT_MMC_BOOT_SUPPORT)
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_BOOT1_NAME))) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (dev_desc)
                        fb_mmc_boot_ops(dev_desc, download_buffer, 1,
                                        download_bytes, response);
                return;
        }
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT2_NAME) == 0) {
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_BOOT2_NAME))) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (dev_desc)
                        fb_mmc_boot_ops(dev_desc, download_buffer, 2,
@@ -388,7 +388,7 @@ void fastboot_mmc_flash_write(const char *cmd, void 
*download_buffer,
 #endif
 
 #if CONFIG_IS_ENABLED(EFI_PARTITION)
-       if (strcmp(cmd, CONFIG_FASTBOOT_GPT_NAME) == 0) {
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_GPT_NAME))) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (!dev_desc)
                        return;
@@ -415,7 +415,7 @@ void fastboot_mmc_flash_write(const char *cmd, void 
*download_buffer,
 #endif
 
 #if CONFIG_IS_ENABLED(DOS_PARTITION)
-       if (strcmp(cmd, CONFIG_FASTBOOT_MBR_NAME) == 0) {
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MBR_NAME))) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (!dev_desc)
                        return;
@@ -440,7 +440,7 @@ void fastboot_mmc_flash_write(const char *cmd, void 
*download_buffer,
        }
 #endif
 
-#ifdef CONFIG_ANDROID_BOOT_IMAGE
+#if CONFIG_IS_ENABLED(ANDROID_BOOT_IMAGE)
        if (strncasecmp(cmd, "zimage", 6) == 0) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (dev_desc)
@@ -450,8 +450,8 @@ void fastboot_mmc_flash_write(const char *cmd, void 
*download_buffer,
        }
 #endif
 
-#if IS_ENABLED(CONFIG_FASTBOOT_MMC_USER_SUPPORT)
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_USER_NAME) == 0) {
+#if CONFIG_IS_ENABLED(FASTBOOT_MMC_USER_SUPPORT)
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_USER_NAME))) {
                dev_desc = fastboot_mmc_get_dev(response);
                if (!dev_desc)
                        return;
@@ -485,17 +485,17 @@ void fastboot_mmc_erase(const char *cmd, char *response)
 {
        struct blk_desc *dev_desc;
        struct disk_partition info;
-       struct mmc *mmc = find_mmc_device(CONFIG_FASTBOOT_FLASH_MMC_DEV);
+       struct mmc *mmc = find_mmc_device(CONFIG_VAL(FASTBOOT_FLASH_MMC_DEV));
 
-#ifdef CONFIG_FASTBOOT_MMC_BOOT_SUPPORT
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT1_NAME) == 0) {
+#if CONFIG_IS_ENABLED(FASTBOOT_MMC_BOOT_SUPPORT)
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_BOOT1_NAME))) {
                /* erase EMMC boot1 */
                dev_desc = fastboot_mmc_get_dev(response);
                if (dev_desc)
                        fb_mmc_boot_ops(dev_desc, NULL, 1, 0, response);
                return;
        }
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_BOOT2_NAME) == 0) {
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_BOOT2_NAME))) {
                /* erase EMMC boot2 */
                dev_desc = fastboot_mmc_get_dev(response);
                if (dev_desc)
@@ -504,8 +504,8 @@ void fastboot_mmc_erase(const char *cmd, char *response)
        }
 #endif
 
-#ifdef CONFIG_FASTBOOT_MMC_USER_SUPPORT
-       if (strcmp(cmd, CONFIG_FASTBOOT_MMC_USER_NAME) == 0) {
+#if CONFIG_IS_ENABLED(FASTBOOT_MMC_USER_SUPPORT)
+       if (!strcmp(cmd, CONFIG_VAL(FASTBOOT_MMC_USER_NAME))) {
                /* erase EMMC userdata */
                dev_desc = fastboot_mmc_get_dev(response);
                if (!dev_desc)

-- 
2.55.0

Reply via email to