]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dfu: fix Kconfig dependencies
authorJerome Forissier <jerome.forissier@linaro.org>
Tue, 10 Sep 2024 10:27:50 +0000 (12:27 +0200)
committerMattijs Korpershoek <mkorpershoek@baylibre.com>
Fri, 13 Sep 2024 15:41:18 +0000 (17:41 +0200)
Fix link errors caused by missing Kconfig dependencies:

1. DFU_OVER_USB compiles common/dfu.c which calls g_dnl_clear_detach()
which is implemented in drivers/usb/gadget/g_dnl.c which needs
USB_GADGET_DOWNLOAD. Test case:

 $ printf "CONFIG_USB_GADGET_DOWNLOAD=n\nCONFIG_USB_FUNCTION_FASTBOOT=n" \
       >>configs/am62px_evm_a53_defconfig
 $ make am62px_evm_a53_defconfig
 $ make CROSS_COMPILE=aarch64-linux-gnu-
 [...]
 common/dfu.c:34:(.text.run_usb_dnl_gadget+0x68): undefined reference to `g_dnl_clear_detach
 [...]

2. With the above fixed, the same build causes:

 common/spl/spl_dfu.c:29:(.text.spl_dfu_cmd+0xb0): undefined reference to `run_usb_dnl_gadget'

This is because SPL_DFU compiles common/spl/spl_dfu.c which calls
run_usb_dnl_gadget() which is implemented in common/dfu.c which needs
DFU_OVER_USB.

Therefore add these dependencies to Kconfig.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Link: https://lore.kernel.org/r/20240910102751.3182982-1-jerome.forissier@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
drivers/dfu/Kconfig
drivers/usb/gadget/Kconfig

index 971204758aa8f8281157e954dec7c263a6df7a95..aadd7e8cf7f05e631970946148d83a43d3d79e60 100644 (file)
@@ -7,7 +7,7 @@ config DFU
 config DFU_OVER_USB
        bool
        select HASH
-       depends on USB_GADGET
+       depends on USB_GADGET_DOWNLOAD
 
 config DFU_OVER_TFTP
        bool
index 4621a6fd5e64f6cd4df574a30a98db6b236a5d6d..2634154f94a4cb0bea8a5cb88d8299441808915a 100644 (file)
@@ -323,6 +323,7 @@ config SPL_DFU
        bool "Support DFU (Device Firmware Upgrade) in SPL"
        select SPL_HASH
        select SPL_DFU_NO_RESET
+       depends on DFU_OVER_USB
        depends on SPL_RAM_SUPPORT
        help
          This feature enables the DFU (Device Firmware Upgrade) in SPL with