Message ID | 20240910102751.3182982-1-jerome.forissier@linaro.org |
---|---|
State | Accepted |
Commit | 2f9c472dd7a91bc2d6e7840a550edcd257ff8b57 |
Headers | show |
Series | dfu: fix Kconfig dependencies | expand |
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 !
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
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>
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 --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