ARM: dts: stm32: add SCMI version of STM32 boards (DK1/DK2/ED1/EV1)
Add a "secure" version of STM32 boards based on SCMI when RCC_TZCR.TZEN=1. Only boards provided by STMicroelectronics are concerned: -STM32MP157A-DK1 -STM32MP157C-DK2 -STM32MP157C-ED1 -STM32MP157C-EV1 The resources secured by RCC_TZCR.TZEN=1 are managed by OP-TEE and the associated SCMI services, reset and clock. These device trees are only supported with stm32mp15_defconfig, with OP-TEE, SCMI and without SPL support. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
This commit is contained in:
parent
7f4de655c0
commit
6cccc8d396
@ -1171,13 +1171,17 @@ dtb-$(CONFIG_STM32MP13x) += \
|
||||
|
||||
dtb-$(CONFIG_STM32MP15x) += \
|
||||
stm32mp157a-dk1.dtb \
|
||||
stm32mp157a-dk1-scmi.dtb \
|
||||
stm32mp157a-icore-stm32mp1-ctouch2.dtb \
|
||||
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
|
||||
stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
|
||||
stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
|
||||
stm32mp157c-dk2.dtb \
|
||||
stm32mp157c-dk2-scmi.dtb \
|
||||
stm32mp157c-ed1.dtb \
|
||||
stm32mp157c-ed1-scmi.dtb \
|
||||
stm32mp157c-ev1.dtb \
|
||||
stm32mp157c-ev1-scmi.dtb \
|
||||
stm32mp157c-odyssey.dtb \
|
||||
stm32mp15xx-dhcom-drc02.dtb \
|
||||
stm32mp15xx-dhcom-pdk2.dtb \
|
||||
|
167
arch/arm/dts/stm32mp15-scmi-u-boot.dtsi
Normal file
167
arch/arm/dts/stm32mp15-scmi-u-boot.dtsi
Normal file
@ -0,0 +1,167 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
|
||||
/*
|
||||
* Copyright (C) STMicroelectronics 2022 - All Rights Reserved
|
||||
*/
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
gpio0 = &gpioa;
|
||||
gpio1 = &gpiob;
|
||||
gpio2 = &gpioc;
|
||||
gpio3 = &gpiod;
|
||||
gpio4 = &gpioe;
|
||||
gpio5 = &gpiof;
|
||||
gpio6 = &gpiog;
|
||||
gpio7 = &gpioh;
|
||||
gpio8 = &gpioi;
|
||||
gpio9 = &gpioj;
|
||||
gpio10 = &gpiok;
|
||||
gpio25 = &gpioz;
|
||||
pinctrl0 = &pinctrl;
|
||||
pinctrl1 = &pinctrl_z;
|
||||
};
|
||||
|
||||
binman: binman {
|
||||
multiple-images;
|
||||
};
|
||||
|
||||
soc {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
ddr: ddr@5a003000 {
|
||||
u-boot,dm-pre-reloc;
|
||||
|
||||
compatible = "st,stm32mp1-ddr";
|
||||
|
||||
reg = <0x5a003000 0x550
|
||||
0x5a004000 0x234>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
/* need PSCI for sysreset during board_f */
|
||||
psci {
|
||||
u-boot,dm-pre-proper;
|
||||
};
|
||||
};
|
||||
|
||||
&bsec {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioa {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpiob {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpiod {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioe {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpiof {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpiog {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioh {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioi {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioj {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpiok {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&gpioz {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&optee {
|
||||
u-boot,dm-pre-proper;
|
||||
};
|
||||
|
||||
&iwdg2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
/* pre-reloc probe = reserve video frame buffer in video_reserve() */
|
||||
<dc {
|
||||
u-boot,dm-pre-proper;
|
||||
};
|
||||
|
||||
/* temp = waiting kernel update */
|
||||
&m4_rproc {
|
||||
resets = <&scmi_reset RST_SCMI_MCU>,
|
||||
<&scmi_reset RST_SCMI_MCU_HOLD_BOOT>;
|
||||
reset-names = "mcu_rst", "hold_boot";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&pinctrl_z {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&rcc {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&scmi {
|
||||
u-boot,dm-pre-proper;
|
||||
};
|
||||
|
||||
&usart1 {
|
||||
resets = <&rcc USART1_R>;
|
||||
};
|
||||
|
||||
&usart2 {
|
||||
resets = <&rcc USART2_R>;
|
||||
};
|
||||
|
||||
&usart3 {
|
||||
resets = <&rcc USART3_R>;
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
resets = <&rcc UART4_R>;
|
||||
};
|
||||
|
||||
&uart5 {
|
||||
resets = <&rcc UART5_R>;
|
||||
};
|
||||
|
||||
&usart6 {
|
||||
resets = <&rcc USART6_R>;
|
||||
};
|
||||
|
||||
&uart7 {
|
||||
resets = <&rcc UART7_R>;
|
||||
};
|
||||
|
||||
&uart8{
|
||||
resets = <&rcc UART8_R>;
|
||||
};
|
57
arch/arm/dts/stm32mp157a-dk1-scmi-u-boot.dtsi
Normal file
57
arch/arm/dts/stm32mp157a-dk1-scmi-u-boot.dtsi
Normal file
@ -0,0 +1,57 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
|
||||
/*
|
||||
* Copyright : STMicroelectronics 2022
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/stm32mp1-clksrc.h>
|
||||
#include "stm32mp15-scmi-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
i2c3 = &i2c4;
|
||||
usb0 = &usbotg_hs;
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,boot-led = "heartbeat";
|
||||
u-boot,error-led = "error";
|
||||
u-boot,mmc-env-partition = "u-boot-env";
|
||||
st,adc_usb_pd = <&adc1 18>, <&adc1 19>;
|
||||
st,fastboot-gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
st,stm32prog-gpios = <&gpioa 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
};
|
||||
|
||||
led {
|
||||
red {
|
||||
label = "error";
|
||||
gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&adc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart4_pins_a {
|
||||
u-boot,dm-pre-reloc;
|
||||
pins1 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
/* pull-up on rx to avoid floating level */
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
&usbotg_hs {
|
||||
u-boot,force-b-session-valid;
|
||||
};
|
6
arch/arm/dts/stm32mp157c-dk2-scmi-u-boot.dtsi
Normal file
6
arch/arm/dts/stm32mp157c-dk2-scmi-u-boot.dtsi
Normal file
@ -0,0 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
|
||||
/*
|
||||
* Copyright : STMicroelectronics 2022
|
||||
*/
|
||||
|
||||
#include "stm32mp157a-dk1-scmi-u-boot.dtsi"
|
47
arch/arm/dts/stm32mp157c-ed1-scmi-u-boot.dtsi
Normal file
47
arch/arm/dts/stm32mp157c-ed1-scmi-u-boot.dtsi
Normal file
@ -0,0 +1,47 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
|
||||
/*
|
||||
* Copyright : STMicroelectronics 2022
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/stm32mp1-clksrc.h>
|
||||
#include "stm32mp15-scmi-u-boot.dtsi"
|
||||
#include "stm32mp15-ddr3-2x4Gb-1066-binG.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
i2c3 = &i2c4;
|
||||
};
|
||||
|
||||
config {
|
||||
u-boot,boot-led = "heartbeat";
|
||||
u-boot,error-led = "error";
|
||||
u-boot,mmc-env-partition = "u-boot-env";
|
||||
st,fastboot-gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
st,stm32prog-gpios = <&gpioa 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
};
|
||||
|
||||
led {
|
||||
red {
|
||||
label = "error";
|
||||
gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
|
||||
default-state = "off";
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&uart4_pins_a {
|
||||
u-boot,dm-pre-reloc;
|
||||
pins1 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
pins2 {
|
||||
u-boot,dm-pre-reloc;
|
||||
/* pull-up on rx to avoid floating level */
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
17
arch/arm/dts/stm32mp157c-ev1-scmi-u-boot.dtsi
Normal file
17
arch/arm/dts/stm32mp157c-ev1-scmi-u-boot.dtsi
Normal file
@ -0,0 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-3-Clause
|
||||
/*
|
||||
* Copyright : STMicroelectronics 2022
|
||||
*/
|
||||
|
||||
#include "stm32mp157c-ed1-scmi-u-boot.dtsi"
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
gpio26 = &stmfx_pinctrl;
|
||||
i2c1 = &i2c2;
|
||||
i2c4 = &i2c5;
|
||||
pinctrl2 = &stmfx_pinctrl;
|
||||
spi0 = &qspi;
|
||||
usb0 = &usbotg_hs;
|
||||
};
|
||||
};
|
@ -77,6 +77,16 @@ Currently the following boards are supported:
|
||||
+ stm32mp157c-ev1.dts
|
||||
+ stm32mp15xx-dhcor-avenger96.dts
|
||||
|
||||
The SCMI variant of each board is supported by a specific "scmi" device tree:
|
||||
+ stm32mp157a-dk1-scmi.dts
|
||||
+ stm32mp157c-dk2-scmi.dts
|
||||
+ stm32mp157c-ed1-scmi.dts
|
||||
+ stm32mp157c-ev1-scmi.dts
|
||||
|
||||
SCMI variant is used only with stm32mp15_defconfig, when the resources are
|
||||
secured with RCC_TZCR.TZEN=1 in OP-TEE. The access to these reset and clock
|
||||
resources are provided by OP-TEE and the associated SCMI services.
|
||||
|
||||
STM32MP13x
|
||||
``````````
|
||||
|
||||
@ -136,6 +146,9 @@ TF-A_ (BL2) initialize the DDR and loads the next stage binaries from a FIP file
|
||||
the secure monitor to access to secure resources.
|
||||
+ HW_CONFIG: The hardware configuration file = the U-Boot device tree
|
||||
|
||||
The scmi variant of each device tree is only support with OP-TEE as secure
|
||||
monitor, with stm32mp15_defconfig.
|
||||
|
||||
The **Basic** boot chain with SPL (for STM32MP15x)
|
||||
``````````````````````````````````````````````````
|
||||
|
||||
@ -248,6 +261,12 @@ Build Procedure
|
||||
|
||||
a) trusted boot with FIP on STM32MP15x ev1::
|
||||
|
||||
# export KBUILD_OUTPUT=stm32mp15
|
||||
# make stm32mp15_defconfig
|
||||
# make DEVICE_TREE=stm32mp157c-ev1-scmi all
|
||||
|
||||
or without SCMI support
|
||||
|
||||
# export KBUILD_OUTPUT=stm32mp15
|
||||
# make stm32mp15_defconfig
|
||||
# make DEVICE_TREE=stm32mp157c-ev1 all
|
||||
|
Loading…
Reference in New Issue
Block a user