ARM: imx: Decode ECSPI env location from i.MX8M ROMAPI tables

Decode ECSPI boot device in env_get_location() from i.MX8M ROMAPI tables.
This is necessary to correctly identify env is in SPI NOR when the system
boots from SPI NOR attached to ECSPI.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Fabio Estevam <festevam@denx.de>
This commit is contained in:
Marek Vasut 2022-03-25 18:59:28 +01:00 committed by Stefano Babic
parent 7990277a7b
commit e26d0152d6
2 changed files with 5 additions and 0 deletions

View file

@ -159,6 +159,7 @@ enum boot_dev_type_e {
BT_DEV_TYPE_MMC = 2, BT_DEV_TYPE_MMC = 2,
BT_DEV_TYPE_NAND = 3, BT_DEV_TYPE_NAND = 3,
BT_DEV_TYPE_FLEXSPINOR = 4, BT_DEV_TYPE_FLEXSPINOR = 4,
BT_DEV_TYPE_SPI_NOR = 6,
BT_DEV_TYPE_USB = 0xE, BT_DEV_TYPE_USB = 0xE,
BT_DEV_TYPE_MEM_DEV = 0xF, BT_DEV_TYPE_MEM_DEV = 0xF,

View file

@ -600,6 +600,9 @@ enum boot_device get_boot_device(void)
case BT_DEV_TYPE_FLEXSPINOR: case BT_DEV_TYPE_FLEXSPINOR:
boot_dev = QSPI_BOOT; boot_dev = QSPI_BOOT;
break; break;
case BT_DEV_TYPE_SPI_NOR:
boot_dev = SPI_NOR_BOOT;
break;
case BT_DEV_TYPE_USB: case BT_DEV_TYPE_USB:
boot_dev = USB_BOOT; boot_dev = USB_BOOT;
break; break;
@ -1346,6 +1349,7 @@ enum env_location env_get_location(enum env_operation op, int prio)
switch (dev) { switch (dev) {
case QSPI_BOOT: case QSPI_BOOT:
case SPI_NOR_BOOT:
if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH)) if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
return ENVL_SPI_FLASH; return ENVL_SPI_FLASH;
return ENVL_NOWHERE; return ENVL_NOWHERE;