[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