Skip to content

Commit fca80b4

Browse files
FRASTMde-nordic
authored andcommitted
boot: zephyr: defines FLASH device for external NOR
With CONFIG_STM32_MEMMAP flag get NOR flash 32 bytes header Read the NOR flash to get header of the image. The FLASH_DEVICE is now the external NOR defined by the board device tree to be the first qspi/ospi/xspi instance (not necessarily zephyr, flash-controller) Signed-off-by: Francois Ramu <[email protected]> Signed-off-by: Erwan Gouriou <[email protected]>
1 parent 78d94cf commit fca80b4

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

boot/zephyr/flash_map_extended.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,24 @@
2020

2121
BOOT_LOG_MODULE_DECLARE(mcuboot);
2222

23-
#if (!defined(CONFIG_XTENSA) && DT_HAS_CHOSEN(zephyr_flash_controller))
23+
#if defined(CONFIG_STM32_MEMMAP)
24+
/* MEMORY MAPPED for XiP on external NOR flash takes the sspi-nor or ospi-nor or qspi-nor device */
25+
#define FLASH_DEVICE_ID SPI_FLASH_0_ID
26+
#if DT_NODE_HAS_STATUS(DT_INST(0, st_stm32_xspi_nor), okay)
27+
#define DT_DRV_COMPAT st_stm32_xspi_nor
28+
#define FLASH_DEVICE_NODE DT_INST(0, st_stm32_xspi_nor)
29+
#define FLASH_DEVICE_BASE DT_REG_ADDR_BY_IDX(DT_INST_PARENT(0), 1)
30+
#elif DT_NODE_HAS_STATUS(DT_INST(0, st_stm32_ospi_nor), okay)
31+
#define FLASH_DEVICE_NODE DT_INST(0, st_stm32_ospi_nor)
32+
#define FLASH_DEVICE_BASE DT_REG_ADDR(DT_INST(0, st_stm32_ospi_nor))
33+
#elif DT_NODE_HAS_STATUS(DT_INST(0, st_stm32_qspi_nor), okay)
34+
#define FLASH_DEVICE_NODE DT_INST(0, st_stm32_qspi_nor)
35+
#define FLASH_DEVICE_BASE DT_REG_ADDR(DT_INST(0, st_stm32_qspi_nor))
36+
#else
37+
#error "FLASH_DEVICE_NODE could not be determined"
38+
#endif
39+
40+
#elif (!defined(CONFIG_XTENSA) && DT_HAS_CHOSEN(zephyr_flash_controller))
2441
#define FLASH_DEVICE_ID SOC_FLASH_0_ID
2542
#define FLASH_DEVICE_BASE CONFIG_FLASH_BASE_ADDRESS
2643
#define FLASH_DEVICE_NODE DT_CHOSEN(zephyr_flash_controller)

0 commit comments

Comments
 (0)