fastboot: Correct dependencies in FASTBOOT_FLASH
authorAlex Kiernan <alex.kiernan@gmail.com>
Tue, 29 May 2018 15:30:42 +0000 (15:30 +0000)
committerMarek Vasut <marex@denx.de>
Wed, 30 May 2018 09:59:21 +0000 (11:59 +0200)
Ensure that when selecting FASTBOOT_FLASH you end up with a buildable
configuration. Prior to this you could select NAND without MTDPARTS
and end up with an image which (surprisingly) excluded NAND.

Also fix dependencies on FASTBOOT_GPT_NAME/FASTBOOT_MBR_NAME which require
you have EFI_PARTITION/DOS_PARTITION enabled.

Delete redundant FASTBOOT_FLASH_NAND_DEV from Kconfig - it was only ever
used as a guard and the value was ignored in all cases, we're using
FASTBOOT_FLASH_NAND as the guard now.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
arch/arm/mach-omap2/utils.c
drivers/fastboot/Kconfig
drivers/fastboot/Makefile
drivers/usb/gadget/f_fastboot.c

index dc7b37f1643500d864e3defcfd59d3735fde0220..edf5edcb6808c86c35fb8a1fee183287c3fd0a89 100644 (file)
@@ -85,7 +85,7 @@ static void omap_set_fastboot_board_rev(void)
        env_set("fastboot.board_rev", board_rev);
 }
 
-#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_MMC
 static u32 omap_mmc_get_part_size(const char *part)
 {
        int res;
@@ -128,7 +128,7 @@ static void omap_set_fastboot_userdata_size(void)
 static inline void omap_set_fastboot_userdata_size(void)
 {
 }
-#endif /* CONFIG_FASTBOOT_FLASH_MMC_DEV */
+#endif /* CONFIG_FASTBOOT_FLASH_MMC */
 void omap_set_fastboot_vars(void)
 {
        omap_set_fastboot_cpu();
index 93a8ac64e76563fc1c78c77879ec548becc8eb0e..9bbc5c661d4376a05ca21423063af89b8f0346fb 100644 (file)
@@ -56,6 +56,7 @@ config FASTBOOT_USB_DEV
 config FASTBOOT_FLASH
        bool "Enable FASTBOOT FLASH command"
        default y if ARCH_SUNXI
+       depends on MMC || (NAND && CMD_MTDPARTS)
        help
          The fastboot protocol includes a "flash" command for writing
          the downloaded image to a non-volatile storage device. Define
@@ -71,7 +72,7 @@ config FASTBOOT_FLASH_MMC
 
 config FASTBOOT_FLASH_NAND
        bool "FASTBOOT on NAND"
-       depends on NAND
+       depends on NAND && CMD_MTDPARTS
 
 endchoice
 
@@ -85,19 +86,9 @@ config FASTBOOT_FLASH_MMC_DEV
          regarding the non-volatile storage device. Define this to
          the eMMC device that fastboot should use to store the image.
 
-config FASTBOOT_FLASH_NAND_DEV
-       int "Define FASTBOOT NAND FLASH default device"
-       depends on FASTBOOT_FLASH_NAND
-       depends on CMD_MTDPARTS
-       default 0 if ARCH_SUNXI && NAND_SUNXI
-       help
-         The fastboot "flash" command requires additional information
-         regarding the non-volatile storage device. Define this to
-         the NAND device that fastboot should use to store the image.
-
 config FASTBOOT_GPT_NAME
        string "Target name for updating GPT"
-       depends on FASTBOOT_FLASH
+       depends on FASTBOOT_FLASH_MMC && EFI_PARTITION
        default "gpt"
        help
          The fastboot "flash" command supports writing the downloaded
@@ -110,7 +101,7 @@ config FASTBOOT_GPT_NAME
 
 config FASTBOOT_MBR_NAME
        string "Target name for updating MBR"
-       depends on FASTBOOT_FLASH
+       depends on FASTBOOT_FLASH_MMC && DOS_PARTITION
        default "mbr"
        help
          The fastboot "flash" command allows to write the downloaded image
index b38dcff202602f7d70c4453b6c79bac8c786fd06..e4bd389adf020fbe31366a64d98c4fceab0891db 100644 (file)
@@ -2,9 +2,5 @@
 
 obj-y += fb_common.o
 
-ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
-obj-y += fb_mmc.o
-endif
-ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
-obj-y += fb_nand.o
-endif
+obj-$(CONFIG_FASTBOOT_FLASH_MMC) += fb_mmc.o
+obj-$(CONFIG_FASTBOOT_FLASH_NAND) += fb_nand.o
index 2e6e1615bfc7079224f0bea09821110fd29796eb..323ac89417ab357120da9b504f1913e768fc60b0 100644 (file)
 #include <linux/compiler.h>
 #include <version.h>
 #include <g_dnl.h>
-#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_MMC
 #include <fb_mmc.h>
 #endif
-#ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_NAND
 #include <fb_nand.h>
 #endif
 
@@ -583,11 +583,11 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req)
        }
 
        fastboot_fail("no flash device defined", response);
-#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_MMC
        fb_mmc_flash_write(cmd, (void *)CONFIG_FASTBOOT_BUF_ADDR,
                           download_bytes, response);
 #endif
-#ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_NAND
        fb_nand_flash_write(cmd, (void *)CONFIG_FASTBOOT_BUF_ADDR,
                            download_bytes, response);
 #endif
@@ -598,7 +598,7 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req)
 static void cb_oem(struct usb_ep *ep, struct usb_request *req)
 {
        char *cmd = req->buf;
-#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_MMC
        if (strncmp("format", cmd + 4, 6) == 0) {
                char cmdbuf[32];
                 sprintf(cmdbuf, "gpt write mmc %x $partitions",
@@ -631,10 +631,10 @@ static void cb_erase(struct usb_ep *ep, struct usb_request *req)
        }
 
        fastboot_fail("no flash device defined", response);
-#ifdef CONFIG_FASTBOOT_FLASH_MMC_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_MMC
        fb_mmc_erase(cmd, response);
 #endif
-#ifdef CONFIG_FASTBOOT_FLASH_NAND_DEV
+#ifdef CONFIG_FASTBOOT_FLASH_NAND
        fb_nand_erase(cmd, response);
 #endif
        fastboot_tx_write_str(response);