-
Notifications
You must be signed in to change notification settings - Fork 8.2k
stm32h5 run application in external flash memory XIP #88579
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
west build -b stm32h573i_dk samples/application_development/code_relocation_nocopy/ |
|
with a special sample dedicated to st boards for XiP requires mcu-tools/mcuboot#2154
|
0eed22a to
0a25f40
Compare
|
Define larger partition in the external NOR flash (consequently adjusting the SECTOR size for the mcu boot) |
c3998c8 to
d0126b3
Compare
|
CI failure "invalid length for memory region EXTFLASH" given by the samples/application_development/code_relocation_nocopy/linker_arm_nocopy.ld map giving : EXTFLASH 0x0000000090000000 0xffffffffffffffff xr Build operation displays wrong extflash too: compared to when It looks like the DT_INST_REG_SIZE does not exist for the st,stm32-xspi-nor compat (DT_INST_REG_ADDR exists) --> see issue #88404 |
|
See #88392 for a fix. |
9bb0775 to
9d2579a
Compare
16878f8 to
048cb76
Compare
|
set the DNM mabel until the #88646 is merged |
5d3b191 to
b496f43
Compare
|
Adding the commit to retrieve the CONFIG_FLASH_BASE_ADDRESS from the DTS by the soc/st/stm32/Kconfig.defconfig |
0103ad5 to
4b2bea0
Compare
|
set the DNM mabel until the #88051 is merged |
3a614c3 to
80ed1b1
Compare
|
with the samples/subsys/mgmt/hawkbit/boards/stm32h573i_dk.overlay included |
done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non-blocking comments:
- Nitpicking in commit message for commit "drivers: clock: stm32H5 clock control of the PLL in MemoryMapped mode".
-Do not disable the pll clock if it source the xspi and if the external
+Do not disable the PLL clock if it sources the XSIP and if the external
flash is executing in Place. After mcuboot reset, the code is executed
on the external flash, through the xspi.
-The CONFIG_STM32_APP_IN_EXT_FLASH tis set and will avoid re-config
+The CONFIG_STM32_APP_IN_EXT_FLASH is set and will avoid re-config
-of the pll which is sourcing the xspi peripheral. When excuting in Place
+of the PLL which is sourcing the XSPI peripheral. When executing in Place
-on this external NOR It must not disable its own clock source (PLL).
+on this external NOR, it must not disable its own clock source (PLL).Or simplify:
Do not disable the PLL clock if it sources the XSIP and if the external
flash is executing in Place. CONFIG_STM32_APP_IN_EXT_FLASH
provides this information.
- In commit "drivers: flash: stm32 xspi flash driver skip init when executing in place",
the below sentence in the commit message is no more true since the previous commit implements that API function:
... (stm32h5 has no clock_control_get_status API)
-
For commit "Revert "samples: mgmt: hawkbit: force BOOT_MAX_IMG_SECTORS for stm32h573i_dk""
This commit does more than reverting a commit. IMHO the commit message header line should not be "Revert "samples: mgmt: ...". -
Nitpicking on some commit message body: some terminal dots
.are missing at end of sentences, see commits
"drivers: flash: stm32 xspi flash driver skip init when executing in place",
"boards: arm: stm32h573 disco kit move partition to ext flash" and
"samples: sysbuild: with mcu_boot on the stm32h573i_dk".
Do not disable the PLL clock if it sources the XSPI and if the external flash is executing in Place. After mcuboot reset, the code is executed on the external flash, through the xspi. The CONFIG_STM32_APP_IN_EXT_FLASH is set and will avoid re-config of the PLL which is sourcing the XSPI peripheral. When eXecuting in Place on this external NOR, it must not disable its own clock source (PLL). Signed-off-by: Francois Ramu <[email protected]>
Add the control_get_status API function to the stm32h5 clock_control driver Signed-off-by: Francois Ramu <[email protected]>
…lace The flash_stm32_xspi driver should not initialize the xspi, if this one is being use to execute in Place : the init is skipped. This mode is identified with the CONFIG_STM32_APP_IN_EXT_FLASH. Checking the memory mapped mode bit is possible when the xspi peripheral clock is not off (stm32h5 has no clock_control_get_status API) Signed-off-by: Francois Ramu <[email protected]>
Add the XSPI 2 which is an octoSPI connection to a octo NOR flash mx25lm51245 on the stm32h573i_dk disco kit. Define the partition on the 64MBytes space of the external flash. Use the STM32Cube programmer to flash with the corresponding external loader for XiP mode. Removing usb_device will avoid test feature for that board. Signed-off-by: Francois Ramu <[email protected]>
Run the sample to execute in place on the external flash of the stm32h573 disco kit. with_boot is build and linked for the external flash. Download the mcuboot zephyr.bin in internal memory. Download the with_mcuboot zephyr.signed.bin in external memory. Signed-off-by: Francois Ramu <[email protected]>
Reverts commit 5700ffe. Not required anymore as the CONFIG_BOOT_MAX_IMG_SECTORS is fixed by the mcuboot at 4096. Add the corresponding overlay file. Signed-off-by: Francois Ramu <[email protected]>
|
changes in some commit msg as recommended by @etienne-lms |
|
| bool | ||
| help | ||
| Allows the SoC clock driver to correctly initialize the | ||
| Q/O/XSPI controller clocks when the application is residing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So far, it only deals with XSPI. Q/O SPI will have to be updated to take it into account.



the stm32h5 disco kit board can run an application in external flash
Requires the #88646 which removes the warning in the DTC
With this PR it enable the memorymapped mode on the external flash memory so that XIP is possible on the external NOR octoflash
Two samples are running in XIP on the external flash
samples/application_development/code_relocation_nocopy/
samples/boards/st/hello_world_xip/ built with mcu boot mcu-tools/mcuboot#2323
Fixes #87531
This PR completes the #88051 for the stm32h5 serie