[PATCH 0/8] optee: add bidirectional communication support

Sascha Hauer sha at pengutronix.de
Fri Dec 1 02:39:50 PST 2023


On Mon, Nov 27, 2023 at 07:35:51AM +0100, Ahmad Fatoum wrote:
> So far, barebox interaction by OP-TEE was limited to loading it and
> maybe passing along its device tree fixup. In some scenarios, there
> is a lot more that could need to be done however:
> 
>   - Access to eMMC RPMB memory
>   - Access to keys stored in OP-TEE, e.g. in Trusted Keys TA or
>     in fTPM
>   - Access to hardware managed by OP-TEE via e.g. PRNG TA
> 
> Let's prepare for all that by importing the Linux v6.6 OP-TEE support
> into barebox. This series has been tested on STM3MP15 and STM32MP13
> 32-bit ARM SoCs, where OP-TEE functioned as SCMI provider, restricting
> access to some clocks, resets and regulators deemed too important to
> let pesky normal world have direct access to them.
> 
> Ahmad Fatoum (5):
>   driver: don't clear unrelated struct device_node::device on unregister
>   deep-probe: don't panic when device can't be created
>   deep-probe: skip on-demand platform dev creation for nodes without
>     compatible
>   devinfo: indicate if device tree nodes are differently populated
>   hw_random: add implementation for OP-TEE RNG pseudo TA
> 
> Marc Kleine-Budde (3):
>   include: uaccess.h: import from linux
>   optee: add bidirectional communication support
>   optee: add experimental support for /dev/tee0

Applied, thanks

Sascha

> 
>  commands/devinfo.c                     |  13 +-
>  common/Kconfig                         |   5 +
>  drivers/Kconfig                        |   1 +
>  drivers/Makefile                       |   2 +-
>  drivers/base/driver.c                  |   7 +-
>  drivers/hw_random/Kconfig              |   9 +
>  drivers/hw_random/Makefile             |   1 +
>  drivers/hw_random/optee-rng.c          | 302 ++++++++++
>  drivers/of/platform.c                  |  13 +-
>  drivers/tee/Kconfig                    |  17 +
>  drivers/tee/Makefile                   |   5 +
>  drivers/tee/optee/Kconfig              |  29 +
>  drivers/tee/optee/Makefile             |   8 +
>  drivers/tee/optee/call.c               | 239 ++++++++
>  drivers/tee/optee/core.c               |  68 +++
>  drivers/tee/optee/device.c             | 174 ++++++
>  drivers/tee/optee/{of.c => of_fixup.c} |   0
>  drivers/tee/optee/optee_msg.h          | 295 +++++++++
>  drivers/tee/optee/optee_private.h      | 179 ++++++
>  drivers/tee/optee/optee_smc.h          | 473 +++++++++++++++
>  drivers/tee/optee/rpc.c                |  16 +
>  drivers/tee/optee/smc_abi.c            | 748 +++++++++++++++++++++++
>  drivers/tee/tee_core.c                 | 801 +++++++++++++++++++++++++
>  drivers/tee/tee_private.h              |  50 ++
>  drivers/tee/tee_shm.c                  | 338 +++++++++++
>  include/asm-generic/uaccess.h          | 205 +++++++
>  include/linux/mod_devicetable.h        |  10 +
>  include/linux/tee_drv.h                | 418 +++++++++++++
>  include/linux/uaccess.h                |  38 ++
>  include/uapi/linux/tee.h               | 407 +++++++++++++
>  30 files changed, 4860 insertions(+), 11 deletions(-)
>  create mode 100644 drivers/hw_random/optee-rng.c
>  create mode 100644 drivers/tee/Kconfig
>  create mode 100644 drivers/tee/Makefile
>  create mode 100644 drivers/tee/optee/Kconfig
>  create mode 100644 drivers/tee/optee/Makefile
>  create mode 100644 drivers/tee/optee/call.c
>  create mode 100644 drivers/tee/optee/core.c
>  create mode 100644 drivers/tee/optee/device.c
>  rename drivers/tee/optee/{of.c => of_fixup.c} (100%)
>  create mode 100644 drivers/tee/optee/optee_msg.h
>  create mode 100644 drivers/tee/optee/optee_private.h
>  create mode 100644 drivers/tee/optee/optee_smc.h
>  create mode 100644 drivers/tee/optee/rpc.c
>  create mode 100644 drivers/tee/optee/smc_abi.c
>  create mode 100644 drivers/tee/tee_core.c
>  create mode 100644 drivers/tee/tee_private.h
>  create mode 100644 drivers/tee/tee_shm.c
>  create mode 100644 include/asm-generic/uaccess.h
>  create mode 100644 include/linux/tee_drv.h
>  create mode 100644 include/linux/uaccess.h
>  create mode 100644 include/uapi/linux/tee.h
> 
> -- 
> 2.39.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