Skip to content
Permalink
Browse files

dts: stm32wb: Limit flash size to 812K

stm32wb55rg is a dual core SoC (M4/M0) with a radio/protocol stack
running on M0 core. M0 FW starts at flash address 0x80CB000.
So flash size available to zephyr is 812K instead of 1M.
Configure package size to reflect this (flash size is now 812K)
and update MPU setting to exclude M0 FW. From MPU point of view,
we set flash size to 512K since we should chose a size being a power
of 2.
If we consider there will be 2 images partitions in a FOTA scheme,
512 K is beyond image-0 and hence is sufficient to cover application
image.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
  • Loading branch information...
erwango authored and nashif committed Mar 7, 2019
1 parent d777413 commit 79edb8b632b001cd585e7d517b82bcc65545d170
Showing with 12 additions and 1 deletion.
  1. +1 −1 dts/arm/st/wb/stm32wb55Xg.dtsi
  2. +11 −0 soc/arm/st_stm32/common/arm_mpu_mem_cfg.h
@@ -14,7 +14,7 @@
soc {
flash-controller@58004000 {
flash0: flash@8000000 {
reg = <0x08000000 DT_SIZE_K(1024)>;
reg = <0x08000000 DT_SIZE_K(812)>;
};
};
};
@@ -10,6 +10,7 @@
#include <arch/arm/cortex_m/mpu/arm_mpu.h>

/* Flash Region Definitions */
#if !defined(CONFIG_SOC_SERIES_STM32WBX)
#if CONFIG_FLASH_SIZE == 64
#define REGION_FLASH_SIZE REGION_64K
#elif CONFIG_FLASH_SIZE == 128
@@ -27,6 +28,16 @@
#else
#error "Unsupported configuration"
#endif
#else /* CONFIG_SOC_SERIES_STM32WBX */
/* For STM32WBX SoCs, last 212K are resevred for M0 fw */
/* and should not be covered by zephyr MPU. */
/* So map only the first 512K, which is beyond partition 'image-0' */
#if CONFIG_FLASH_SIZE == 812
#define REGION_FLASH_SIZE REGION_1M
#else
#error "Unsupported configuration"
#endif
#endif /* CONFIG_SOC_SERIES_STM32WBX */

/* SRAM Region Definitions */
#if CONFIG_SRAM_SIZE == 12

0 comments on commit 79edb8b

Please sign in to comment.
You can’t perform that action at this time.