[PATCH v2 01/12] rockchip: spl: Add common handling of USB bootsource_id 0x81
Jonas Karlman
jonas at kwiboo.se
Sun Feb 1 00:38:12 CET 2026
Multiple newer Rockchip SoCs report 0x81 instead of 0xa when booting
from USB, i.e. on RK3576, RK3528, RK3506 and RV1106.
Move the bootsource_id 0x81 handling currently only used for RK3528 to
the common read_brom_bootsource_id() to reduce the need to override this
function when support for newer SoCs is introduced.
Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
---
v2: New patch
---
arch/arm/mach-rockchip/rk3528/rk3528.c | 15 ---------------
arch/arm/mach-rockchip/spl.c | 12 +++++++++++-
2 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/arch/arm/mach-rockchip/rk3528/rk3528.c b/arch/arm/mach-rockchip/rk3528/rk3528.c
index 57ead0006f1f..f9bfc445b857 100644
--- a/arch/arm/mach-rockchip/rk3528/rk3528.c
+++ b/arch/arm/mach-rockchip/rk3528/rk3528.c
@@ -49,21 +49,6 @@ void board_debug_uart_init(void)
{
}
-u32 read_brom_bootsource_id(void)
-{
- u32 bootsource_id = readl(BROM_BOOTSOURCE_ID_ADDR);
-
- /* Re-map the raw value read from reg to an existing BROM_BOOTSOURCE
- * enum value to avoid having to create a larger boot_devices table.
- */
- if (bootsource_id == 0x81)
- return BROM_BOOTSOURCE_USB;
- else if (bootsource_id > BROM_LAST_BOOTSOURCE)
- log_debug("Unknown bootsource %x\n", bootsource_id);
-
- return bootsource_id;
-}
-
int arch_cpu_init(void)
{
u32 val;
diff --git a/arch/arm/mach-rockchip/spl.c b/arch/arm/mach-rockchip/spl.c
index a9155dceedb4..e989c148079a 100644
--- a/arch/arm/mach-rockchip/spl.c
+++ b/arch/arm/mach-rockchip/spl.c
@@ -35,7 +35,17 @@ __weak const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
__weak u32 read_brom_bootsource_id(void)
{
- return readl(BROM_BOOTSOURCE_ID_ADDR);
+ u32 bootsource_id = readl(BROM_BOOTSOURCE_ID_ADDR);
+
+ /* Re-map the raw value read from reg to an existing BROM_BOOTSOURCE
+ * enum value to avoid having to create a larger boot_devices table.
+ */
+ if (bootsource_id == 0x81)
+ return BROM_BOOTSOURCE_USB;
+ else if (bootsource_id > BROM_LAST_BOOTSOURCE)
+ log_debug("Unknown bootsource %x\n", bootsource_id);
+
+ return bootsource_id;
}
const char *board_spl_was_booted_from(void)
--
2.52.0
More information about the U-Boot
mailing list