diff mbox series

dfu: fix Kconfig dependencies

Message ID 20240910102751.3182982-1-jerome.forissier@linaro.org
State Accepted
Commit 2f9c472dd7a91bc2d6e7840a550edcd257ff8b57
Headers show
Series dfu: fix Kconfig dependencies | expand

Commit Message

Jerome Forissier Sept. 10, 2024, 10:27 a.m. UTC
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>
---
 drivers/dfu/Kconfig        | 2 +-
 drivers/usb/gadget/Kconfig | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Marek Vasut Sept. 10, 2024, 10:48 a.m. UTC | #1
On 9/10/24 12:27 PM, Jerome Forissier wrote:
> 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.
Reviewed-by: Marek Vasut <marex@denx.de>

Thanks !
Mattijs Korpershoek Sept. 10, 2024, 1:19 p.m. UTC | #2
Hi Jerome,

Thank you for the patch.

On mar., sept. 10, 2024 at 12:27, Jerome Forissier <jerome.forissier@linaro.org> wrote:

> 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: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> ---
>  drivers/dfu/Kconfig        | 2 +-
>  drivers/usb/gadget/Kconfig | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index d034b501360..604386bb734 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -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
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 03fe3bca197..9921d3e0a77 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -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
> -- 
> 2.40.1
Ilias Apalodimas Sept. 10, 2024, 1:55 p.m. UTC | #3
On Tue, 10 Sept 2024 at 13:28, Jerome Forissier
<jerome.forissier@linaro.org> wrote:
>
> 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>
> ---
>  drivers/dfu/Kconfig        | 2 +-
>  drivers/usb/gadget/Kconfig | 1 +
>  2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
> index d034b501360..604386bb734 100644
> --- a/drivers/dfu/Kconfig
> +++ b/drivers/dfu/Kconfig
> @@ -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
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 03fe3bca197..9921d3e0a77 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -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
> --
> 2.40.1
>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Mattijs Korpershoek Sept. 13, 2024, 3:42 p.m. UTC | #4
Hi,

On Tue, 10 Sep 2024 12:27:50 +0200, Jerome Forissier wrote:
> 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
>  [...]
> 
> [...]

Thanks, Applied to https://source.denx.de/u-boot/custodians/u-boot-dfu (u-boot-dfu)

[1/1] dfu: fix Kconfig dependencies
      https://source.denx.de/u-boot/custodians/u-boot-dfu/-/commit/2f9c472dd7a91bc2d6e7840a550edcd257ff8b57

--
Mattijs
diff mbox series

Patch

diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
index d034b501360..604386bb734 100644
--- a/drivers/dfu/Kconfig
+++ b/drivers/dfu/Kconfig
@@ -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
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 03fe3bca197..9921d3e0a77 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -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