Difference between revisions of "STM32MP15 U-Boot"

[quality revision] [quality revision]
(Undo revision 63268 by Patrick Delaunay (talk))
(Tag: Undo)
m

This article briefly describes the STM32MP15x lines More info.png support in U-Boot.

1 STM32MP15x lines More info.png support[edit]

For detailed information, please read the file in the delivered U-Boot code = board/st/stm32mp1/README

Also available in official U-Boot Git.

Code :

Configuration Files:

2 Selecting targets : choose defconfig and Device Tree[edit]

Each boot chain is supported by one U-Boot configuration with defconfig

Boot chain defconfig FSBL SSBL TEE support
Trusted Boot stm32mp15_trusted_defconfig TF-A U-Boot
u-boot.stm32
-
Trusted Boot with OP-TEE stm32mp15_optee_defconfig TF-A U-Boot
u-boot.stm32
yes
Basic Boot stm32mp15_basic_defconfig SPL
u-boot-spl.stm32
U-Boot
u-boot.img
-
Warning white.png Warning
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
STM32MP157C-EV1 Evaluation board More info green.png MB1262+MB1263 stm32mp157c-ev1
STM32MP157C-ED1 Evaluation daughterboard MB1263 stm32mp157c-ed1
STM32MP157A-DK1 Discovery kit More info green.png MB1272 stm32mp157a-dk1
STM32MP157C-DK2 Discovery kit More info green.png MB1272+MB1407 stm32mp157c-dk2

3 Compilation[edit]

see U-Boot_overview#U-Boot_build

With <mode> = 'basic', 'trusted' or 'optee'

 
 make stm32mp15_<mode>_defconfig
  make DEVICE_TREE=<device tree name> all
  • 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

4 Examples[edit]

4.1 STM32MP157C-EV1 Evaluation board More info green.png trusted boot[edit]

 
 make stm32mp15_trusted_defconfig
  make DEVICE_TREE=stm32mp157c-ev1 all

4.2 STM32MP157C-DK2 Discovery kit More info green.png trusted boot[edit]

Using export to select the device tree

 
 export KBUILD_OUTPUT=../build/trusted
  export DEVICE_TREE=stm32mp157c-dk2
  make stm32mp15_trusted_defconfig
  make all

4.3 STM32MP157C-ED1 Evaluation daughterboard basic boot[edit]

 
 export KBUILD_OUTPUT=../build/basic
  make stm32mp15_basic_defconfig
  make DEVICE_TREE=stm32mp157c-ed1 all

4.4 Trusted boot chain with external device tree[edit]

 
 make stm32mp15_trusted_defconfig
  make EXT_DTB=boot/stm32mp157c-myboard.dtb 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 | board/st/stm32mp1/README}}

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/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 in {{CodeSource | U-Boot | arch/arm/dts }}
** stm32mp157*-<board>.dts : same as kernel
** stm32mp157*-<board>-u-boot.dtsi : addition for u-boot ( <<device tree>>-u-boot.dtsi automatically included in build process)

== Selecting targets : choose defconfig and Device Tree ==

Each [[Boot_chains_overview|boot chain]] is supported by one [[U-Boot_overview#Kbuild|U-Boot configuration with defconfig]]

{| class="wikitablest-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="wikitablest-table"
|-
! Board part number  !! Description !! Device tree
|-
| '''{{Board | type=157C-EV1}}''' || [[MB1262]]+[[MB1263]] || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-ev1.dts|'''stm32mp157c-ev1'''}}
|-
| STM32MP157C-ED1 Evaluation daughterboard || [[MB1263]] || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-ed1.dts|stm32mp157c-ed1}}
|-
| '''{{Board | type=157A-DK1}}''' || [[MB1272]] || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157a-dk1.dts|'''stm32mp157a-dk1'''}}
|-
| '''{{Board | type=157C-DK2}}''' || [[MB1272]]+[[MB1407]] || {{CodeSource | U-Boot | arch/arm/dts/stm32mp157c-dk2.dts|'''stm32mp157c-dk2'''}}
|}

== Compilation ==
see [[U-Boot_overview#U-Boot_build]]

With <mode> = 'basic', 'trusted' or 'optee'

  {{PC$}} make stm32mp15_<mode>_defconfig
  {{PC$}} make DEVICE_TREE=<device tree name> all

*'''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_defconfig
  {{PC$}} make DEVICE_TREE=stm32mp157c-ev1 all

=== {{Board | type=157C-DK2}} trusted boot ===
Using export to select the device tree
  {{PC$}} export KBUILD_OUTPUT=../build/trusted
  {{PC$}} export DEVICE_TREE=stm32mp157c-dk2
  {{PC$}} make 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.dtb all
<noinclude>

[[Category:U-Boot]]
{{PublicationRequestId | 12895 | 2019-08-01}}</noinclude>
Line 27: Line 27:
 
Each [[Boot_chains_overview|boot chain]] is supported by one [[U-Boot_overview#Kbuild|U-Boot configuration with defconfig]]
 
Each [[Boot_chains_overview|boot chain]] is supported by one [[U-Boot_overview#Kbuild|U-Boot configuration with defconfig]]
   
{| class="wikitable"
+
{| class="st-table"
 
|-
 
|-
 
! Boot chain  !! defconfig !! FSBL !! SSBL !! TEE support
 
! Boot chain  !! defconfig !! FSBL !! SSBL !! TEE support
Line 42: Line 42:
 
Several [[STM32MP15_boards|targets/ boards]] are supported with the associated device-tree (same name as kernel):
 
Several [[STM32MP15_boards|targets/ boards]] are supported with the associated device-tree (same name as kernel):
   
{| class="wikitable"
+
{| class="st-table"
 
|-
 
|-
 
! Board part number  !! Description !! Device tree
 
! Board part number  !! Description !! Device tree