From nobody Tue Feb 10 05:43:47 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+51508+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+51508+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1575024431; cv=none; d=zohomail.com; s=zohoarc; b=IiC7vHU0BFWtTivOzRZ6Cdb4PjsLLN4APqKo1O4ZW7CusbxC/1FtU68dTpxKrnymt1zwAlegUV/owGtKM9ggeB3fWUGpsFai+2pvyJqzZnIfD/h9Nxwy5sJD2FY0y5XrSAgXnTuCIJlrsDBXT8tTreirO/YkynE4/mYajNNpNiY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575024431; h=Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:Message-ID:Reply-To:References:Sender:Subject:To; bh=FbSpVW3L4sR5O1prNcbc6/RfuB0aGt9mT7MvgKE0HDc=; b=i0g9xnODD6VQsICVcgPENzf++pk3D/cvotCOryOkPAMU0H6q3Kq3dEBtwpl01uam9k8BzgrMkfwenX9Hhmds8lE2fgMDekAo9gdB6LlAf+ROPcjo1rYoOITxNMEQnJaTxR1kLTCp45xjtxWMow1LmqOPXtlds3mTSBXymuTNLOM= 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+51508+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 1575024431206882.3573886399621; Fri, 29 Nov 2019 02:47:11 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id J9GcYY1788612xURig1EMV7R; Fri, 29 Nov 2019 02:47:10 -0800 X-Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by mx.groups.io with SMTP id smtpd.web12.6835.1575024430122445862 for ; Fri, 29 Nov 2019 02:47:10 -0800 X-Received: by mail-wr1-f68.google.com with SMTP id z7so31114383wrl.13 for ; Fri, 29 Nov 2019 02:47:09 -0800 (PST) X-Gm-Message-State: hII1dhrv0APIDBHlWZxzmh1Px1787277AA= X-Google-Smtp-Source: APXvYqwgZtEV6jSd06kzbp03NM1powEeJ6kUXhUO6g0BxWw08tKGUdNOkC+MNtqpOumhlO04CSozqA== X-Received: by 2002:a5d:6748:: with SMTP id l8mr9031950wrw.188.1575024428359; Fri, 29 Nov 2019 02:47:08 -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.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Nov 2019 02:47:07 -0800 (PST) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, Ard Biesheuvel Subject: [edk2-devel] [PATCH edk2-platforms 1/2] Silicon/SynQuacer/PlatformDxe: move EMMC SSDT handling to core routine Date: Fri, 29 Nov 2019 11:47:15 +0100 Message-Id: <20191129104716.819-2-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=1575024430; bh=B5u7MAf66XEmNVXBG4Ik9oN7t7iaffLqt/0NsyGt6ak=; h=Cc:Date:From:Reply-To:Subject:To; b=sSW+mUDg1ZJU5JIU/f43tVmne8zF0RXHzEdTN2E3Bu7ak2nV5CuKgqdUjOl3lVm5U9h oxJiU5Wgo9XTejzxCBbb/5ckQXA0snHZLv4BjoYZeSdIG3IsR+TWWWB171XZF8SJFeJoZ mD6rAzNIJyNvSBOyvCSJ7UL/lkoqHUWcl6I= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" In preparation of adding support for describing the presence of OP-TEE via a SSDT ACPI table, refactor the existing code so we will be able to reuse it more easily. Signed-off-by: Ard Biesheuvel Reviewed-by: Philippe Mathieu-Daude --- Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c | 55 -------= ---------- Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c | 65 +++++++= +++++++++++++ 2 files changed, 65 insertions(+), 55 deletions(-) diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c b/Silic= on/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c index 0d0e5edad901..90b67152c768 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/Emmc.c @@ -53,10 +53,6 @@ =20 STATIC EFI_HANDLE mSdMmcControllerHandle; =20 -STATIC EFI_ACPI_DESCRIPTION_HEADER *mSsdt; -STATIC UINTN mSsdtSize; -STATIC VOID *mEventRegistration; - /** =20 Override function for SDHCI capability bits @@ -185,31 +181,6 @@ STATIC EDKII_SD_MMC_OVERRIDE mSdMmcOverride =3D { SynQuacerSdMmcNotifyPhase, }; =20 -STATIC -VOID -EFIAPI -InstallAcpiTable ( - IN EFI_EVENT Event, - IN VOID* Context - ) -{ - UINTN TableKey; - EFI_STATUS Status; - EFI_ACPI_TABLE_PROTOCOL *AcpiTable; - - Status =3D gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, - (VOID **)&AcpiTable); - if (EFI_ERROR (Status)) { - return; - } - - Status =3D AcpiTable->InstallAcpiTable (AcpiTable, mSsdt, mSsdtSize, &Ta= bleKey); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_WARN, "%a: failed to install SSDT table for eMMC - %r\n", - __FUNCTION__, Status)); - } -} - EFI_STATUS EFIAPI RegisterEmmc ( @@ -218,32 +189,6 @@ RegisterEmmc ( { EFI_STATUS Status; EFI_HANDLE Handle; - UINTN Index; - - if (mHiiSettings->AcpiPref =3D=3D ACPIPREF_ACPI) { - // - // Load the SSDT table from a raw section in this FFS file. - // - for (Index =3D 0;; Index++) { - Status =3D GetSectionFromFv (&gEfiCallerIdGuid, EFI_SECTION_RAW, Ind= ex, - (VOID **)&mSsdt, &mSsdtSize); - if (EFI_ERROR (Status)) { - break; - } - - if (mSsdt->OemTableId !=3D EMMC_TABLE_ID) { - continue; - } - - // - // Register for the ACPI table protocol - // - EfiCreateProtocolNotifyEvent (&gEfiAcpiTableProtocolGuid, TPL_CALLBA= CK, - InstallAcpiTable, NULL, &mEventRegistration); - - break; - } - } =20 Status =3D RegisterNonDiscoverableMmioDevice ( NonDiscoverableDeviceTypeSdhci, diff --git a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c = b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c index 73cc560fa8d8..c9cc37dd2478 100644 --- a/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c +++ b/Silicon/Socionext/SynQuacer/Drivers/PlatformDxe/PlatformDxe.c @@ -113,6 +113,11 @@ STATIC EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR mI2c1Desc[] = =3D { } }; =20 +STATIC EFI_ACPI_DESCRIPTION_HEADER *mEmmcSsdt; +STATIC UINTN mEmmcSsdtSize; + +STATIC VOID *mAcpiTableEventRegistration; + STATIC EFI_STATUS RegisterDevice ( @@ -256,6 +261,32 @@ EnableSettingsForm ( return InstallHiiPages (); } =20 +STATIC +VOID +EFIAPI +InstallAcpiTables ( + IN EFI_EVENT Event, + IN VOID* Context + ) +{ + UINTN TableKey; + EFI_STATUS Status; + EFI_ACPI_TABLE_PROTOCOL *AcpiTable; + + Status =3D gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, + (VOID **)&AcpiTable); + if (EFI_ERROR (Status)) { + return; + } + + Status =3D AcpiTable->InstallAcpiTable (AcpiTable, mEmmcSsdt, mEmmcSsdtS= ize, + &TableKey); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_WARN, "%a: failed to install SSDT table for eMMC - %r\n", + __FUNCTION__, Status)); + } +} + EFI_STATUS EFIAPI PlatformDxeEntryPoint ( @@ -267,6 +298,9 @@ PlatformDxeEntryPoint ( VOID *Dtb; UINTN DtbSize; EFI_HANDLE Handle; + EFI_ACPI_DESCRIPTION_HEADER *Ssdt; + UINTN SsdtSize; + UINTN Index; =20 mHiiSettingsVal =3D PcdGet64 (PcdPlatformSettings); mHiiSettings =3D (SYNQUACER_PLATFORM_VARSTORE_DATA *)&mHiiSettingsVal; @@ -344,5 +378,36 @@ PlatformDxeEntryPoint ( ASSERT_EFI_ERROR (Status); } =20 + if (mHiiSettings->AcpiPref =3D=3D ACPIPREF_ACPI) { + // + // Load the SSDT tables from a raw section in this FFS file. + // + for (Index =3D 0;; Index++) { + Status =3D GetSectionFromFv (&gEfiCallerIdGuid, EFI_SECTION_RAW, Ind= ex, + (VOID **)&Ssdt, &SsdtSize); + if (EFI_ERROR (Status)) { + break; + } + + switch (Ssdt->OemTableId) { + case EMMC_TABLE_ID: + if (mHiiSettings->EnableEmmc !=3D EMMC_ENABLED) { + break; + } + mEmmcSsdt =3D Ssdt; + mEmmcSsdtSize =3D SsdtSize; + break; + } + } + + if (mEmmcSsdtSize > 0) { + // + // Register for the ACPI table protocol if we found any SSDTs to ins= tall + // + EfiCreateProtocolNotifyEvent (&gEfiAcpiTableProtocolGuid, TPL_CALLBA= CK, + InstallAcpiTables, NULL, &mAcpiTableEventRegistration); + } + } + return EFI_SUCCESS; } --=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 (#51508): https://edk2.groups.io/g/devel/message/51508 Mute This Topic: https://groups.io/mt/64339741/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-