tee: generic TEE subsystem
authorJens Wiklander <jens.wiklander@linaro.org>
Wed, 11 Mar 2015 13:39:39 +0000 (14:39 +0100)
committerVictor Chong <victor.chong@linaro.org>
Sat, 2 Dec 2017 06:53:27 +0000 (06:53 +0000)
commit048370cd16c142d16171e1ad3f91ee5f80d3b6dc
tree703f60e065add00d12d0299d51260919d033fa79
parent9aad2ea1a413dc97fadb344763cc80862734dd3a
tee: generic TEE subsystem

Initial patch for generic TEE subsystem.
This subsystem provides:
* Registration/un-registration of TEE drivers.
* Shared memory between normal world and secure world.
* Ioctl interface for interaction with user space.
* Sysfs implementation_id of TEE driver

A TEE (Trusted Execution Environment) driver is a driver that interfaces
with a trusted OS running in some secure environment, for example,
TrustZone on ARM cpus, or a separate secure co-processor etc.

The TEE subsystem can serve a TEE driver for a Global Platform compliant
TEE, but it's not limited to only Global Platform TEEs.

This patch builds on other similar implementations trying to solve
the same problem:
* "optee_linuxdriver" by among others
  Jean-michel DELORME<jean-michel.delorme@st.com> and
  Emmanuel MICHEL <emmanuel.michel@st.com>
* "Generic TrustZone Driver" by Javier González <javier@javigon.com>

Change-Id: I35b763e23b706383df5013c429c510c68d7f4176
Acked-by: Andreas Dannenberg <dannenberg@ti.com>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey)
Tested-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> (RCAR H3)
Tested-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Javier González <javier@javigon.com>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
(cherry picked from commit 967c9cca2cc50569efc65945325c173cecba83bd)
Signed-off-by: Victor Chong <victor.chong@linaro.org>
12 files changed:
Documentation/ioctl/ioctl-number.txt
MAINTAINERS
drivers/Kconfig
drivers/Makefile
drivers/tee/Kconfig [new file with mode: 0644]
drivers/tee/Makefile [new file with mode: 0644]
drivers/tee/tee_core.c [new file with mode: 0644]
drivers/tee/tee_private.h [new file with mode: 0644]
drivers/tee/tee_shm.c [new file with mode: 0644]
drivers/tee/tee_shm_pool.c [new file with mode: 0644]
include/linux/tee_drv.h [new file with mode: 0644]
include/uapi/linux/tee.h [new file with mode: 0644]