[PATCH 1/3] rockchip: Fix TPL link error
Quentin Schulz
quentin.schulz at cherry.de
Wed Jan 29 15:16:13 CET 2025
Hi Naoki,
On 1/29/25 2:25 PM, FUKAUMI Naoki wrote:
> Rockchip RK3399 targets build TPL. If CONFIG_SPL_USB_DWC3_GENERIC and
> CONFIG_SPL_USB_GADGET are enabled, linking u-boot-tpl will fail.
>
> LD tpl/u-boot-tpl
> ld.bfd: drivers/usb/dwc3/dwc3-generic.o: in function `dwc3_glue_bind_common':
> /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:527:(.text.dwc3_glue_bind_common+0x20): undefined reference to `usb_get_dr_mode'
> /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:527:(.text.dwc3_glue_bind_common+0x20): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `usb_get_dr_mode'
> ld.bfd: /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:529:(.text.dwc3_glue_bind_common+0x2c): undefined reference to `usb_get_dr_mode'
> /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:529:(.text.dwc3_glue_bind_common+0x2c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `usb_get_dr_mode'
> ld.bfd: drivers/usb/dwc3/dwc3-generic.o: in function `dwc3_glue_probe':
> /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:683:(.text.dwc3_glue_probe+0xb0): undefined reference to `usb_get_dr_mode'
> /home/radxa/u-boot/drivers/usb/dwc3/dwc3-generic.c:683:(.text.dwc3_glue_probe+0xb0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `usb_get_dr_mode'
>
> Do not compile drivers/usb/ for TPL.
>
> Signed-off-by: FUKAUMI Naoki <naoki at radxa.com>
> ---
> scripts/Makefile.xpl | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/Makefile.xpl b/scripts/Makefile.xpl
> index abc49fbe6c9..e4ca4d395ac 100644
> --- a/scripts/Makefile.xpl
> +++ b/scripts/Makefile.xpl
> @@ -125,8 +125,8 @@ endif
>
> libs-y += drivers/
> libs-$(CONFIG_SPL_MEMORY) += drivers/memory/
> -libs-$(CONFIG_SPL_USB_GADGET) += drivers/usb/dwc3/
> -libs-$(CONFIG_SPL_USB_GADGET) += drivers/usb/cdns3/
> +libs-$(CONFIG_$(PHASE_)USB_GADGET) += drivers/usb/dwc3/
> +libs-$(CONFIG_$(PHASE_)USB_GADGET) += drivers/usb/cdns3/
I don't know what this is actually used for? Like why is it different
from the typical Makefile we have for other subsystems and drivers?
Can't we simply remove those and add them in drivers/Makefile, like:
obj-$(CONFIG_$(PHASE_)USB_GADGET) += usb/dwc3/
obj-$(CONFIG_$(PHASE_)USB_GADGET) += usb/cdns3/
For example?
Otherwise makes sense to me.
Cheers,
Quentin
More information about the U-Boot
mailing list