From nobody Tue Feb 10 14:49:42 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+51509+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51509+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575024432; cv=none; d=zohomail.com; s=zohoarc; b=K27xjtvtFNW008npDzaduOsjOhOIiJf3+OAIQoGrAtBYco1NQx8qYfT1Qn7FwZRogvrbkZnt3EdagZfWcFlBc+58rmzHQA6Y/VlvrpqxyCK4bhJvqvC/lFn9RbxsZ28Uj0hqOBy6quPhUNRE1kMHaVblaKlFCYBs4rpCbinu5yE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575024432; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=cgekBQFl1j8NVH6YsypMTaX9DS5hsqvxQTQ7BwAa7jU=; b=R/uozLS51wkkCm7i+YvVBnCbROvqlQRQDyW2aBQjEFu4cPx9ck+dHVAmZ8VzWNezkap5r25SOiYXppNdn6tFv6yOqaGL/bk3Rtp4Aspw2misCJazuF/JIyMYRHwdV+Ts7Cni6lBxPHe0yKRkkmPUFJA28mcsIJM/P2hGEqZG2wE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+51509+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1575024432541344.37235780017454; Fri, 29 Nov 2019 02:47:12 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id TU0qYY1788612xsAjk3Wu1be; Fri, 29 Nov 2019 02:47:12 -0800 X-Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by mx.groups.io with SMTP id smtpd.web11.6836.1575024431358874380 for ; Fri, 29 Nov 2019 02:47:11 -0800 X-Received: by mail-wm1-f68.google.com with SMTP id p17so8612225wma.1 for ; Fri, 29 Nov 2019 02:47:11 -0800 (PST) X-Gm-Message-State: 72gkoiYorqlBcWGKMXwPsqfZx1787277AA= X-Google-Smtp-Source: APXvYqyerc80rdbtn9LDQ9iRRTHIBH+2FQVbAnGt7ywYMixcEypHL6o5tcZOaSJMpL238uLpy1sgHA== X-Received: by 2002:a1c:49c3:: with SMTP id w186mr13899681wma.53.1575024429468; Fri, 29 Nov 2019 02:47:09 -0800 (PST) X-Received: from e123331-lin.home (amontpellier-657-1-18-247.w109-210.abo.wanadoo.fr. [109.210.65.247]) by smtp.gmail.com with ESMTPSA id 60sm27186170wrn.86.2019.11.29.02.47.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Nov 2019 02:47:08 -0800 (PST) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, Ard Biesheuvel Subject: [edk2-devel] [PATCH edk2-platforms 2/2] Silicon/SynQuacer/PlatformDxe: add ACPI device node for OP-TEE if present Date: Fri, 29 Nov 2019 11:47:16 +0100 Message-Id: <20191129104716.819-3-ard.biesheuvel@linaro.org> In-Reply-To: <20191129104716.819-1-ard.biesheuvel@linaro.org> References: <20191129104716.819-1-ard.biesheuvel@linaro.org> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ard.biesheuvel@linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1575024432; bh=5rRgdPXiLS2DWV+vq9GtOr6wqgIlFEjus3BXSgF5V68=; h=Cc:Date:From:Reply-To:Subject:To; b=Mdv2jAZy9uJNKXn7KJC4TcP2g+3zhvUrpZ4qFTZFOZ8BeTsBUJp3FrKlJcYkbYIWKdy fD5SM0uDb1nHUPlfM7cFZY2pWa8pKxils7TVWJC/bpevFdivdmWhaUwC1TyLkXLXw/RPs NrdEQ60g4uJ5CrPnKtbqSf8B5cnQkhK5W44= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In order to allow the OS to discover the presence of OP-TEE also when booting via ACPI, expose a PRP0001 ACPI device node in this case with OP-TEE's DT compatible string attached. Signed-off-by: Ard Biesheuvel --- Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc | 1 + Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Optee.asl | 23 +++++= +++++++++++++++ Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c | 20 +++++= +++++++++++- Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.h | 2 ++ Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf | 2 ++ 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc b= /Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc index ab1ab6f2de60..968378d5ee5b 100644 --- a/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc +++ b/Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc @@ -68,6 +68,7 @@ [LibraryClasses.common] ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatfo= rmStackLib.inf ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/Ar= mGenericTimerPhyCounterLib.inf + OpteeLib|ArmPkg/Library/OpteeLib/OpteeLib.inf =20 BaseLib|MdePkg/Library/BaseLib/BaseLib.inf BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.i= nf diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Optee.asl b/Si= licon/Socionext/SynQuacer/Drivers/PlatformDxe/Optee.asl new file mode 100644 index 000000000000..cd506211ab1e --- /dev/null +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Optee.asl @@ -0,0 +1,23 @@ +/** @file + Copyright (c) 2019, Linaro Ltd. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +DefinitionBlock ("SsdtTOS0.aml", "SSDT", 1, "SNI", "SynQTOS0", + FixedPcdGet32 (PcdAcpiDefaultOemRevision)) { + Scope (_SB) { + Device (TOS0) { + Name (_HID, "PRP0001") + Name (_UID, 0x0) + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package (2) { "compatible", "linaro,optee-tz" }, + Package (2) { "method", "smc" }, + } + }) + } + } // Scope (_SB) +} diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c = b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c index c9cc37dd2478..138030135986 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c @@ -116,6 +116,9 @@ STATIC EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR mI2c1Desc[] = =3D { STATIC EFI_ACPI_DESCRIPTION_HEADER *mEmmcSsdt; STATIC UINTN mEmmcSsdtSize; =20 +STATIC EFI_ACPI_DESCRIPTION_HEADER *mTos0Ssdt; +STATIC UINTN mTos0SsdtSize; + STATIC VOID *mAcpiTableEventRegistration; =20 STATIC @@ -285,6 +288,13 @@ InstallAcpiTables ( DEBUG ((DEBUG_WARN, "%a: failed to install SSDT table for eMMC - %r\n", __FUNCTION__, Status)); } + + Status =3D AcpiTable->InstallAcpiTable (AcpiTable, mTos0Ssdt, mTos0SsdtS= ize, + &TableKey); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "%a: failed to install SSDT table for OP-TEE - %r\= n", + __FUNCTION__, Status)); + } } =20 EFI_STATUS @@ -397,10 +407,18 @@ PlatformDxeEntryPoint ( mEmmcSsdt =3D Ssdt; mEmmcSsdtSize =3D SsdtSize; break; + + case TOS0_TABLE_ID: + if (!IsOpteePresent ()) { + break; + } + mTos0Ssdt =3D Ssdt; + mTos0SsdtSize =3D SsdtSize; + break; } } =20 - if (mEmmcSsdtSize > 0) { + if (mEmmcSsdtSize > 0 || mTos0SsdtSize > 0) { // // Register for the ACPI table protocol if we found any SSDTs to ins= tall // diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.h = b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.h index c08659f7a796..692654687869 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.h +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.h @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -36,6 +37,7 @@ #include =20 #define EMMC_TABLE_ID SIGNATURE_64('S','y','n','Q','e','M','M','C') +#define TOS0_TABLE_ID SIGNATURE_64('S','y','n','Q','T','O','S','0') =20 extern UINT8 PlatformDxeHiiBin[]; extern UINT8 PlatformDxeStrings[]; diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.in= f b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf index ae9f8712f0d2..57f2d071c14e 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.inf @@ -19,6 +19,7 @@ [Defines] [Sources] Emmc.asl Emmc.c + Optee.asl Pci.c PlatformDxe.c PlatformDxeHii.uni @@ -46,6 +47,7 @@ [LibraryClasses] IoLib MemoryAllocationLib NonDiscoverableDeviceRegistrationLib + OpteeLib PcdLib UefiBootServicesTableLib UefiDriverEntryPoint --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#51509): https://edk2.groups.io/g/devel/message/51509 Mute This Topic: https://groups.io/mt/64339743/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-