summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Li <[email protected]>2025-10-28 10:46:25 +0800
committerFabio Estevam <[email protected]>2025-11-04 12:39:46 -0300
commit53d98faad76f8a0afd0ea91e9d00b747c6f88d5a (patch)
treed5be56e489d80ff76032dc8d6ae3e48666d75152
parent28a38ab542f564b42a826de775622b0858fc18d8 (diff)
Add serial# for SPL SDP download
After update this, uuu(>1.6) can use below command to filter out devices when multi boards connected. uuu -ms <serial#> ... [sudo] uuu -lsusb can list known devices with serial# informaiton. Serial number is retrieved via get_board_serial() and passed to g_dnl_set_serialnumber(). This part is conditionally compiled for i.MX94 only now. Signed-off-by: Frank Li <[email protected]> Signed-off-by: Alice Guo <[email protected]> Reviewed-by: Ye Li <[email protected]>
-rw-r--r--arch/arm/mach-imx/spl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c
index 518d9cb1262..57ae81c7834 100644
--- a/arch/arm/mach-imx/spl.c
+++ b/arch/arm/mach-imx/spl.c
@@ -21,6 +21,8 @@
#include <g_dnl.h>
#include <linux/libfdt.h>
#include <memalign.h>
+#include <asm/setup.h>
+#include <asm/bootm.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -184,6 +186,16 @@ u32 spl_boot_device(void)
#ifdef CONFIG_SPL_USB_GADGET
int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
{
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+#ifdef CONFIG_IMX94
+ struct tag_serialnr serialnr;
+ char serial_string[0x21] = {0};
+
+ get_board_serial(&serialnr);
+ snprintf(serial_string, sizeof(serial_string), "%08x%08x", serialnr.high, serialnr.low);
+ g_dnl_set_serialnumber(serial_string);
+#endif
+#endif
put_unaligned(CONFIG_USB_GADGET_PRODUCT_NUM + 0xfff, &dev->idProduct);
return 0;