summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Karlman <[email protected]>2026-01-31 23:38:12 +0000
committerTom Rini <[email protected]>2026-03-10 10:07:02 -0600
commitf273b393f7fcdb03c839e72ca56596aa02af9aff (patch)
tree164c3b82af678ef68f8dc198f122c75a4de8e04d
parent109c7ef87d775d998f919710ae2b486dcb813e60 (diff)
rockchip: spl: Add common handling of USB bootsource_id 0x81
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 <[email protected]> Reviewed-by: Kever Yang <[email protected]>
-rw-r--r--arch/arm/mach-rockchip/rk3528/rk3528.c15
-rw-r--r--arch/arm/mach-rockchip/spl.c12
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 57ead0006f1..f9bfc445b85 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 1ce3a3b0554..b9e7302d3b2 100644
--- a/arch/arm/mach-rockchip/spl.c
+++ b/arch/arm/mach-rockchip/spl.c
@@ -33,7 +33,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)