Difference between revisions of "STM32MP15 U-Boot"
[quality revision] | [quality revision] |
m
|
m (Reverted edits by Patrick Delaunay (talk) to last revision by Jean-Christophe Trotin)
(Tag: Rollback)
|
This article briefly describes the STM32MP15x lines support in U-Boot.
Contents
- 1 STM32MP15x lines support
- 2 Selecting targets : choose defconfig and Device Tree
- 3 Compilation
- 4 SPL compilation
-
5 Examples
- STM32MP157C
- trusted boot
- 4
- DK2 Discovery kit trusted boot
- 4.3 STM32MP157C-ED1 Evaluation daughterboard basic boot 4.4 Trusted boot chain
1 STM32MP15x lines
support[edit]
For detailed information, please read the file in the delivered U-Boot code = doc/board/st/stm32mp1/README .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
-
Device STM32MP15_device_tree in arch/arm/dts stm32mp157*-<board>. : stm32mp15*.dts*
- <Device tree>.dts : same as kernel
- stm32mp157*<Device tree>-<board>-u-boot.dtsi : addition for u-boot ( <<device tree>>-u-boot.dtsi automatically included in build process)
2 Selecting targets : choose defconfig and Device Tree[edit]
Each The STM32 MPU boot chain is supported by one U-Boot configuration with defconfig
= stm32mp15_trusted_defconfig
u-boot.stm32
u-boot.stm32
u-boot-spl.stm32
u-boot.img
![]() |
The basic boot chain is not supported/promoted by STMicroelectronics to make product (see Boot chains overview for details). |
Several targets/ boards are supported with the associated device-tree (same name as kernel):
Board part number | Description | Device tree | STM32MP157CDescription |
---|---|---|---|
STM32MP157A-EV1 Evaluation board ![]() |
stm32mp157a-ev1 | MB1262+MB1263 | |
STM32MP157C-EV1 Evaluation board ![]() |
stm32mp157c-ev1 | ||
STM32MP157C-ED1 Evaluation daughterboard | MB1263 | stm32mp157c-ed1 | |
STM32MP157D-EV1 Evaluation board ![]() |
stm32mp157d-ev1 | ||
STM32MP157F-EV1 Evaluation board ![]() |
stm32mp157f-ev1 | ||
STM32MP157A-DK1 Discovery kit ![]() |
stm32mp157a-dk1 | MB1272 | |
stm32mp157a-STM32MP157D-DK1 Discovery kit ![]() |
stm32mp157d-dk1 | ||
STM32MP157C-DK2 Discovery kit ![]() |
stm32mp157c-dk2 | MB1272+MB1407 | stm32mp157c-dk2 |
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]
see U-Boot_overview#U-Boot_build
With <mode> = 'basic', 'trusted' or 'optee' the defconfig file: stm32mp15_trusted_defconfig
make stm32mp15_<mode>trusted_defconfig make DEVICE_TREE=<device<Device treetree> name> 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]
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
![]() |
This alternate boot chain with SPL is not supported/promoted by STMicroelectronics to make product. |
5 Examples[edit]
45.1 STM32MP157C STM32MP157F-EV1 Evaluation board
trusted boot[edit]
make stm32mp15_trusted_defconfig make DEVICE_TREE=stm32mp157cstm32mp157f-ev1 all
45.2 STM32MP157C-DK2 Discovery kit EV1 Evaluation board
trusted boot[edit]
Using export to select the device tree
exportmake KBUILD_OUTPUT=../build/trustedstm32mp15_trusted_defconfig exportmake DEVICE_TREE=stm32mp157c-dk2ev1 all
5.3 STM32MP157D-DK1 Discovery kit
[edit]
make stm32mp15_trusted_defconfig make DEVICE_TREE=stm32mp157d-dk1 all
5.4.3 STM32MP157C-ED1 Evaluation daughterboard basic bootDK2 Discovery kit
[edit]
Using export to select the device tree
export KBUILD_OUTPUT=../build/basicstm32mp15_trusted export DEVICE_TREE=stm32mp157c-dk2 make stm32mp15_basictrusted_defconfig make DEVICE_TREE=stm32mp157c-ed1 all
4.4 Trusted boot chain 5.5 Custom board with external device tree[edit]
make stm32mp15_trusted_defconfig make EXT_DTB=boot/stm32mp157cstm32mp151a-myboard.dtb all
5.6 SPL for STM32MP157F-EV1 Evaluation board
[edit]
make stm32mp15_basic_defconfig make DEVICE_TREE=stm32mp157f-ev1 all
This article briefly describes the {{MicroprocessorDevice | device=15}} support in [[U-Boot_overview|U-Boot]]. == {{MicroprocessorDevice | device=15}} support == For detailed information, please read the file in the delivered U-Boot code = {{CodeSource | U-Boot | doc/board/st/stm32mp1/README}} .rst}} or the stm32mp1 documentation generated by <code>make htlmdocs</code><ref>https://u-boot.readthedocs.io/en/stable/board/st/stm32mp1.html</ref>. Also available in official U-Boot Git. Code : * {{CodeSource | U-Boot | arch/arm/mach-stm32mp}}: arch specific code for {{MicroprocessorDevice | device=Class}} * {{CodeSource | U-Boot | board/st/common}}: STMicroelectronics common code * {{CodeSource | U-Boot | board/st/stm32mp1}}: generic STMicroelectronics board for {{MicroprocessorDevice | device=1}} * drivers/*/*stm32* : drivers Configuration Files: * defconfig file ** {{CodeSource | U-Boot | configs/stm32mp15_basic_defconfig}} ** {{CodeSource | U-Boot | configs/stm32mp15_optee_defconfig}} ** {{CodeSource | U-Boot | configs/stm32mp15_trusted_defconfig}} * config files ** {{CodeSource | U-Boot | include/configs/stm32mp1.h}} * Device tree[[STM32MP15_device_tree]] in {{CodeSource | U-Boot | arch/arm/dts }} ** stm32mp157*-<board>: stm32mp15*.dts* ** {{HighlightParam|<Device tree>}}.dts : same as kernel ** stm32mp157*-<board>-{{HighlightParam|<Device tree>}}-u-boot.dtsi : addition for u-boot ( <<device tree>>-u-boot.dtsi automatically included in build process) == Selecting targets : choose defconfig and Device Tree == EachThe [[Boot_chainschain_overview|STM32 MPU boot chain]] is supported by one [[U-Boot_overview#Kbuild|U-Boot configuration with defconfig]] {| class="st-table" |- ! Boot chain !! defconfig !! FSBL !! SSBL !! TEE support |- | [[Boot_chains_overview#STM32MP boot chains|''' Trusted Boot''']] || stm32mp15_trusted_defconfig || TF-A || '''U-Boot'''<br>[[U-Boot_overview#Output_files|u-boot.stm32]] || - |- | [[Boot_chains_overview#STM32MP boot chains|''' Trusted Boot''']] with [[OP-TEE_overview|'''OP-TEE''']] || stm32mp15_optee_defconfig || TF-A || '''U-Boot'''<br>[[U-Boot_overview#Output_files|u-boot.stm32]] || yes |- | [[Boot_chains_overview#STM32MP boot chains|'''Basic Boot''']] || stm32mp15_basic_defconfig || SPL<br>[[U-Boot_overview#Output_files|u-boot-spl.stm32]] || '''U-Boot'''<br>[[U-Boot_overview#Output_files|u-boot.img]] || - |} {{Warning | The basic boot chain is not supported/promoted by STMicroelectronics to make product (see [[Boot_chains_overview#Boot_chains_features_set|Boot chains overview]] for details).}} Several [[STM32MP15_boards|targets/ boards]] are supported with the associated device-tree (same name as kernel): {| class="st-table" |- ! Board part number !! Description !! Device tree |- | '''{{Board | type=157C-EV1}}''' || [[MB1262]]+[[MB1263]] || = {{HighlightParam|stm32mp15_trusted_defconfig}} Several [[STM32MP15_boards|boards]] are supported with the associated device-tree (same name as kernel): {| class="st-table" |- ! Board part number !! {{HighlightParam|Device tree}} !! Description |- | '''{{Board | type=157A-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157a-ev1.dts|stm32mp157a-ev1}} || rowspan="4" | [[MB1262]]+[[MB1263]] |- | '''{{Board | type=157C-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-ev1.dts|stm32mp157c-ev1}} |- | '''{{Board | type=157D-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157d-ev1.dts|stm32mp157d-ev1}} |- | '''{{Board | type=157F-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157cstm32mp157f-ev1.dts|'''stm32mp157cstm32mp157f-ev1'''}} |- | STM32MP157C-ED1 Evaluation daughterboard || [[MB1263]] || }} |- | '''{{Board | type=157A-DK1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-ed1stm32mp157a-dk1.dts|stm32mp157c-ed1}} |- | '''{{Board | type=157A-DK1}}''' || [[MB1272]] || stm32mp157a-dk1}} || rowspan="2" | [[MB1272]] |- | '''{{Board | type=157D-DK1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157astm32mp157d-dk1.dts|'''stm32mp157astm32mp157d-dk1'''}} |- | '''{{Board | type=157C-DK2}}''' || [[MB1272]]+[[MB1407]] || {{{{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-dk2.dts|stm32mp157c-dk2}} || rowspan="2" | [[MB1272]]+[[MB1407]] |- | '''{{Board | type=157F-DK2}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157cstm32mp157f-dk2.dts|'''stm32mp157cstm32mp157f-dk2'''}} |} }} |} For information the 'Evaluation' daughter-board only ([[MB1263]] without [[MB1262]]) is also supported by stm32mp15*-ed1.dts device tree files. == Compilation == see [[U-Boot_overview#U-Boot_build]] With <mode> = 'basic', 'trusted' or 'optee' {{PC$}} make stm32mp15_<mode>_defconfigthe defconfig file: {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make DEVICE_TREE=<device tree name> all *{{HighlightParam|<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 == Examples == === {{Board | type=157C-EV1}} trusted boot === {{PC$}} make stm32mp15_trusted_defconfigThe ouput file is {{Highlight|'''u-boot.stm32'''}}. == SPL compilation == 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 {{Warning | This alternate boot chain with SPL is not supported/promoted by STMicroelectronics to make product.}} == Examples == === {{Board | type=157F-EV1}} === {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157f-ev1}} all === {{Board | type=157C-EV1}} === {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157c-ev1}} all === {{Board | type=157C-DK2}} trusted boot ===157D-DK1}} === {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157d-dk1}} all === {{Board | type=157C-DK2}} ===Using export to select the device tree {{PC$}} export KBUILD_OUTPUT=../build/stm32mp15_trusted {{PC$}} export DEVICE_TREE={{HighlightParam|stm32mp157c-dk2}} {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make all === STM32MP157C-ED1 Evaluation daughterboard basic boot === {{PC$}} export KBUILD_OUTPUT=../build/basic {{PC$}} make stm32mp15_basic_defconfig {{PC$}} make DEVICE_TREE=stm32mp157c-ed1 all === Trusted boot chain with external device tree === {{PC$}} make stm32mp15_trusted_defconfig {{PC$}} make EXT_DTB=boot/stm32mp157c-myboard.dtbCustom board with external device tree === {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} {{PC$}} make EXT_DTB={{HighlightParam|stm32mp151a-myboard.dtb}} all === SPL for {{Board | type=157F-EV1}} === {{PC$}} make stm32mp15_basic_defconfig {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157f-ev1}} all <noinclude> [[Category:U-Boot]] {{PublicationRequestId | 12895 | 2019-08-01}}</noinclude>
(10 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
== {{MicroprocessorDevice | device=15}} support == |
== {{MicroprocessorDevice | device=15}} support == |
||
− | For detailed information, please read the file in the delivered U-Boot code = {{CodeSource | U-Boot | board/st/stm32mp1 |
+ | For detailed information, please read the file in the delivered U-Boot code = {{CodeSource | U-Boot | doc/board/st/stm32mp1.rst}} or the stm32mp1 documentation generated by <code>make htlmdocs</code><ref>https://u-boot.readthedocs.io/en/stable/board/st/stm32mp1.html</ref>.
|
Also available in official U-Boot Git. |
Also available in official U-Boot Git. |
||
Line 9: | Line 9: | ||
Code : |
Code : |
||
* {{CodeSource | U-Boot | arch/arm/mach-stm32mp}}: arch specific code for {{MicroprocessorDevice | device=Class}} |
* {{CodeSource | U-Boot | arch/arm/mach-stm32mp}}: arch specific code for {{MicroprocessorDevice | device=Class}} |
||
+ | * {{CodeSource | U-Boot | board/st/common}}: STMicroelectronics common code |
||
* {{CodeSource | U-Boot | board/st/stm32mp1}}: generic STMicroelectronics board for {{MicroprocessorDevice | device=1}} |
* {{CodeSource | U-Boot | board/st/stm32mp1}}: generic STMicroelectronics board for {{MicroprocessorDevice | device=1}} |
||
* drivers/*/*stm32* : drivers |
* drivers/*/*stm32* : drivers |
||
Line 15: | Line 16: | ||
* defconfig file |
* defconfig file |
||
** {{CodeSource | U-Boot | configs/stm32mp15_basic_defconfig}} |
** {{CodeSource | U-Boot | configs/stm32mp15_basic_defconfig}} |
||
− | |||
** {{CodeSource | U-Boot | configs/stm32mp15_trusted_defconfig}} |
** {{CodeSource | U-Boot | configs/stm32mp15_trusted_defconfig}} |
||
* config files |
* config files |
||
** {{CodeSource | U-Boot | include/configs/stm32mp1.h}} |
** {{CodeSource | U-Boot | include/configs/stm32mp1.h}} |
||
− | * |
+ | * [[STM32MP15_device_tree]] in {{CodeSource | U-Boot | arch/arm/dts }} : stm32mp15*.dts*
|
− | ** |
+ | ** {{HighlightParam|<Device tree>}}.dts : same as kernel |
− | ** |
+ | ** {{HighlightParam|<Device tree>}}-u-boot.dtsi : addition for u-boot automatically included in build process |
== Selecting targets : choose defconfig and Device Tree == |
== Selecting targets : choose defconfig and Device Tree == |
||
− | + |
The [[Boot_chain_overview|STM32 MPU boot chain]] is supported by one [[U-Boot_overview#Kbuild|U-Boot configuration with defconfig]] = {{HighlightParam|stm32mp15_trusted_defconfig}}
|
|
+ | |||
+ | Several [[STM32MP15_boards|boards]] are supported with the associated device-tree (same name as kernel): |
||
{| class="st-table" |
{| class="st-table" |
||
|- |
|- |
||
− | ! |
+ | ! Board part number !! {{HighlightParam|Device tree}} !! Description
|
|- |
|- |
||
− | + | | '''{{Board | type=157A-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157a-ev1.dts|stm32mp157a-ev1}} || rowspan="4" | [[MB1262]]+[[MB1263]] |
|
|- |
|- |
||
− | | |
+ | | '''{{Board | type=157C-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-ev1.dts|stm32mp157c-ev1}}
|
|- |
|- |
||
− | + | | '''{{Board | type=157D-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157d-ev1.dts|stm32mp157d-ev1}} |
|
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- |
|- |
||
− | + |
| '''{{Board | type=157F-EV1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157f-ev1.dts|stm32mp157f-ev1}}
|
|
|- |
|- |
||
− | | '''{{Board | type= |
+ | | '''{{Board | type=157A-DK1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157a-dk1.dts|stm32mp157a-dk1}} || rowspan="2" | [[MB1272]]
|
|- |
|- |
||
− | | |
+ | | '''{{Board | type=157D-DK1}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157d-dk1.dts|stm32mp157d-dk1}} |
|- |
|- |
||
− | | '''{{Board | type= |
+ | | '''{{Board | type=157C-DK2}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-dk2.dts|stm32mp157c-dk2}} || rowspan="2" | [[MB1272]]+[[MB1407]]
|
|- |
|- |
||
− | | '''{{Board | type= |
+ | | '''{{Board | type=157F-DK2}}''' || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157f-dk2.dts|stm32mp157f-dk2}} |
|} |
|} |
||
+ | |||
+ | For information the 'Evaluation' daughter-board only ([[MB1263]] without [[MB1262]]) is also supported by stm32mp15*-ed1.dts device tree files. |
||
== Compilation == |
== Compilation == |
||
see [[U-Boot_overview#U-Boot_build]] |
see [[U-Boot_overview#U-Boot_build]] |
||
− | With |
+ | With the defconfig file: {{HighlightParam|stm32mp15_trusted_defconfig}}
|
− | {{PC$}} make |
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}}
|
− | {{PC$}} make DEVICE_TREE=< |
+ | {{PC$}} make DEVICE_TREE={{HighlightParam|<Device tree>}} all |
− | *'''DEVICE_TREE''': select in arch/arm/dts the device tree that is used |
+ | 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 |
* '''KBUILD_OUTPUT''': change the destination directory for the build |
||
* '''EXT_DTB''': select external device tree |
* '''EXT_DTB''': select external device tree |
||
+ | |||
+ | The ouput file is {{Highlight|'''u-boot.stm32'''}}. |
||
+ | |||
+ | == SPL compilation == |
||
+ | |||
+ | 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 |
||
+ | |||
+ | {{Warning | This alternate boot chain with SPL is not supported/promoted by STMicroelectronics to make product.}} |
||
== Examples == |
== Examples == |
||
− | === {{Board | type=157C-EV1}} |
+ | === {{Board | type=157F-EV1}} === |
− | {{PC$}} make stm32mp15_trusted_defconfig |
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} |
− | {{PC$}} make DEVICE_TREE=stm32mp157c-ev1 all |
+ | {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157f-ev1}} all |
+ | |||
+ | === {{Board | type=157C-EV1}} === |
||
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}}
|
||
+ | {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157c-ev1}} all
|
||
+ | |||
+ | === {{Board | type=157D-DK1}} === |
||
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}} |
||
+ |
{{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157d-dk1}} all |
||
− | === {{Board | type=157C-DK2}} |
+ | === {{Board | type=157C-DK2}} === |
Using export to select the device tree |
Using export to select the device tree |
||
− | {{PC$}} export KBUILD_OUTPUT=../build/ |
+ | {{PC$}} export KBUILD_OUTPUT=../build/stm32mp15_trusted
|
− | {{PC$}} export DEVICE_TREE=stm32mp157c-dk2 |
+ | {{PC$}} export DEVICE_TREE={{HighlightParam|stm32mp157c-dk2}}
|
− | {{PC$}} make stm32mp15_trusted_defconfig |
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}}
|
{{PC$}} make all |
{{PC$}} make all |
||
− | === |
+ | === Custom board with external device tree === |
− | {{PC$}} |
+ | {{PC$}} make {{HighlightParam|stm32mp15_trusted_defconfig}}
|
+ |
{{PC$}} make EXT_DTB={{HighlightParam|stm32mp151a-myboard.dtb}} all
|
||
+ | |||
+ | === SPL for {{Board | type=157F-EV1}} === |
||
{{PC$}} make stm32mp15_basic_defconfig |
{{PC$}} make stm32mp15_basic_defconfig |
||
− | {{PC$}} make DEVICE_TREE= |
+ | {{PC$}} make DEVICE_TREE={{HighlightParam|stm32mp157f-ev1}} all |
− | |||
− | |||
− | |||
− | |||
<noinclude> |
<noinclude> |