[PATCH v2 1/2] rockchip: Fix TPL link error
FUKAUMI Naoki
naoki at radxa.com
Tue Feb 11 05:33:34 CET 2025
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>
---
Changes in v2:
- Move drivers/usb/{dwc,cdns}3 from scripts/Makefeile.xpl to drivers/Makefile
- Suppress unused warnings
---
drivers/Makefile | 2 ++
drivers/usb/dwc3/dwc3-generic.c | 2 ++
scripts/Makefile.xpl | 2 --
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 0e1f58c515b..3ec05b942de 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -62,6 +62,8 @@ obj-$(CONFIG_ARCH_IMX9) += ddr/imx/imx9/
obj-$(CONFIG_DRAM_SUN20I_D1) += ram/
obj-$(CONFIG_SPL_DM_RESET) += reset/
obj-$(CONFIG_SPL_MUSB_NEW) += usb/musb-new/
+obj-$(CONFIG_SPL_USB_GADGET) += usb/dwc3/
+obj-$(CONFIG_SPL_USB_GADGET) += usb/cdns3/
obj-$(CONFIG_SPL_USB_GADGET) += usb/gadget/
obj-$(CONFIG_SPL_USB_GADGET) += usb/common/
obj-$(CONFIG_SPL_USB_GADGET) += usb/gadget/udc/
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index 55e62b35c61..8c2545bc2ec 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -50,6 +50,7 @@ struct dwc3_generic_host_priv {
struct udevice *vbus_supply;
};
+#if !CONFIG_IS_ENABLED(SPL_BUILD) || CONFIG_IS_ENABLED(SPL_USB_DWC3_GENERIC)
static int dwc3_generic_probe(struct udevice *dev,
struct dwc3_generic_priv *priv,
enum usb_dr_mode mode)
@@ -192,6 +193,7 @@ static int dwc3_generic_of_to_plat(struct udevice *dev)
return 0;
}
+#endif
#if CONFIG_IS_ENABLED(DM_USB_GADGET)
static int dwc3_generic_peripheral_probe(struct udevice *dev)
diff --git a/scripts/Makefile.xpl b/scripts/Makefile.xpl
index abc49fbe6c9..a819af8a9b7 100644
--- a/scripts/Makefile.xpl
+++ b/scripts/Makefile.xpl
@@ -125,8 +125,6 @@ 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-y += dts/
libs-y += fs/
libs-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
--
2.43.0
More information about the U-Boot
mailing list