Commit Graph

183 Commits

Author SHA1 Message Date
Smita Ghosh
0f28e48cbc secure-kernel: Add support for 5.15 kernel
Add following changes.

Fix switch case
  latest compiler throwing error where CASE statement does
  not have break or return under all the execution paths.

Rename size_add to size_add_
  There is a name collision between this one and one coming from
  overflow.h. Hence renaming it.

Modify IRQ handling for qce50 module

Change PDE_DATA to pde_data

Signed-off-by: Smita Ghosh <quic_smitag@quicinc.com>

Change-Id: I4226fb41df12273b45d2e114f1aad2709dc36eb7
Signed-off-by: Smita Ghosh <quic_smitag@quicinc.com>
2022-10-07 14:33:11 -07:00
qctecmdr
8a7364d25d Merge "smcinvoke: Increase MAX_RETRY" 2022-09-14 09:03:37 -07:00
venkata sateesh
cc34676b70 Securemsm-kernel: Enable qseecom for Auto GVM Platform
Add qseecom support for Auto GVM platform.

Change-Id: I9b386486961e36b571498bf6c495c8c786df64c3
Signed-off-by: venkata sateesh <quic_vencher@quicinc.com>
2022-09-13 04:10:16 -07:00
Smita Ghosh
efd4a5f0bd smcinvoke: Increase MAX_RETRY
Change-Id: Ibcc7bd8614246e44938aac338ac2c06414d3ce63
2022-09-09 13:25:47 -07:00
Divisha Bisht
b7877a0496 securemsm-kernel: Update error codes in IQSEEComCompatAppLoader.h
Error codes in IQSEEComCompatAppLoader.h updated as per the actual IDL interface in TZ

Change-Id: I407d9bccdeef1d1015f6533c78adab23267133ea
2022-09-06 17:47:23 +05:30
qctecmdr
bbd4805e6b Merge "qcedev: disable clock gating till stability issues resolved" 2022-08-26 10:34:48 -07:00
qctecmdr
13e971ba2f Merge "qcedev: hold spinlock while managing crypto errors." 2022-08-26 09:37:28 -07:00
Gaurav Kashyap
2461cc62a6 qcedev: disable clock gating till stability issues resolved
Disable the clock gating feature till some of the stability
issues concerning it is resolved.

Change-Id: I7c7832a843240a75b426ca9187fd02dc1488d0ca
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-25 22:39:23 -07:00
qctecmdr
a0b7e74a2a Merge "securemsm-kernel: Remove interruptable signal" 2022-08-25 22:31:52 -07:00
Gaurav Kashyap
bbca708384 qcedev: hold spinlock while managing crypto errors.
Currently, there is no lock held when doing crypto
housekeeping when a timeout occurs. Use a lock in this
scenario to avoid concurrent scenario timing errors.

Change-Id: I60c243e0dfde5a716df772177ab4cd75d9b5b7cc
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-25 22:18:49 -07:00
qctecmdr
391d4254eb Merge "qcedev: check num_fds during unmap" 2022-08-25 19:30:41 -07:00
qctecmdr
510e6935af Merge "Securemsm-kernel: Enable qseecom for khaje" 2022-08-25 03:36:06 -07:00
Jayasri Bhattacharyya
ccc44aff77 Securemsm-kernel: Enable qseecom for khaje
1. Add qseecom_dlkm.ko based on Khaje and AUTO arch type
2. Restructure conf file into multiple conf files
   to enable feature based conf file.

Change-Id: I8bc0472667aebc35e8d1afa37eaca5c3353fd191
Signed-off-by: Jayasri Bhattacharyya <quic_jbhattac@quicinc.com>
2022-08-24 07:32:48 -07:00
Jayasri Bhattacharyya
91e3da89cb securemam-kernel: Change the scope of CONFIG_QSEECOM
Export get_client_env_object when CONFIG_QSEECOM is enabled

Change-Id: I1a52d6e86c8bc75436df55a91759b251caeaa051
2022-08-24 05:32:20 -07:00
Gaurav Kashyap
6aec313e2a Revert "qcedev: Added qce50 compilation for qcedev driver"
This reverts commit 0d26cf953e.

