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<firstname.lastname@example.org> and
Emmanuel MICHEL <email@example.com>
* "Generic TrustZone Driver" by Javier González <firstname.lastname@example.org>
Acked-by: Andreas Dannenberg <email@example.com>
Tested-by: Jerome Forissier <firstname.lastname@example.org> (HiKey)
Tested-by: Volodymyr Babchuk <email@example.com> (RCAR H3)
Tested-by: Scott Branden <firstname.lastname@example.org>
Reviewed-by: Javier González <email@example.com>
Signed-off-by: Jens Wiklander <firstname.lastname@example.org>