• Etienne Carriere's avatar
    firmware: arm_scmi: Add optee transport · 5f90f189
    Etienne Carriere authored
    Add a new transport channel to the SCMI firmware interface driver for
    SCMI message exchange based on optee transport channel. The optee
    transport is realized by connecting and invoking OP-TEE SCMI service
    interface PTA.
    
    Optee transport support (CONFIG_ARM_SCMI_TRANSPORT_OPTEE) is default
    enabled when optee driver (CONFIG_OPTEE) is enabled. Effective optee
    transport is setup upon OP-TEE SCMI service discovery at optee
    device initialization. For this SCMI UUID is registered to the optee
    bus for probing. This is done from the link_supplier operator of the
    SCMI optee transport.
    
    The optee transport can use a statically defined shared memory in
    which case SCMI device tree node defines it using an "arm,scmi-shmem"
    compatible phandle through property shmem. Alternatively, optee transport
    allocates the shared memory buffer from the optee driver when no shmem
    property is defined.
    
    The protocol used to exchange SCMI message over that shared memory is
    negotiated between optee transport driver and the OP-TEE service through
    capabilities exchange.
    
    OP-TEE SCMI service is integrated in OP-TEE since its release tag 3.13.0.
    The service interface is published in [1].
    
    Link: [1] https://github.com/OP-TEE/optee_os/blob/3.13.0/lib/libutee/include/pta_scmi_client.h
    Link: https://lore.kernel.org/r/20211028140009.23331-2-etienne.carriere@linaro.org
    Cc: Cristian Marussi <cristian.marussi@arm.com>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Reviewed-by: default avatarCristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: default avatarEtienne Carriere <etienne.carriere@linaro.org>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    5f90f189
optee.c 14.3 KB