This article briefly describes the STM32MP15x lines support in U-Boot.
1. STM32MP15x lines support[edit source]
For detailed information, please read the file in the delivered U-Boot code = doc/board/st/stm32mp1.rst or the stm32mp1 documentation generated by make htlmdocs
[1].
Also available in official U-Boot Git.
Code :
- arch/arm/mach-stm32mp : arch specific code for STM32 Arm® Cortex® MPUs
- board/st/common : STMicroelectronics common code
- board/st/stm32mp1 : generic STMicroelectronics board for STM32MP1 Series
- drivers/*/*stm32* : drivers
Configuration Files:
- defconfig file
- config files
- STM32MP15_device_tree in arch/arm/dts : stm32mp15*.dts*
- <Device tree>.dts : same as kernel
- <Device tree>-u-boot.dtsi : addition for u-boot automatically included in build process
2. Selecting targets : choose defconfig and Device Tree[edit source]
The STM32 MPU boot chain is supported by one U-Boot configuration with defconfig = stm32mp15_trusted_defconfig
Several boards are supported with the associated device-tree (same name as kernel):
Board part number | Device tree | Description |
---|---|---|
STM32MP157A-EV1 Evaluation board | stm32mp157a-ev1 | MB1262+MB1263 |
STM32MP157C-EV1 Evaluation board | stm32mp157c-ev1 | |
STM32MP157D-EV1 Evaluation board | stm32mp157d-ev1 | |
STM32MP157F-EV1 Evaluation board | stm32mp157f-ev1 | |
STM32MP157A-DK1 Discovery kit | stm32mp157a-dk1 | MB1272 |
STM32MP157D-DK1 Discovery kit | stm32mp157d-dk1 | |
STM32MP157C-DK2 Discovery kit | stm32mp157c-dk2 | MB1272+MB1407 |
STM32MP157F-DK2 Discovery kit | stm32mp157f-dk2 |
For information the 'Evaluation' daughter-board only (MB1263 without MB1262) is also supported by stm32mp15*-ed1.dts device tree files.
3. Compilation[edit source]
see U-Boot_overview#U-Boot_build
With the defconfig file: stm32mp15_trusted_defconfig
make stm32mp15_trusted_defconfig make DEVICE_TREE=<Device tree> all
The supported variables are:
- DEVICE_TREE: select in arch/arm/dts the device tree that is used
- KBUILD_OUTPUT: change the destination directory for the build
- EXT_DTB: select external device tree
The ouput file is u-boot.stm32.
4. SPL compilation[edit source]
The alternate boot chain with SPL is also supported by "stm32mp15_basic_defconfig" but only for U-Boot_SPL:_DDR_interactive_mode
The resulting U-Boot files are located in your build directory:
- u-boot-spl.stm32 : FSBL = SPL binary with STM32 image header, loaded by ROM code
- u-boot.img : SSBL = U-Boot binary with U-Boot image header (uImage), loaded by SPL
5. Examples[edit source]
5.1. STM32MP157F-EV1 Evaluation board [edit source]
make stm32mp15_trusted_defconfig make DEVICE_TREE=stm32mp157f-ev1 all
5.2. STM32MP157C-EV1 Evaluation board [edit source]
make stm32mp15_trusted_defconfig make DEVICE_TREE=stm32mp157c-ev1 all
5.3. STM32MP157D-DK1 Discovery kit [edit source]
make stm32mp15_trusted_defconfig make DEVICE_TREE=stm32mp157d-dk1 all
5.4. STM32MP157C-DK2 Discovery kit [edit source]
Using export to select the device tree
export KBUILD_OUTPUT=../build/stm32mp15_trusted export DEVICE_TREE=stm32mp157c-dk2 make stm32mp15_trusted_defconfig make all
5.5. Custom board with external device tree[edit source]
make stm32mp15_trusted_defconfig make EXT_DTB=stm32mp151a-myboard.dtb all
5.6. SPL for STM32MP157F-EV1 Evaluation board [edit source]
make stm32mp15_basic_defconfig
make DEVICE_TREE=stm32mp157f-ev1 all