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) += \
|
dtb-$(CONFIG_STM32MP15x) += \
|
||||||
stm32mp157a-dk1.dtb \
|
stm32mp157a-dk1.dtb \
|
||||||
|
stm32mp157a-dk1-scmi.dtb \
|
||||||
stm32mp157a-icore-stm32mp1-ctouch2.dtb \
|
stm32mp157a-icore-stm32mp1-ctouch2.dtb \
|
||||||
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
|
stm32mp157a-icore-stm32mp1-edimm2.2.dtb \
|
||||||
stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
|
stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
|
||||||
stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
|
stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
|
||||||
stm32mp157c-dk2.dtb \
|
stm32mp157c-dk2.dtb \
|
||||||
|
stm32mp157c-dk2-scmi.dtb \
|
||||||
stm32mp157c-ed1.dtb \
|
stm32mp157c-ed1.dtb \
|
||||||
|
stm32mp157c-ed1-scmi.dtb \
|
||||||
stm32mp157c-ev1.dtb \
|
stm32mp157c-ev1.dtb \
|
||||||
|
stm32mp157c-ev1-scmi.dtb \
|
||||||
stm32mp157c-odyssey.dtb \
|
stm32mp157c-odyssey.dtb \
|
||||||
stm32mp15xx-dhcom-drc02.dtb \
|
stm32mp15xx-dhcom-drc02.dtb \
|
||||||
stm32mp15xx-dhcom-pdk2.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
|
+ stm32mp157c-ev1.dts
|
||||||
+ stm32mp15xx-dhcor-avenger96.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
|
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.
|
the secure monitor to access to secure resources.
|
||||||
+ HW_CONFIG: The hardware configuration file = the U-Boot device tree
|
+ 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)
|
The **Basic** boot chain with SPL (for STM32MP15x)
|
||||||
``````````````````````````````````````````````````
|
``````````````````````````````````````````````````
|
||||||
|
|
||||||
@ -248,6 +261,12 @@ Build Procedure
|
|||||||
|
|
||||||
a) trusted boot with FIP on STM32MP15x ev1::
|
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
|
# export KBUILD_OUTPUT=stm32mp15
|
||||||
# make stm32mp15_defconfig
|
# make stm32mp15_defconfig
|
||||||
# make DEVICE_TREE=stm32mp157c-ev1 all
|
# make DEVICE_TREE=stm32mp157c-ev1 all
|
||||||
|
Loading…
Reference in New Issue
Block a user