Hi On 3/18/20 9:22 AM, Patrick Delaunay wrote: > Manage BOOT_FLASH_SPINAND, with boot_device="spi-nand" > and treat this value in bootcmd_stm32mp. > > Signed-off-by: Patrick Delaunay <patrick.delau...@st.com> > --- > > arch/arm/mach-stm32mp/cpu.c | 4 ++++ > arch/arm/mach-stm32mp/include/mach/stm32.h | 3 +++ > arch/arm/mach-stm32mp/spl.c | 2 ++ > board/st/stm32mp1/stm32mp1.c | 2 ++ > include/configs/stm32mp1.h | 5 +++-- > 5 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-stm32mp/cpu.c b/arch/arm/mach-stm32mp/cpu.c > index 9aa5794334..e14e3e47f2 100644 > --- a/arch/arm/mach-stm32mp/cpu.c > +++ b/arch/arm/mach-stm32mp/cpu.c > @@ -435,6 +435,10 @@ static void setup_boot_mode(void) > env_set("boot_device", "nand"); > env_set("boot_instance", "0"); > break; > + case BOOT_FLASH_SPINAND: > + env_set("boot_device", "spi-nand"); > + env_set("boot_instance", "0"); > + break; > case BOOT_FLASH_NOR: > env_set("boot_device", "nor"); > env_set("boot_instance", "0"); > diff --git a/arch/arm/mach-stm32mp/include/mach/stm32.h > b/arch/arm/mach-stm32mp/include/mach/stm32.h > index 6daf9f7121..a9bd5bdc1b 100644 > --- a/arch/arm/mach-stm32mp/include/mach/stm32.h > +++ b/arch/arm/mach-stm32mp/include/mach/stm32.h > @@ -79,6 +79,9 @@ enum boot_device { > > BOOT_SERIAL_USB = 0x60, > BOOT_SERIAL_USB_OTG = 0x62, > + > + BOOT_FLASH_SPINAND = 0x70, > + BOOT_FLASH_SPINAND_1 = 0x71, > }; > > /* TAMP registers */ > diff --git a/arch/arm/mach-stm32mp/spl.c b/arch/arm/mach-stm32mp/spl.c > index ca4231cd0d..9cd7b418a4 100644 > --- a/arch/arm/mach-stm32mp/spl.c > +++ b/arch/arm/mach-stm32mp/spl.c > @@ -39,6 +39,8 @@ u32 spl_boot_device(void) > return BOOT_DEVICE_NAND; > case BOOT_FLASH_NOR_QSPI: > return BOOT_DEVICE_SPI; > + case BOOT_FLASH_SPINAND_1: > + return BOOT_DEVICE_NONE; /* SPINAND not supported in SPL */ > } > > return BOOT_DEVICE_MMC1; > diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c > index 14c56a0f24..423be23555 100644 > --- a/board/st/stm32mp1/stm32mp1.c > +++ b/board/st/stm32mp1/stm32mp1.c > @@ -789,6 +789,7 @@ enum env_location env_get_location(enum env_operation op, > int prio) > #endif > #ifdef CONFIG_ENV_IS_IN_UBI > case BOOT_FLASH_NAND: > + case BOOT_FLASH_SPINAND: > return ENVL_UBI; > #endif > #ifdef CONFIG_ENV_IS_IN_SPI_FLASH > @@ -829,6 +830,7 @@ int ft_board_setup(void *blob, bd_t *bd) > #ifdef CONFIG_FDT_FIXUP_PARTITIONS > struct node_info nodes[] = { > { "st,stm32f469-qspi", MTD_DEV_TYPE_NOR, }, > + { "st,stm32f469-qspi", MTD_DEV_TYPE_SPINAND}, > { "st,stm32mp15-fmc2", MTD_DEV_TYPE_NAND, }, > }; > fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); > diff --git a/include/configs/stm32mp1.h b/include/configs/stm32mp1.h > index c5b09f1a2a..c34a720e0c 100644 > --- a/include/configs/stm32mp1.h > +++ b/include/configs/stm32mp1.h > @@ -127,7 +127,7 @@ > * bootcmd for stm32mp1: > * for serial/usb: execute the stm32prog command > * for mmc boot (eMMC, SD card), boot only on the same device > - * for nand boot, boot with on ubifs partition on nand > + * for nand or spi-nand boot, boot with on ubifs partition on UBI partition > * for nor boot, use the default order > */ > #define STM32MP_BOOTCMD "bootcmd_stm32mp=" \ > @@ -138,7 +138,8 @@ > "run env_check;" \ > "if test ${boot_device} = mmc;" \ > "then env set boot_targets \"mmc${boot_instance}\"; fi;" \ > - "if test ${boot_device} = nand;" \ > + "if test ${boot_device} = nand ||" \ > + " test ${boot_device} = spi-nand ;" \ > "then env set boot_targets ubifs0; fi;" \ > "run distro_bootcmd;" \ > "fi;\0"
Reviewed-by: Patrice Chotard <patrice.chot...@st.com> Patrice