[PATCH 0/7] ARM: i.MX8M: add optional CAAM init in PBL

Sascha Hauer sha at pengutronix.de
Wed Jan 11 01:10:40 PST 2023


On Wed, Jan 11, 2023 at 08:59:33AM +0100, Ahmad Fatoum wrote:
> While the CAAM is TrustZone aware, Linux and OP-TEE drivers are not
> necessarily so:
> 
>   - Linux running in normal world will attempt to set up RNG
>     via DECO, which can be restricted to secure world
> 
>   - (Some versions of) OP-TEE may depend on RNG being set up by BL2
> 
> While the proper solution would be to teach their drivers how to
> instantiate the RNG via SHs, we'll want to support existing firmware, so
> take the easy way out and just set up RNG4 SH0 and SH1 in barebox.
> 
> We already do that for the i.MX6, but the setup there happens in barebox
> proper. For security reasons, we want to install OP-TEE as early as
> possible while running the prebootloader, so we replicate the setup for
> PBL. This has been tested with the i.MX8MM and i.MX8MN. On the i.MX8MN
> in particular imx-optee used to hang for me while doing its crypto init,
> because it assumed a setup RNG. This is resolved now by this series.
> 
> Note that barebox itself does not yet benefit from this setup and that
> the barebox proper driver for CAAM is unaffected by this change.
> I verified it continues to work on an i.MX6Q as this series had some
> changes to the CAAM MMIO accessors.
> 
> Ahmad Fatoum (7):
>   ARM: i.MX8M: bootrom: access OCRAM directly if running in EL3
>   crypto: caam - sync 64-bit accessors with Linux
>   crypto: caam - add job ring accessors from Linux
>   crypto: caam - make command constants unsigned
>   crypto: caam - implement early PBL init
>   common: add new CONFIG_HAVE_OPTEE symbol
>   ARM: i.MX8M: init CAAM when CONFIG_FSL_CAAM_RNG_PBL_INIT

Applied, thanks

Sascha

> 
>  arch/arm/mach-imx/Kconfig                   |   1 +
>  arch/arm/mach-imx/Makefile                  |   4 +-
>  arch/arm/mach-imx/atf.c                     |  10 +
>  arch/arm/mach-imx/bootrom-cmd.c             |  14 +-
>  arch/arm/mach-imx/include/mach/imx8m-regs.h |   3 +
>  arch/arm/mach-imx/include/mach/romapi.h     |   4 +
>  arch/arm/mach-imx/romapi.c                  |  24 +-
>  common/Kconfig                              |   7 +-
>  drivers/crypto/Makefile                     |   2 +-
>  drivers/crypto/caam/Kconfig                 |   3 +
>  drivers/crypto/caam/Makefile                |   1 +
>  drivers/crypto/caam/ctrl.c                  |   6 +
>  drivers/crypto/caam/desc.h                  |  43 +-
>  drivers/crypto/caam/detect.h                |  19 +
>  drivers/crypto/caam/pbl-init.c              | 491 ++++++++++++++++++++
>  drivers/crypto/caam/regs.h                  | 272 ++++++++---
>  include/soc/fsl/caam.h                      |  17 +
>  include/zero_page.h                         |   2 +-
>  18 files changed, 834 insertions(+), 89 deletions(-)
>  create mode 100644 drivers/crypto/caam/detect.h
>  create mode 100644 drivers/crypto/caam/pbl-init.c
>  create mode 100644 include/soc/fsl/caam.h
> 
> -- 
> 2.30.2
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list