-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optee rev #54
base: optee
Are you sure you want to change the base?
Optee rev #54
Commits on Aug 21, 2017
-
tee: optee: fix uninitialized symbol 'parg'
Fixes the static checker warning in optee_release(). error: uninitialized symbol 'parg'. Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8516c25 - Browse repository at this point
Copy the full SHA 8516c25View commit details -
tee: add forward declaration for struct device
tee_drv.h references struct device, but does not include device.h nor platform_device.h. Therefore, if tee_drv.h is included by some file that does not pull device.h nor platform_device.h beforehand, we have a compile warning. Fix this by adding a forward declaration. Signed-off-by: Jerome Forissier <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0c6b38b - Browse repository at this point
Copy the full SHA 0c6b38bView commit details -
tee: tee_shm: Constify dma_buf_ops structures.
dma_buf_ops are not supposed to change at runtime. All functions working with dma_buf_ops provided by <linux/dma-buf.h> work with const dma_buf_ops. So mark the non-const structs as const. File size before: text data bss dec hex filename 2026 112 0 2138 85a drivers/tee/tee_shm.o File size After adding 'const': text data bss dec hex filename 2138 0 0 2138 85a drivers/tee/tee_shm.o Signed-off-by: Arvind Yadav <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0383cf4 - Browse repository at this point
Copy the full SHA 0383cf4View commit details -
tee: optee: add const to tee_driver_ops and tee_desc structures
Add const to tee_desc structures as they are only passed as an argument to the function tee_device_alloc. This argument is of type const, so declare these structures as const too. Add const to tee_driver_ops structures as they are only stored in the ops field of a tee_desc structure. This field is of type const, so declare these structure types as const. Signed-off-by: Bhumika Goyal <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a00c819 - Browse repository at this point
Copy the full SHA a00c819View commit details -
tee: optee: interruptible RPC sleep
Prior to this patch RPC sleep was uninterruptible since msleep() is uninterruptible. Change to use msleep_interruptible() instead. Signed-off-by: Tiger Yu <[email protected]> Reviewed-by: Joakim Bech <[email protected]> Signed-off-by: Jerome Forissier <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 625dacb - Browse repository at this point
Copy the full SHA 625dacbView commit details -
tee: indicate privileged dev in gen_caps
Mirrors the TEE_DESC_PRIVILEGED bit of struct tee_desc:flags into struct tee_ioctl_version_data:gen_caps as TEE_GEN_CAP_PRIVILEGED in tee_ioctl_version() Reviewed-by: Jerome Forissier <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 87cc807 - Browse repository at this point
Copy the full SHA 87cc807View commit details -
tee: optee: sync with new naming of interrupts
In the latest changes of optee_os, the interrupts' names are changed to "native" and "foreign" interrupts. Signed-off-by: David Wang <[email protected]> Signed-off-by: Jerome Forissier <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 864563c - Browse repository at this point
Copy the full SHA 864563cView commit details -
tee: add kernel internal client interface
Adds a kernel internal TEE client interface to be used by other drivers. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7efd6cd - Browse repository at this point
Copy the full SHA 7efd6cdView commit details -
arm64: dt: Remove timer from mt8173 **not for mainline**
From the commit below, the mt8173-evb failed to boot to console due to changes in the mt8173 device tree files. commit c0d6fe2 Merge: b44a3d2 3e4dda7 Author: Linus Torvalds <[email protected]> Date: Tue Nov 10 15:06:26 2015 -0800 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Until properly solved, let's just remove the section in the device tree blob that causes this. Signed-off-by: Joakim Bech <[email protected]> Reviewed-by: Pascal Brand <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b599994 - Browse repository at this point
Copy the full SHA b599994View commit details -
arm64: dt: PSCI for foundation-v8 **not for mainline**
Enables use of PSCI for foundation-v8. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 70a4220 - Browse repository at this point
Copy the full SHA 70a4220View commit details -
arm64: dt: use GICv2 for foundation-v8 **not for mainline**
Uses GICv2 for foundation-v8. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 365afd8 - Browse repository at this point
Copy the full SHA 365afd8View commit details -
arm64: dt: OP-TEE for foundation-v8 **not for mainline**
Configures foundation-v8 with OP-TEE. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4130908 - Browse repository at this point
Copy the full SHA 4130908View commit details -
arm64: dt: OP-TEE for Juno **not for mainline**
Configures Juno with OP-TEE. Reviewed-by: Pascal Brand <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5ca01d0 - Browse repository at this point
Copy the full SHA 5ca01d0View commit details -
arm64: dt: Add no-map to the reserved-memory node for OP-TEE for foun…
…dation-v8 **not for mainline** All the platforms that reserve memory for OP-TEE statically via the DT (i.e., not those that reserve it via UEFI or that patch the DT dynamically thanks to OP-TEE's CFG_DT option) have to mark it 'no-map' so that only the TEE driver may map it. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a92b7fa - Browse repository at this point
Copy the full SHA a92b7faView commit details -
include/linux/arm-smccc.h: avoid sign extension problem
Prior to this patch the ARM_SMCCC_FAST_CALL constant was of an unsigned type causing unwanted sign extension. This patch explicitly selects an unsigned type for the constant. Reviewed-by: Pascal Brand <[email protected]> Tested-by: Jens Wiklander <[email protected]> (QEMU Aarch64) Reported-by: Saksham Jain <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3186541 - Browse repository at this point
Copy the full SHA 3186541View commit details -
tee: new ioctl to a register tee_shm from a dmabuf file descriptor
This change allows userland to create a tee_shm object that refers to a dmabuf reference. Userland provides a dmabuf file descriptor as buffer reference. The created tee_shm object exported as a brand new dmabuf reference used to provide a clean fd to userland. Userland shall closed this new fd to release the tee_shm object resources. The initial dmabuf resources are tracked independently through original dmabuf file descriptor. Once the buffer is registered and until it is released, TEE driver keeps a refcount on the registered dmabuf structure. This change only support dmabuf references that relates to physically contiguous memory buffers. New tee_shm flag to identify tee_shm objects built from a registered dmabuf: TEE_SHM_EXT_DMA_BUF. Such tee_shm structures are flagged both TEE_SHM_DMA_BUF and TEE_SHM_EXT_DMA_BUF. Signed-off-by: Etienne Carriere <[email protected]> Reviewed-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bbfaaeb - Browse repository at this point
Copy the full SHA bbfaaebView commit details -
arm64: dt: Add no-map to the reserved-memory node for OP-TEE for juno…
… **not for mainline** All the platforms that reserve memory for OP-TEE statically via the DT (i.e., not those that reserve it via UEFI or that patch the DT dynamically thanks to OP-TEE's CFG_DT option) have to mark it 'no-map' so that only the TEE driver may map it. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3b7c6c4 - Browse repository at this point
Copy the full SHA 3b7c6c4View commit details -
arm64: dt: Add OP-TEE firmware to mt8173 **not for mainline**
Signed-off-by: Joakim Bech <[email protected]> Reviewed-by: Pascal Brand <[email protected]> Reviewed-by: Jerome Forissier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e38b591 - Browse repository at this point
Copy the full SHA e38b591View commit details -
tee: add tee_param_is_memref() for driver use
Reviewed-by: Etienne Carriere <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 962de97 - Browse repository at this point
Copy the full SHA 962de97View commit details
Commits on Oct 27, 2017
-
tee: add TEE_IOCTL_PARAM_ATTR_META
Adds TEE_IOCTL_PARAM_ATTR_META with can be used to indicate meta parameters when communicating with user space. These meta parameters can be used by supplicant support multiple parallel requests at a time. Reviewed-by: Etienne Carriere <[email protected]> Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4cc5bc1 - Browse repository at this point
Copy the full SHA 4cc5bc1View commit details -
optee: support asynchronous supplicant requests
Adds support for asynchronous supplicant requests, meaning that the supplicant can process several requests in parallel or block in a request for some time. Acked-by: Etienne Carriere <[email protected]> Tested-by: Etienne Carriere <[email protected]> (b2260 pager=y/n) Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for abe2d0c - Browse repository at this point
Copy the full SHA abe2d0cView commit details -
OP-TEE Benchmark **not for mainline**
Add Benchmark support Reviewed-by: Joakim Bech <[email protected]> Signed-off-by: Igor Opaniuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e8c8bf8 - Browse repository at this point
Copy the full SHA e8c8bf8View commit details -
tee: optee: optee_bench.h: remove useless include **not for mainline**
<linux/tee_drv.h> is not used by the benchmark code and happens to introduce a compile warning if it is included without <linux/platform_device.h> (or, more exactly, <linux/device.h>). In file included from drivers/tee/optee/optee_bench.h:19:0, from drivers/tee/optee/bench.c:15: ./include/linux/tee_drv.h:127:16: warning: 'struct device' declared inside parameter list will not be visible outside of this definition or declaration struct device *dev, ^~~~~~ Fixes: 4867f93 ("OP-TEE Benchmark **not for mainline**") Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Joakim Bech <[email protected]> Acked-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ed6ea82 - Browse repository at this point
Copy the full SHA ed6ea82View commit details -
staging/ion: add Allwinner ION "secure" heap
Dumped from: https://github.com/loboris/OrangePI-Kernel/tree/master/linux-3.4 0cc8d855adb457d1860d6e25cb93b6cc75d5a09d Author: Sunny <[email protected]> for Allwinner. Changes made on original "secure heap" implementation: - minor coding style: fix includes, empty lines and overlong lines, indentation, comment layout. - Original path modified the ion uapi. We do not attempt to modify uapi/ion.h. "secure" (or "domain") heaps are under ID ION_HEAP_TYPE_CUSTOM + 1 (legacy 'secure heap type' value). Signed-off-by: Etienne Carriere <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cef44f4 - Browse repository at this point
Copy the full SHA cef44f4View commit details -
ion: "unmapped" heap for secure data path
OP-TEE/SDP (Secure Data Path) memory pools are created through ION secure type heap" from Allwinner. This change renames "secure" into "unmapped" as, from Linux point of view, the heap constraint is manipulating unampped memory pools/buffers. "Unmapped" heap support is integrated in ION UAPI (actually this was the Allwinner initial proposal) and ION DT parsing support. Based in work from Sunny <[email protected]> for Allwinner. Changes: - rename "secure_heap" into "unmapped_heap" - define ION_HEAP_TYPE_UNMAPPED in ION UAPI (sic!) - add structure "struct unmapped_buffer_priv" to hold allocated buffer private data (currently only the buffer physical address. - adapt to recent ION (i.e ion_phys_addr_t => phys_addr_t) - Support dummy heap configuration: one can hard code into the Linux kernel configuration the location of a "unmapped heap". It will be created during ION device inits: see CONFIG_ION_DUMMY_UNMAPPED_HEAP. Signed-off-by: Etienne Carriere <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 60fd760 - Browse repository at this point
Copy the full SHA 60fd760View commit details -
staging/ion: condition unmapped heap to supported architectures
Condition ION unmapped heap implementation to architectures that currently support it. ARM is one of these. Signed-off-by: Etienne Carriere <[email protected]> Reviewed-by: Joakim Bech <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9a5d477 - Browse repository at this point
Copy the full SHA 9a5d477View commit details -
staging/ion: ARM64 supports ION_UNMAPPED_HEAP
Signed-off-by: Etienne Carriere <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b5d85ec - Browse repository at this point
Copy the full SHA b5d85ecView commit details -
[NEW SHM]tee: flexible shared memory pool creation
Makes creation of shm pools more flexible by adding new more primitive functions to allocate a shm pool. This makes it easier to add driver specific shm pool management. Signed-off-by: Jens Wiklander <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 76b0502 - Browse repository at this point
Copy the full SHA 76b0502View commit details -
[NEW SHM]tee: add register user memory
Added new ioctl to allow users register own buffers as a shared memory. Signed-off-by: Jens Wiklander <[email protected]> Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for db3638f - Browse repository at this point
Copy the full SHA db3638fView commit details -
[NEW SHM]tee: shm: add accessors for buffer size and page offset
These two function will be needed for shared memory registration in OP-TEE Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3a0188b - Browse repository at this point
Copy the full SHA 3a0188bView commit details -
[NEW SHM]tee: shm: add page accessor functions
In order to register a shared buffer in TEE, we need accessor function that return list of pages for that buffer. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 18156eb - Browse repository at this point
Copy the full SHA 18156ebView commit details -
[NEW SHM]tee: optee: Update protocol definitions
There were changes in REE<->OP-TEE ABI recently. Now ABI allows us to pass non-contiguous memory buffers as list of pages to OP-TEE. This can be achieved by using new parameter attribute OPTEE_MSG_ATTR_NONCONTIG. OP-TEE also is able to use all non-secure RAM for shared buffers. This new capability is enabled with OPTEE_SMC_SEC_CAP_DYNAMIC_SHM flag. This patch adds necessary definitions to the protocol definition files at Linux side. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 68f26e3 - Browse repository at this point
Copy the full SHA 68f26e3View commit details -
[NEW SHM]tee: optee: add page list manipulation functions
These functions will be used to pass information about shared buffers to OP-TEE. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0e11802 - Browse repository at this point
Copy the full SHA 0e11802View commit details -
[NEW SHM]tee: optee: add shared buffer registration functions
This change adds ops for shm_(un)register functions in tee interface. Client application can use these functions to (un)register an own shared buffer in OP-TEE address space. This allows zero copy data sharing between Normal and Secure Worlds. Please note that while those functions were added to optee code, it does not report to userspace that those functions are available. OP-TEE code does not set TEE_GEN_CAP_REG_MEM flag. This flag will be enabled only after all other features of dynamic shared memory will be implemented in subsequent patches. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 91fa8f2 - Browse repository at this point
Copy the full SHA 91fa8f2View commit details -
[NEW SHM]tee: optee: add registered shared parameters handling
Now, when client applications can register own shared buffers in OP-TEE, we need to extend ABI for parameter passing to/from OP-TEE. So, if OP-TEE core detects that parameter belongs to registered shared memory, it will use corresponding parameter attribute. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8d3d56e - Browse repository at this point
Copy the full SHA 8d3d56eView commit details -
[NEW SHM]tee: optee: add registered buffers handling into RPC calls
With latest changes to OP-TEE we can use any buffers as a shared memory. Thus, it is possible for supplicant to provide part of own memory when OP-TEE asks to allocate a shared buffer. This patch adds support for such feature into RPC handling code. Now when OP-TEE asks supplicant to allocate shared buffer, supplicant can use TEE_IOC_SHM_REGISTER to provide such buffer. RPC handler is aware of this, so it will pass list of allocated pages to OP-TEE. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 76aa312 - Browse repository at this point
Copy the full SHA 76aa312View commit details -
[NEW SHM]tee: optee: store OP-TEE capabilities in private data
Those capabilities will be used in subsequent patches. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a7ea6e4 - Browse repository at this point
Copy the full SHA a7ea6e4View commit details -
[NEW SHM]tee: optee: add optee-specific shared pool implementation
This is simple pool that uses kernel page allocator. This pool can be used in case OP-TEE supports dynamic shared memory. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for df88368 - Browse repository at this point
Copy the full SHA df88368View commit details -
[NEW SHM]tee: optee: enable dynamic SHM support
Previous patches added various features that are needed for dynamic SHM. Dynamic SHM allows Normal World to share any buffers with OP-TEE. While original design suggested to use pre-allocated region (usually of 1M to 2M of size), this new approach allows to use all non-secure RAM for command buffers, RPC allocations and TA parameters. This patch checks capability OPTEE_SMC_SEC_CAP_DYNAMIC_SHM. If it was set by OP-TEE, then kernel part of OP-TEE will use kernel page allocator to allocate command buffers. Also it will set TEE_GEN_CAP_REG_MEM capability to tell userspace that it supports shared memory registration. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3ca9562 - Browse repository at this point
Copy the full SHA 3ca9562View commit details -
[NEW SHM]tee: use reference counting for tee_context
We need to ensure that tee_context is present until last shared buffer will be freed. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8862a5d - Browse repository at this point
Copy the full SHA 8862a5dView commit details -
[NEW SHM]tee: shm: inline tee_shm getter functions
Now, when struct tee_shm is defined in public header, we can inline small getter functions. Signed-off-by: Volodymyr Babchuk <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c7f82a0 - Browse repository at this point
Copy the full SHA c7f82a0View commit details -
optee: remove registered shm argument size check
We don't need to return error if output shm size is larger than allocated buffer. This is pefrectly fine. In this way TEE or TA reports that it needs larger buffer (as described in TEE Client API Specification v1.0, section 3.2.5.). Signed-off-by: Volodymyr Babchuk <[email protected]> Tested-by: Jerome Forissier <[email protected]> (HiKey) Reviewed-by: Joakim Bech <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7e7a654 - Browse repository at this point
Copy the full SHA 7e7a654View commit details -
staging:ion: add a no-map property to ion dmabuf attachment
Ion unmapped heap aims at not being mapped. This change prevents Ion from calling dma-mapping support on dma_buf_attach for buffers in an unmapped heap. This change is a bit intrusive in the Ion driver. Maybe there is another way to deal with the dma-mapping resources used for the unmapped heap. Signed-off-by: Etienne Carriere <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6e954e2 - Browse repository at this point
Copy the full SHA 6e954e2View commit details
Commits on Nov 24, 2017
-
tee: optee: GET_OS_REVISION: document a2 as a build identifier
In the OPTEE_SMC_CALL_GET_OS_REVISION request, the previously reserved parameter a2 is now documented as being an optional build identifier (such as an SCM revision or commit ID, for instance). A new structure optee_smc_call_get_os_revision_result is introduced to be used when querying the secure OS version, instead of re-using the struct defined for OPTEE_SMC_CALLS_REVISION. Signed-off-by: Jerome Forissier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for eae92bd - Browse repository at this point
Copy the full SHA eae92bdView commit details -
tee: optee: report OP-TEE revision information
When the driver initializes, report the following information about the OP-TEE OS: - major and minor version, - build identifier (if available). Signed-off-by: Jerome Forissier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3a701ec - Browse repository at this point
Copy the full SHA 3a701ecView commit details