Change-Id: I904eac0ef56f5851d63aee9bcb97f0585069a41e
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-17 15:40:27 -07:00
wenji
20f8c5a846 securemsm-kernel: Remove interruptable signal
1. When invoke thread have resumed from freezing to running or is
   killed, the interruption signals will always interrupt the
   smcinvoke callback calls. this will lead the QTEE and listener
   to be out of sync.
2. To fix this issue, we remove the signal interruption, this solution
   will prevent the smcinvoke from being out of sync.

Change-Id: I8f0cd7342784564ce12e617dc4076638f365aba9
Signed-off-by: wenji <quic_wenji@quicinc.com>
2022-08-17 06:25:20 -07:00
Gaurav Kashyap
94990a445d qcedev: check num_fds during unmap
check the num_fds passed into unmap buf ioctl,
or else it can lead to an out of bounds access.

Change-Id: Ief209a60a6b7dc1ea4be485eaf5cf51d2955a980
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-15 17:19:49 -07:00
qctecmdr
84e37447e5 Merge "qcedev: vote at lowsvs by default in hlos" 2022-08-11 18:36:03 -07:00
basant kumar
200b12bb33 securemsm-kernel: smcinvoke: Add explicit cache flush during callback req from TZ
During Callback request from TZ, smcinvoke in and out buffers need
explicit cache operation with legacy smcinvoke.

Change-Id: I3eacd69901c1ce117017b2d59a28dfab83b5f3f9
2022-08-11 14:43:05 +05:30
Gaurav Kashyap
2f31c15027 qcedev: vote at lowsvs by default in hlos
Since TZ already votes at nominal, voting at nominal from
HLOS will cause aggregate to cross Turbo, so vote at lowSVS
by default from HLOS.

Change-Id: I662fecfa1c8dd29e71eb3c59e2c03d58710ca387
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-04 12:12:20 -07:00
Nicholas Pelham
a4a925db92 securemsm-kernel: Add IClientEnv_registerWithCredentials
Use new ClientEnv register method for kernel clients

Change-Id: I3ce32788c5c7658dcaf808c00d52c32df226fec6
2022-08-01 17:24:07 -07:00
Gaurav Kashyap
795df801dd qcedev: concurrency support in crypto driver
Support to have multiple qcedev requests at a time in
the driver.

Change-Id: I2ba8f22e2b659db04db348dfa3b06b70bf234d0b
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-08-01 09:17:50 -07:00
Patrick Daly
3c241f3b30 securemsm-kernel: Fix compilation errors with CONFIG_FTRACE=n
smcinvoke.c:578:10: error: implicit declaration of function 'kthread_should_stop'
while (!kthread_should_stop()) {

smcinvoke.c:617:43: error: implicit declaration of function 'kthread_run'
smcinvoke[i].postprocess_kthread_task = kthread_run(

Change-Id: Id6a8b6844ec7ae00b55c81d3760a91da9d49a9ad
Signed-off-by: Patrick Daly <quic_pdaly@quicinc.com>
2022-07-29 20:56:57 -07:00
qctecmdr
87cf5b684b Merge "qcedev: Added qce50 compilation for qcedev driver" 2022-07-28 23:10:30 -07:00
qctecmdr
7b72e440ac Merge "securemsm-kernel: Create device node of smcinvoke later" 2022-07-27 22:19:30 -07:00
Anvisha
0d26cf953e qcedev: Added qce50 compilation for qcedev driver
This change will compile and generate qce50 object
only when QCEDEV(QTI Crypto Engine driver) is
compiled.

Test: Nominal, Stress, Adversial and Repetitive Test passed.

Change-Id: I00f41c825d516dcf6e974a7e0333899a746f696f
Signed-off-by: Anvisha <quic_anvisriv@quicinc.com>
2022-07-27 13:16:10 +05:30
wenji
0841f5d4c3 securemsm-kernel: Create device node of smcinvoke later
Because the device node of smcinvoke is published at the
beginning of the smcinvoke_probe(), the device node will
be ready while the smcinvoke is not initialized completely.
Hence the smcinvoke_release probably is called when the
smcinvoke driver is not ready. this case will lead to
smcinvoke crash issue.

To avoid this concurrency issue, we create the device node
at the end of the smcinvoke_probe.

Change-Id: I930685a24fb744893017c90c1881f13e2f2c3d7c
Signed-off-by: wenji <quic_wenji@quicinc.com>
2022-07-26 10:38:18 +08:00
Gaurav Kashyap
79b3d0e377 qcedev: vote for clocks based on dts values
Use DTSI values to vote for clocks instead of using
fixed values. This enables to vote for crypto clocks
on a per target basis.

Change-Id: I05c9e55f4aa0ec876903f1963f859ecf1fc929ab
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-07-18 08:10:30 -07:00
wenji
1bdcb08f83 securemsm-kernel: Postpone the shambridge created by smcinvoke
1. When there is a large shambridge memory which is not
   deleted in time, The shambridge in QTEE might be out of
   memory. we met this issue in the TVM TUI unit test.

  TrustedUISampleTest -vm  --gtest_filter=*Basic_TUIStartStop*

2. To avoid being out of shambridge memory, we should postpone
   the deletion of shambridge created by smcinvoke itself.

Change-Id: I2ef837339881c1dcd78a0da10fc848488c9819ca
Signed-off-by: wenji <quic_wenji@quicinc.com>
2022-07-18 11:56:34 +08:00
qctecmdr
a3079924a2 Merge "securemsm-kernel: Post process shmbridge delete and object release" 2022-07-06 17:51:50 -07:00
qctecmdr
cb8f5bd80b Merge "securemsm-kernel:Changing the kernel error messages to Info message for scm_call" 2022-07-06 15:24:05 -07:00
Gaurav Kashyap
63658ee1fd qcedev: reduce wait timeout for crypto operations
Current wait times for crypto is too high which might cause
concurerency issues for other EEs. Reduce this to what is
required.

Also, reset the offload error for every new IOCTL call.

Change-Id: I43dd2e59e3f30706c87cdc4f633d8132dc8410c9
Signed-off-by: Gaurav Kashyap <quic_gaurkash@quicinc.com>
2022-07-05 10:47:15 -07:00
Indranil Pradhan
236cdfb109 securemsm-kernel:Changing the kernel error messages to Info message for scm_call
Changing the kernel error messages to Info message for unsupported sys-call in TZ.
Test: Compiled tested and validated on device.

Change-Id: Iced52a7c0ac40717de11d6b07923d414b380c40f
2022-06-29 17:03:46 +05:30
Nitin LNU
e2231d0fe2 securemsm-kernel: Post process shmbridge delete and object release
1.When the QTEE is busy with a high concurrency, the objects and shared
memory bridge will not be released and deleted in time, this will lead
to memory leakage issues in the QTEE.
2.To avoid the memory leakage in case of EBUSY, we add 2 exclusive worker
threads to postprocess the object release and shmbridge deletion
separately.

Change-Id: I94c656d191d5098f1c093650e4321e6b5353e45e
Signed-off-by: Nitin LNU <quic_nlakra@quicinc.com>
2022-06-23 22:32:26 -07:00
Gaurav Kashyap
cc0d815923 qce: changes for non offload usecases
With the offload implementation, there are a couple of issues
for non-offload usecases.

1. Set config and offload op parameters correctly for non-cipher
usecases.
2. Due to default wait value, there is a crypto operation irrespective
of previous errors, fix that.

Change-Id: Idba55b3603349b7ad831eccd6ee25c98b1df5de6
2022-06-13 14:54:22 -07:00
Gaurav Kashyap
c7859ce020 qce: add null pointer checks and correct return vals
1. Currently, each request api sometimes returns 0 even
when an error has occured. This will result in unecessary
crypto requests when failures are expected.
2. The request callback handlers does not check handles to
be NULL before accessing. Fix to add NULL handling.

Change-Id: Ia44e353bdb75434dfbc0e3ec0582abc0208be6a7
2022-06-10 15:14:11 -07:00
qctecmdr
4cc3edff47 Merge "qce: stability and performance improvements" 2022-06-08 23:23:09 -07:00
qctecmdr
4287580d4c Merge "securemsm-kernel: Enable/Disable DLKM" 2022-06-07 17:54:26 -07:00
Gaurav Kashyap
ab140f0f11 qce: stability and performance improvements
1. There is no need to vote for high bandwidth for every
ioctl operation, Instead, vote only when a new device
node is opened (which translates to a new session from
a userspace point of view).
2. Fix the way BAM pipes are reset when there is a crypto
operation by initializing it correctly through the SPS
BAM framework.
3. Checking crypto status for every request is performance
heavy. Remove these checks and read status only on
error conditions.

Change-Id: Ibb3607ecb6919f563b00a9a8cd6f5440a8c3940a
2022-06-07 17:36:18 -07:00
Bruce Levy
995c3731b7 smcinvoke: Fix mutex lock and unlock
Acquire lock before delete_cb_txn_locked.
This API expects the lock is aquired before calling it
release the lock afterwards.

Also rename the api with_locked to state that api
needs to be called on locked mutex.

Change-Id: I6384ff60004da90b46904823e399c62c55ea4273
2022-06-07 08:26:27 -07:00
Divya Sharma
6d6aad924f securemsm-kernel: Enable/Disable DLKM
Control DLKM using TARGET_ENABLE_DLKM.
During early bring when most of the modules are not ready
either due to missing header or other reasons. Its good idea
to keep it disabled until its fully ready.

Change-Id: I421f7329cd84d53b3233cea96b0e1920de9d39ea
2022-06-07 08:21:19 -07:00
qctecmdr
c1203ba9a0 Merge "qcedev: assign pattern info correctly" 2022-06-02 12:00:54 -07:00
Jeevan Shriram
0dfcefe3d7 securemsm: Add securemsm module loading during recovery
Add support for loading securemsm module to be loaded during
recovery to avoid unknown symbols error for other dependent drivers.

Change-Id: I477b69cc649ed6b40d0f22a695a25a8d674328f2
2022-05-31 23:02:25 -07:00
Gaurav Kashyap
3f33efa2c9 qcedev: assign pattern info correctly
When non-pattern tests are run after pattern tests, there is
stale data from previous tests that never get erased, which
depending on crypto behavior might cause decrypt discrepancies.
Make the change to correctly set the pattern info to the
command descriptors.

Also, convert all debug logs to pr_info to avoid flooding serial
when QCE_DEBUG is enabled.

Change-Id: Ib84f4025263c622d6e51a47fc147856049bd75d4
2022-05-26 12:29:47 -07:00
Nicholas Pelham
e6550eb67e securemsm-kernel: Export get_client_env_object
Expose basic smcinvoke support for kernel clients.

Change-Id: I754ff56c8c20579d5c824170d0e1b61d0a22535c
2022-05-24 13:47:44 -07:00
Pavan Bobba
d577197ff2 smcinvoke : file private data validation which is sent by userspace
a validation added to check  whether retrieved struct smcinvoke_file_data
inside the function get_server_id belongs to g_smcinvoke_fops or not.

Change-Id: I50bce93ab89759b4fdcb76e41f699d8199771fbd
Signed-off-by: Pavan Bobba <quic_pav@quicinc.com>
2022-05-23 00:03:42 -07:00
qctecmdr
56d39957f0 Merge "smcinvoke: SHM create/delete handling in memory objects" 2022-05-17 10:02:22 -07:00
Pavan Bobba
828d87565b smcinvoke: SHM create/delete handling in memory objects
simplify handling of shm bridge create and delete
Signed-off-by: Pavan Bobba <quic_pav@quicinc.com>

Change-Id: I231d982ff27725bd20efc0080c6871f079e1be2a
2022-05-17 14:19:00 +05:30
Indranil Pradhan
0d3eabb246 securemsm-kernel: Removal of export error and ununsed variable.
Disabling export error and commenting out ununsed variable
which will be resolved with correct export symbol in future.
Test: Compile tested for complete apps build.

Change-Id: I51c45b522de1437d341c7b3fce0aaa82fd233e55
2022-05-16 12:38:00 +05:30
Jeevan Shriram
ce09152acc smcinvoke: Add MODULE_IMPORT_NS for smcinvoke driver
Add MODULE_IMPORT_NS for smcinvoke driver to ignore consider it as as
filesystem and not a driver.

Change-Id: I839b972f68f45f184f6a46de6779ac6adace9d38
2022-05-10 14:24:28 -07:00