[PATCH 00/24] ARM: stm32mp: add trusted bootchain (SCMI&FIP) support
Ahmad Fatoum
a.fatoum at pengutronix.de
Sun Feb 20 04:47:12 PST 2022
ST calls trusted firmware + SCMI for accessing some secure resources the
trusted boot chain (as opposed to the basic bootchain). This is
independent of cryptographically secured boot. So far, barebox generated
images with a STM32 header prepended, which could be booted after
upstream TF-A. This extends barebox to generate an extra image suitable
for inclusion in A TF-A Firmware Image Package and teaches barebox to
support firmware clocks and resets provided by TF-A over secure monitor
calls. There are no upstream DTs yet with SCMI and intention seems to be
to have boot firmware fix up the nodes. The SCMI changes here have been
tested by taking OpenSTLinux with its downstream TF-A, U-Boot, OP-TEE
and Linux components and just replacing U-Boot with barebox via fiptool
update.
Cheers,
Ahmad Fatoum (24):
PBL: fdt: factor reg property parsing into helper
pinctrl: stm32: use gpio-ranges instead of alias
ARM: stm32mp: simplify with build_stm32mp_image macro
ARM: stm32mp: change stm32image extension to .stm32
filetype: detect TF-A Firmware Image Packages (FIP)
scripts: add tool to adjust bl33 load address in existing FIP
ARM: stm32mp: build extra barebox-stm32mp-generic-bl33.img
ARM: stm32mp: ddrctrl: fix wrong register field widths
reset: stm32: drop stm32mp1_reset_ops indirection
reset: move stm32 reset code to drivers/power/reset
ARM: smccc: sync header with upstream
firmware: import Linux v5.13 SCMI support
reset: add SCMI support
clk: add SCMI clock driver
regulator: add SCMI regulator driver
clk: accept const arguments in clk_to_clk_hw/clk_hw_to_clk
serial: stm32: bail if clock_get_rate returns zero
clk: implement of_clk_hw_{onecell,simple}_get
clk: implement clk_hw_reparent
reset: add support for reset_control_status
clk: stm32mp1: sync with Linux v5.17-rc1
regulator: core: fall back to node name if no regulator-name property
ARM: dts: stm32mp: remove regulator-name override in stm32mp151.dtsi
ARM: stm32mp: enable more config options
Documentation/boards/stm32mp.rst | 74 +-
arch/arm/configs/stm32mp_defconfig | 8 +-
arch/arm/dts/stm32mp151.dtsi | 16 -
arch/arm/include/asm/opcodes-sec.h | 17 +
arch/arm/mach-stm32mp/Kconfig | 6 +-
arch/arm/mach-stm32mp/Makefile | 1 +
arch/arm/mach-stm32mp/bl33-generic.c | 24 +
arch/arm/mach-stm32mp/ddrctrl.c | 10 +-
common/filetype.c | 4 +
drivers/base/driver.c | 28 +
drivers/clk/Kconfig | 11 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-scmi.c | 192 +++
drivers/clk/clk-stm32mp1.c | 886 ++++++++----
drivers/clk/clk.c | 22 +
drivers/firmware/Kconfig | 10 +
drivers/firmware/Makefile | 1 +
drivers/firmware/arm_scmi/Makefile | 10 +
drivers/firmware/arm_scmi/base.c | 281 ++++
drivers/firmware/arm_scmi/bus.c | 226 +++
drivers/firmware/arm_scmi/clock.c | 374 +++++
drivers/firmware/arm_scmi/common.h | 333 +++++
drivers/firmware/arm_scmi/driver.c | 1279 +++++++++++++++++
drivers/firmware/arm_scmi/reset.c | 229 +++
drivers/firmware/arm_scmi/shmem.c | 89 ++
drivers/firmware/arm_scmi/smc.c | 137 ++
drivers/firmware/arm_scmi/voltage.c | 379 +++++
drivers/pinctrl/pinctrl-stm32.c | 14 +-
drivers/power/reset/Kconfig | 7 +
drivers/power/reset/Makefile | 1 +
.../reset/stm32-reboot.c} | 143 +-
drivers/regulator/Kconfig | 9 +
drivers/regulator/Makefile | 1 +
drivers/regulator/core.c | 2 +
drivers/regulator/scmi-regulator.c | 391 +++++
drivers/reset/Kconfig | 17 +-
drivers/reset/Makefile | 2 +-
drivers/reset/core.c | 21 +
drivers/reset/reset-scmi.c | 130 ++
drivers/reset/reset-simple.c | 3 +-
drivers/serial/serial_stm32.c | 2 +
images/Makefile.stm32mp | 59 +-
include/driver.h | 8 +
include/filetype.h | 1 +
include/linux/arm-smccc.h | 363 ++++-
include/linux/clk.h | 33 +-
include/linux/idr.h | 79 +
include/linux/processor.h | 29 +
include/linux/reset-controller.h | 2 +
include/linux/reset.h | 6 +
include/linux/scmi_protocol.h | 654 +++++++++
include/linux/slab.h | 3 +
include/soc/stm32/reboot.h | 16 +
pbl/fdt.c | 23 +-
scripts/fiptool_fwconfig | 39 +
55 files changed, 6218 insertions(+), 488 deletions(-)
create mode 100644 arch/arm/include/asm/opcodes-sec.h
create mode 100644 arch/arm/mach-stm32mp/bl33-generic.c
create mode 100644 drivers/clk/clk-scmi.c
create mode 100644 drivers/firmware/arm_scmi/Makefile
create mode 100644 drivers/firmware/arm_scmi/base.c
create mode 100644 drivers/firmware/arm_scmi/bus.c
create mode 100644 drivers/firmware/arm_scmi/clock.c
create mode 100644 drivers/firmware/arm_scmi/common.h
create mode 100644 drivers/firmware/arm_scmi/driver.c
create mode 100644 drivers/firmware/arm_scmi/reset.c
create mode 100644 drivers/firmware/arm_scmi/shmem.c
create mode 100644 drivers/firmware/arm_scmi/smc.c
create mode 100644 drivers/firmware/arm_scmi/voltage.c
rename drivers/{reset/reset-stm32.c => power/reset/stm32-reboot.c} (53%)
create mode 100644 drivers/regulator/scmi-regulator.c
create mode 100644 drivers/reset/reset-scmi.c
create mode 100644 include/linux/idr.h
create mode 100644 include/linux/processor.h
create mode 100644 include/linux/scmi_protocol.h
create mode 100644 include/soc/stm32/reboot.h
create mode 100755 scripts/fiptool_fwconfig
--
2.30.2
More information about the barebox
mailing list