Skip to content

stm32 ospi driver : run application in external flash memory XIP #93032

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

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

FRASTM
Copy link
Contributor

@FRASTM FRASTM commented Jul 11, 2025

Following the stm32h5 run application in external flash memory XIP

This PR makes the samples/sysbuild/with_mcuboot --sysbuild running on a variant of the stm32u585 disco kit.

Requires the ./bootloader/mcuboot/bootzephyr/boards/b_u585i_iot02a_stm32u585xx_ext_flash_app.conf :

CONFIG_BOOT_DIRECT_XIP=y
CONFIG_STM32_MEMMAP=y

run the west build -p -b b_u585i_iot02a samples/sysbuild/with_mcuboot --sysbuild

*** Booting MCUboot v2.1.0-rc1-390-gfbc9aff5acc1 ***
*** Using Zephyr OS build v4.2.0-rc2-72-g8c58be376223 ***
*** Booting Zephyr OS build v4.2.0-rc2-72-g8c58be376223 ***
Address of sample 0x70000000
Hello sysbuild with mcuboot! b_u585i_iot02a

Requires boot/zephyr/boards/b_u585i_iot02a.conf

CONFIG_BOOT_DIRECT_XIP=y
CONFIG_STM32_MEMMAP=y

@FRASTM FRASTM force-pushed the stm32u5_xip branch 2 times, most recently from d02c1a8 to f4991ef Compare July 15, 2025 09:50
@JarmouniA
Copy link
Contributor

Requires boot/zephyr/boards/b_u585i_iot02a.conf

CONFIG_BOOT_DIRECT_XIP=y
CONFIG_STM32_MEMMAP=y

MCUboot mode should not be set on MCUboot side in my opinion, it should be set on Zephyr side using Sysbuild (SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP) at the board or app level so that the setting is propagated properly to both MCUboot and App builds.
Furthermore, this approach is creating some problems already, see #93113

@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 15, 2025

Define the partition of the external octo NOR in the b_u858i_iot02a.dts to avoid conflict with the partitioning of the b_u858i_iot02a_ns.dts.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For boards that have enough space/sectors in internal Flash to be used without MemMapped external Flash (with or without MCUboot), I think it makes more sense to create a board variant for the App in Ext Flash usecase.
This way, both configurations can be tested in CI without need for extra overlays..., and users will have ready-to-use configurations to choose from depending on their requirements. This will make the conf on MCUboot side simpler as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

creating a board variant : b_u585i_iot02a/stm32u585xx/xip

Copy link
Contributor

@JarmouniA JarmouniA Jul 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/ext_flash_app is a more accurate name in my opinion

@FRASTM FRASTM changed the title stm32u5 run application in external flash memory XIP stm32 ospi driver : run application in external flash memory XIP Jul 15, 2025
@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 16, 2025

fixing compliance issues

@FRASTM FRASTM force-pushed the stm32u5_xip branch 2 times, most recently from 4028e70 to a08697f Compare July 17, 2025 12:42
@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 17, 2025

Creating a variant (only) for the b_u585i_iot02a disco kit : b_u585i_iot02a/stm32u585xx/xip
Requires the mcuboot to define the corresponding conf file: ../bootloader/mcuboot/boot/zephyr/boards/b_u585i_iot02a_stm32u585xx_xip.conf

*** Booting MCUboot v2.1.0-rc1-390-gfbc9aff5acc1 ***
*** Using Zephyr OS build v4.2.0-rc3-36-ga08697fb1810 ***
*** Booting Zephyr OS build v4.2.0-rc3-38-g84c417194c74 ***
Address of sample 0x70000000
Hello sysbuild with mcuboot! b_u585i_iot02a

@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 21, 2025

rebase on 87917a1

@FRASTM FRASTM force-pushed the stm32u5_xip branch 2 times, most recently from 84e4be6 to 30f5ca9 Compare July 22, 2025 11:38
@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 22, 2025

changing the name of the variant to "ext_flash_app"

@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 22, 2025

rebase

Requires boot/zephyr/boards/b_u585i_iot02a.conf

CONFIG_BOOT_DIRECT_XIP=y
CONFIG_STM32_MEMMAP=y

MCUboot mode should not be set on MCUboot side in my opinion, it should be set on Zephyr side using Sysbuild (SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP) at the board or app level so that the setting is propagated properly to both MCUboot and App builds. Furthermore, this approach is creating some problems already, see #93113

Do you mean that .conf file in the mcuboot do not need to set

CONFIG_BOOT_DIRECT_XIP=y

@JarmouniA
Copy link
Contributor

JarmouniA commented Jul 23, 2025

MCUboot mode should not be set on MCUboot side in my opinion, it should be set on Zephyr side using Sysbuild (SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP) at the board or app level so that the setting is propagated properly to both MCUboot and App builds. Furthermore, this approach is creating some problems already, see #93113

Do you mean that .conf file in the mcuboot do not need to set

CONFIG_BOOT_DIRECT_XIP=y

Yes, it doesn't.

SB_CONFIG_MCUBOOT_MODE_OVERWRITE_ONLY=y

default MCUBOOT_MODE_OVERWRITE_ONLY if SOC_FAMILY_ESPRESSIF_ESP32

default MCUBOOT_MODE_OVERWRITE_ONLY

@FRASTM
Copy link
Contributor Author

FRASTM commented Jul 23, 2025

Rebase on 47b07e5
Add the link to mcuboot : mcu-tools/mcuboot#2399

@FRASTM FRASTM added platform: STM32 ST Micro STM32 DNM This PR should not be merged (Do Not Merge) labels Jul 23, 2025
FRASTM added 3 commits July 28, 2025 13:16
Create a new variant to execute in place on the external octoSPI
flash NOR of the b_u585i_iot02a disco kit

Signed-off-by: Francois Ramu <[email protected]>
Run the sample to execute in place on the external flash of the
b_u585i_iot02a variant 'ext_flash_app' disco kit,
with_boot application is built and linked for the external flash

Signed-off-by: Francois Ramu <[email protected]>
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DNM This PR should not be merged (Do Not Merge) platform: STM32 ST Micro STM32
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants