Commit b5eaac17 authored by Jorge Ramirez-Ortiz's avatar Jorge Ramirez-Ortiz Committed by Zhihong Yu
Browse files

CHROMIUM: WAR: drivers: soc: qcom: TrustZone user interface

This driver allocates an EL1 page of coherent memory visible to the Trust
Zone executing at EL3. The buffer can be read and written from
userspace by opening /dev/qcom_tz_mem.

The driver supports multiple opens from different clients runing at
EL0 but serializes all read and write requests. It also registers with
the TZ to be notified of XPU interrupts happening in the EL3.

Only support for 64bit SMC calls have been added.

1: Register IRQ:
Owner: OEM
Service: QCOM_SCM_SVC_OEM 0x00
Command: QCOM_SCM_USR_REGISTER_IRQ 0x02
reg[0] : IRQ Number

2: Read buffer
Owner: OEM
Service: QCOM_SCM_SVC_OEM 0x00
Command: QCOM_SCM_USR_READ 0x01
  reg[0]: buffer physical address
  reg[1]: length requested

3: Write buffer
Owner: OEM
Service: QCOM_SCM_SVC_OEM 0x00
Command: QCOM_SCM_USR_WRITE 0x00
  reg[0]: buffer physical address
  reg[1]: length requested

BUG=b:132310400
TEST=Verifying XPU Violation in both trusted & Untrusted modes.

(cherry picked from commit 7e1d31b4c18a145c56719c98bd19c59578759985
https://github.com/ldts/qualcomm-lt-kernel/commits/chromiumos-4.14-r4/trust-zone-release

)

Change-Id: I7e772000dc803375790d6a938f2f606a1e56faea
Signed-off-by: default avatarJorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: default avatarPraveen Koya <pkoya@codeaurora.org>
Signed-off-by: default avatarVamsi Singamsetty <vamssi@codeaurora.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1643390


Reviewed-by: default avatarJulan Hsu <julanhsu@google.com>
Tested-by: default avatarJulan Hsu <julanhsu@google.com>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
parent 64df9af7
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment