drivers: tee: sandbox: Fix SCP03 control emulator

Fix and document the Secure Channel Protocol03 emulator.

Fixes: 5a8783c80c ("drivers: tee: sandbox: SCP03 control emulator")

Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Jorge Ramirez-Ortiz 2023-04-08 17:35:31 +02:00 committed by Simon Glass
parent 1a07d39521
commit 7f1a4c9dd8

View file

@ -119,6 +119,7 @@ static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params,
{
u32 res;
static bool enabled;
static bool provisioned;
switch (func) {
case PTA_CMD_ENABLE_SCP03:
@ -130,12 +131,18 @@ static u32 pta_scp03_invoke_func(struct udevice *dev, u32 func, uint num_params,
if (res)
return res;
if (!enabled) {
/* If SCP03 was not enabled, enable it */
if (!enabled)
enabled = true;
} else {
}
if (params[0].u.value.a)
/* If SCP03 was not provisioned, provision new keys */
if (params[0].u.value.a && !provisioned)
provisioned = true;
/*
* Either way, we asume both operations succeeded and that
* the communication channel has now been stablished
*/
return TEE_SUCCESS;
default: