Hello Jens,
I do not have any further comments on this patch. I ran extended xtest on QEMU. Everything is fine.
Best regards, Pascal.
On 7 July 2015 at 10:53, Jens Wiklander jens.wiklander@linaro.org wrote:
Hi,
Here's preview 2 of the patchset I'm intending to send as PATCH v4 to the kernel mailing lists later. I've addressed previous comments applicable for the scope of this patchset.
Please take a look to see that we're moving in the right direction.
The "arm/arm64: add smccc ARCH32" patch doesn't contain complicated code, but the usage of Kconfig deserves some extra attention.
OP-TEE patches to work with this in: https://github.com/jenswi-linaro/optee_client/tree/drv4_wip2 https://github.com/jenswi-linaro/optee_os/tree/drv4_wip2 https://github.com/jenswi-linaro/optee_test/tree/drv4_wip2
The kernel patches are also available at https://github.com/jenswi-linaro/linux/tree/gen_optee_driver4_wip2
v4 preview 2:
- Redesigned the synchronization around entry exit of normal SMC (again)
- Replaced rwsem with kref and completion since rwsem wasn't intended to be used in this way
- Replaced semaphores with completions
- Expanded the TEE_IOCTL_PARAM_ATTR_TYPE_MASK to make room for additional parameter types
- Some RPC cleanup, don't use struct optee_msg_arg::func for instance
- Changed tee_shm_pool_alloc_res_mem() to allow greater flexibility when defining driver private and dma-buf shared memory
v4 preview 1:
- Documents TEE subsystem and OP-TEE driver
- Replaced TEE_IOC_CMD with TEE_IOC_OPEN_SESSION, TEE_IOC_INVOKE, TEE_IOC_CANCEL and TEE_IOC_CLOSE_SESSION
- DT bindings in a separate patch
- Assembly parts moved to arch/arm and arch/arm64 respectively, in a separate patch
- Redesigned the synchronization around entry exit of normal SMC
- Redefined/clarified the meaning of OPTEE_SMC_SHM_CACHED
- Removed CMA usage to limit the scope of the patch set
v3:
- Rebased on 4.1-rc3 (dma_buf_export() API change)
- A couple of small sparse fixes
- Documents bindings for OP-TEE driver
- Updated MAINTAINERS
v2:
- Replaced the stubbed OP-TEE driver with a real OP-TEE driver
- Removed most APIs not needed by OP-TEE in current state
- Update Documentation/ioctl/ioctl-number.txt with correct path to tee.h
- Rename tee_shm_pool_alloc_cma() to tee_shm_pool_alloc()
- Moved tee.h into include/uapi/linux/
- Redefined tee.h IOCTL macros to be directly based on _IOR and friends
- Removed version info on the API to user space, a data blob which can contain an UUID is left for user space to be able to tell which protocol to use in TEE_IOC_CMD
- Changed user space exposed structures to only have types with __ prefix
- Dropped THIS_MODULE from tee_fops
- Reworked how the driver is registered and ref counted:
- moved from using an embedded struct miscdevice to an embedded struct device.
- uses an struct rw_semaphore as synchronization for driver detachment
- uses alloc/register pattern from TPM
Thanks, Jens
Jens Wiklander (5): arm/arm64: add smccc ARCH32 dt/bindings: add bindings for optee tee: generic TEE subsystem tee: add OP-TEE driver Documentation: tee subsystem and op-tee driver
Documentation/00-INDEX | 2 + Documentation/devicetree/bindings/optee/optee.txt | 17 + .../devicetree/bindings/vendor-prefixes.txt | 1 + Documentation/ioctl/ioctl-number.txt | 1 + Documentation/tee.txt | 117 +++ MAINTAINERS | 14 + arch/arm/Kconfig | 4 + arch/arm/kernel/Makefile | 2 + arch/arm/kernel/smccc-call.S | 26 + arch/arm/kernel/smccc.c | 17 + arch/arm64/Kconfig | 4 + arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/smccc-call.S | 34 + arch/arm64/kernel/smccc.c | 17 + drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/tee/Kconfig | 18 + drivers/tee/Makefile | 4 + drivers/tee/optee/Kconfig | 8 + drivers/tee/optee/Makefile | 5 + drivers/tee/optee/call.c | 390 ++++++++++ drivers/tee/optee/core.c | 451 +++++++++++ drivers/tee/optee/optee_msg.h | 334 ++++++++ drivers/tee/optee/optee_private.h | 129 ++++ drivers/tee/optee/optee_smc.h | 466 ++++++++++++ drivers/tee/optee/rpc.c | 248 ++++++ drivers/tee/optee/supp.c | 212 ++++++ drivers/tee/tee.c | 839 +++++++++++++++++++++ drivers/tee/tee_private.h | 80 ++ drivers/tee/tee_shm.c | 324 ++++++++ drivers/tee/tee_shm_pool.c | 133 ++++ include/linux/arm-smccc.h | 80 ++ include/linux/tee_drv.h | 306 ++++++++ include/uapi/linux/tee.h | 376 +++++++++ 34 files changed, 4663 insertions(+) create mode 100644 Documentation/devicetree/bindings/optee/optee.txt create mode 100644 Documentation/tee.txt create mode 100644 arch/arm/kernel/smccc-call.S create mode 100644 arch/arm/kernel/smccc.c create mode 100644 arch/arm64/kernel/smccc-call.S create mode 100644 arch/arm64/kernel/smccc.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/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/supp.c create mode 100644 drivers/tee/tee.c create mode 100644 drivers/tee/tee_private.h create mode 100644 drivers/tee/tee_shm.c create mode 100644 drivers/tee/tee_shm_pool.c create mode 100644 include/linux/arm-smccc.h create mode 100644 include/linux/tee_drv.h create mode 100644 include/uapi/linux/tee.h
-- 1.9.1
Tee-dev mailing list Tee-dev@lists.linaro.org https://lists.linaro.org/mailman/listinfo/tee-dev