Skip to content

Commit 0adf7c0

Browse files
committed
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]>
1 parent c8470fb commit 0adf7c0

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

boot/zephyr/flash_map_extended.c

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,23 @@
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 FLASH_DEVICE_NODE DT_INST(0, st_stm32_xspi_nor)
28+
#define FLASH_DEVICE_BASE DT_REG_ADDR(DT_INST(0, st_stm32_xspi_nor))
29+
#elif DT_NODE_HAS_STATUS(DT_INST(0, st_stm32_ospi_nor), okay)
30+
#define FLASH_DEVICE_NODE DT_INST(0, st_stm32_ospi_nor)
31+
#define FLASH_DEVICE_BASE DT_REG_ADDR(DT_INST(0, st_stm32_ospi_nor))
32+
#elif DT_NODE_HAS_STATUS(DT_INST(0, st_stm32_qspi_nor), okay)
33+
#define FLASH_DEVICE_NODE DT_INST(0, st_stm32_qspi_nor)
34+
#define FLASH_DEVICE_BASE DT_REG_ADDR(DT_INST(0, st_stm32_qspi_nor))
35+
#else
36+
#error "FLASH_DEVICE_NODE could not be determined"
37+
#endif
38+
39+
#elif (!defined(CONFIG_XTENSA) && DT_HAS_CHOSEN(zephyr_flash_controller))
2440
#define FLASH_DEVICE_ID SOC_FLASH_0_ID
2541
#define FLASH_DEVICE_BASE CONFIG_FLASH_BASE_ADDRESS
2642
#define FLASH_DEVICE_NODE DT_CHOSEN(zephyr_flash_controller)

0 commit comments

Comments
 (0)