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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox