mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: Xogium <contact@xogium.me>
Subject: [PATCH 00/24] ARM: stm32mp: add trusted bootchain (SCMI&FIP) support
Date: Sun, 20 Feb 2022 13:47:12 +0100	[thread overview]
Message-ID: <20220220124736.3052502-1-a.fatoum@pengutronix.de> (raw)

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


             reply	other threads:[~2022-02-20 12:49 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-20 12:47 Ahmad Fatoum [this message]
2022-02-20 12:47 ` [PATCH 01/24] PBL: fdt: factor reg property parsing into helper Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 02/24] pinctrl: stm32: use gpio-ranges instead of alias Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 03/24] ARM: stm32mp: simplify with build_stm32mp_image macro Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 04/24] ARM: stm32mp: change stm32image extension to .stm32 Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 05/24] filetype: detect TF-A Firmware Image Packages (FIP) Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 06/24] scripts: add tool to adjust bl33 load address in existing FIP Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 07/24] ARM: stm32mp: build extra barebox-stm32mp-generic-bl33.img Ahmad Fatoum
2022-02-21 10:35   ` [PATCH] fixup! " Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 08/24] ARM: stm32mp: ddrctrl: fix wrong register field widths Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 09/24] reset: stm32: drop stm32mp1_reset_ops indirection Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 10/24] reset: move stm32 reset code to drivers/power/reset Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 11/24] ARM: smccc: sync header with upstream Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 12/24] firmware: import Linux v5.13 SCMI support Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 13/24] reset: add " Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 14/24] clk: add SCMI clock driver Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 15/24] regulator: add SCMI regulator driver Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 16/24] clk: accept const arguments in clk_to_clk_hw/clk_hw_to_clk Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 17/24] serial: stm32: bail if clock_get_rate returns zero Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 18/24] clk: implement of_clk_hw_{onecell,simple}_get Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 19/24] clk: implement clk_hw_reparent Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 20/24] reset: add support for reset_control_status Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 21/24] clk: stm32mp1: sync with Linux v5.17-rc1 Ahmad Fatoum
2022-02-21 10:35   ` [PATCH] fixup! " Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 22/24] regulator: core: fall back to node name if no regulator-name property Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 23/24] ARM: dts: stm32mp: remove regulator-name override in stm32mp151.dtsi Ahmad Fatoum
2022-02-20 12:47 ` [PATCH 24/24] ARM: stm32mp: enable more config options Ahmad Fatoum
2022-02-23 10:57 ` [PATCH 00/24] ARM: stm32mp: add trusted bootchain (SCMI&FIP) support Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220220124736.3052502-1-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=contact@xogium.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox