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 <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
This commit is contained in:
Jonas Karlman 2026-01-31 23:38:12 +00:00 committed by Tom Rini
parent 109c7ef87d
commit f273b393f7
2 changed files with 11 additions and 16 deletions

View File

@ -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;

View File

@ -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)