From patchwork Sat Apr 8 15:35:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Foundries" X-Patchwork-Id: 1766942 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=Sfxl2ut6; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Ptzpj2QwHz1yY8 for ; Sun, 9 Apr 2023 01:35:55 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2919E85DD9; Sat, 8 Apr 2023 17:35:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.b="Sfxl2ut6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 69D1585E49; Sat, 8 Apr 2023 17:35:39 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id BEC988450D for ; Sat, 8 Apr 2023 17:35:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jorge@foundries.io Received: by mail-wr1-x42d.google.com with SMTP id l18so1035580wrb.9 for ; Sat, 08 Apr 2023 08:35:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; t=1680968135; x=1683560135; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=vTw1hBilkB3BO4UI7NC4yvin3bEqa+FzF0BrWVjf5Ms=; b=Sfxl2ut6NMoIKgKO89y2mx5njRDdDn/qHlC+EyYRxn5bhubX4/62m488a8NwJiTdzH g319xKHRVTW8Tu2aisO2tYyMDeay4lmf1fdQO4i8cCpAIE89bSUJKQhohDU2F7YzPj4s LHWiqVI3zp2JNIOqZ8I0TdBmky7xIUgMa4eDaRmdwMIYOsoIOzgUQbdtiDKovv3NXp5/ PZJryjcn/E5OpG80R9Qw0PXi8nLM5GgRFpgB0BZfdyb+06IE6aKmYH7zek2pMAqRMboQ jqwo8pfux3HdIg5k7qT3tsThbWaSMGGYh52pLRe4LvjtoD2GvU37uAbeKP2QKSCdtzAj nnNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680968135; x=1683560135; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vTw1hBilkB3BO4UI7NC4yvin3bEqa+FzF0BrWVjf5Ms=; b=V6F4JMlPlCw0yAm6bTUmXNnlIBzInBrx/f/Q4hqB6ZHDONsFDeOrLtX6NV/F0m0t06 7VGalbsD1WXMMpSb1KVi7GxW77AQhwcPdBLOgQGaAr4UbbFdW6qASPyy0eQ4oFRumKfE 5i1NSjKEzPvK6PMpL9uS97nyCQ5kzeLnPR8UFh8lFYWa5CoS1gRrsL7g7EQMmZtH8U+a q0GI2vUqadlfnQwpaq7ZvFolfI3NCsdP4RUOdoX8u32pUIJNei1oRkHP48E3tZUUyrzo HRg2HeRnkjO7c7/sm/+dsgOcZFY4OoGwXTVgHMojvcDke7aeS4bhQ3eTKj7h4llGSOho 6WLQ== X-Gm-Message-State: AAQBX9fxSRFwFbjCkICtV6/7+xewagc6nYsq+eKycpgPX19gJG+1lRNV YJqpaWXMMMOPS32tZBNMc6jvDA== X-Google-Smtp-Source: AKy350YvL5Jpdh3/vW3IPrVaLqyUpq6ThqpNVcLZj0P2MpkbKswLgJxOp1JebdzvnX05T/TV5TTNqw== X-Received: by 2002:a05:6000:d1:b0:2d8:4f02:66b6 with SMTP id q17-20020a05600000d100b002d84f0266b6mr3819641wrx.9.1680968135137; Sat, 08 Apr 2023 08:35:35 -0700 (PDT) Received: from localhost.localdomain (119.red-79-144-185.dynamicip.rima-tde.net. [79.144.185.119]) by smtp.gmail.com with ESMTPSA id k15-20020a056000004f00b002c71dd1109fsm7221552wrx.47.2023.04.08.08.35.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Apr 2023 08:35:34 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge@foundries.io, sjg@chromium.org, jens.wiklander@linaro.org, ilias.apalodimas@linaro.org Cc: u-boot@lists.denx.de Subject: [PATCHv2] drivers: tee: sandbox: Fix SCP03 control emulator Date: Sat, 8 Apr 2023 17:35:31 +0200 Message-Id: <20230408153531.434909-1-jorge@foundries.io> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean Fix and document the Secure Channel Protocol03 emulator. Fixes: 5a8783c80c39 ("drivers: tee: sandbox: SCP03 control emulator") Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Simon Glass Reviewed-by: Ilias Apalodimas --- drivers/tee/sandbox.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c index 35e8542fa3..86219a9bb1 100644 --- a/drivers/tee/sandbox.c +++ b/drivers/tee/sandbox.c @@ -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: