This article gives details about updating the bootloader objects of NAND memory, located onto STM32MP157x-EV1 (e.g.), using STM32CubeIDE.
1. Overview[edit source]
- NAND is first initialized with Starter Package image thanks to STM32CubeProgrammer.
- The trusted image is built inside STM32CubeIDE with device tree configured using embedded STM32CubeMX.
- Next step is to update STM32MP15 board; this means the STM32MP15 board is up and running with network access: target status is green.
- The way to check this customization is to compare version appearing in boot message.
2. Initial configuration[edit source]
- NAND initial setting: TF-A BL2 version
- NAND initial setting: U-boot version & extlinux.conf
- NAND initial setting: extlinux.conf content
3. Update[edit source]
First, after compiling device tree from STM32CubeMX we need to update MP15 target bootfs with new .dtb under /boot and adjust /boot/mmc0_extlinux/stm32mp157c-ev1_extlinux.conf. This is done thanks to Cortex-A Linux® Deployment shortcut configuration available from Linux® project Run As... .
- Linux® deployment configuration
- NAND Linux® deployment message
- NAND Linux® device tree update
Then, select Cortex-A project and right click to get Cortex-A Bootloader Deployment shortcut.
Connection is automatically set and you need to scan STM32MP15 target storage. This storage list depends on the board and on the used boot storage .
Then, select
- the storage to update, NAND #0 here;
- TF-A BL2 & FIP image to update from FIP_artifacts/ .
- NAND Bootloader deployment configuration
- NAND Bootloader deployment message
4. Final configuration[edit source]
After the update, TF-A BL2 and U-Boot versions are modified and Linux® uses the generated device tree.
- NAND updated TF-A BL2 version
- NAND updated U-Boot version & Linux® device tree