[PATCH v2 1/4] rockchip: rk3588: Fix boot from SPI flash
Kever Yang
kever.yang at rock-chips.com
Thu Jan 18 08:03:44 CET 2024
On 2023/11/18 07:24, Jonas Karlman wrote:
> The commit fd6e425be243 ("rockchip: rk3588-rock-5b: Enable boot from SPI
> NOR flash") added a new BROM_BOOTSOURCE_SPINOR_RK3588 with value 6.
>
> At the time the reason for this new bootsource id value 6 was unknown.
>
> We now know that the BootRom on RK3588 use different bootsource id
> values depending on the iomux used by the flash spi controller, and not
> by the type of spi nor or spi nand flash used.
>
> Add the following enum values and use them for RK3588 boot_devices.
>
> - BROM_BOOTSOURCE_FSPI_M0 = 3
> - BROM_BOOTSOURCE_FSPI_M1 = 4
> - BROM_BOOTSOURCE_FSPI_M2 = 6
>
> Fixes: fd6e425be243 ("rockchip: rk3588-rock-5b: Enable boot from SPI NOR flash")
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> Tested-by: Slawomir Stepien <sst at poczta.fm>
Reviewed-by: Kever Yang <kever.yang at rock-chips.com>
Thanks,
- Kever
> ---
> v2:
> - Move FSPI M0/M1/M2 enum values from bootrom.h to rk3588.c
> - Add t-b tag
>
> arch/arm/include/asm/arch-rockchip/bootrom.h | 1 -
> arch/arm/mach-rockchip/rk3588/rk3588.c | 16 ++++++++++++++--
> 2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-rockchip/bootrom.h b/arch/arm/include/asm/arch-rockchip/bootrom.h
> index 7dab18fbc3fb..4276a0f6811a 100644
> --- a/arch/arm/include/asm/arch-rockchip/bootrom.h
> +++ b/arch/arm/include/asm/arch-rockchip/bootrom.h
> @@ -48,7 +48,6 @@ enum {
> BROM_BOOTSOURCE_SPINOR = 3,
> BROM_BOOTSOURCE_SPINAND = 4,
> BROM_BOOTSOURCE_SD = 5,
> - BROM_BOOTSOURCE_SPINOR_RK3588 = 6,
> BROM_BOOTSOURCE_USB = 10,
> BROM_LAST_BOOTSOURCE = BROM_BOOTSOURCE_USB
> };
> diff --git a/arch/arm/mach-rockchip/rk3588/rk3588.c b/arch/arm/mach-rockchip/rk3588/rk3588.c
> index b1f535fad505..7b0349ec2577 100644
> --- a/arch/arm/mach-rockchip/rk3588/rk3588.c
> +++ b/arch/arm/mach-rockchip/rk3588/rk3588.c
> @@ -37,11 +37,23 @@ DECLARE_GLOBAL_DATA_PTR;
> #define BUS_IOC_GPIO2D_IOMUX_SEL_H 0x5c
> #define BUS_IOC_GPIO3A_IOMUX_SEL_L 0x60
>
> +/**
> + * Boot-device identifiers used by the BROM on RK3588 when device is booted
> + * from SPI flash. IOMUX used for SPI flash affect the value used by the BROM
> + * and not the type of SPI flash used.
> + */
> +enum {
> + BROM_BOOTSOURCE_FSPI_M0 = 3,
> + BROM_BOOTSOURCE_FSPI_M1 = 4,
> + BROM_BOOTSOURCE_FSPI_M2 = 6,
> +};
> +
> const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
> [BROM_BOOTSOURCE_EMMC] = "/mmc at fe2e0000",
> - [BROM_BOOTSOURCE_SPINOR] = "/spi at fe2b0000/flash at 0",
> + [BROM_BOOTSOURCE_FSPI_M0] = "/spi at fe2b0000/flash at 0",
> + [BROM_BOOTSOURCE_FSPI_M1] = "/spi at fe2b0000/flash at 0",
> + [BROM_BOOTSOURCE_FSPI_M2] = "/spi at fe2b0000/flash at 0",
> [BROM_BOOTSOURCE_SD] = "/mmc at fe2c0000",
> - [BROM_BOOTSOURCE_SPINOR_RK3588] = "/spi at fe2b0000/flash at 0",
> };
>
> static struct mm_region rk3588_mem_map[] = {
More information about the U-Boot
mailing list