From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Mon, 29 Apr 2019 08:15:33 -0700 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E962F59454; Mon, 29 Apr 2019 15:15:32 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-121-31.rdu2.redhat.com [10.10.121.31]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95B7B6B63E; Mon, 29 Apr 2019 15:15:31 +0000 (UTC) Subject: Re: [patch 09/11] UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage To: Dandan Bi , devel@edk2.groups.io Cc: Eric Dong , Ray Ni References: <20190429021607.11304-1-dandan.bi@intel.com> <20190429021607.11304-10-dandan.bi@intel.com> From: "Laszlo Ersek" Message-ID: <71822291-b57a-1d4a-fcb9-e46334efa7d7@redhat.com> Date: Mon, 29 Apr 2019 17:15:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20190429021607.11304-10-dandan.bi@intel.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 29 Apr 2019 15:15:33 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 04/29/19 04:16, Dandan Bi wrote: > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464 > > Currently Framework compatibility support is not needed and > PcdFrameworkCompatibilitySupport will be removed from edk2. > So remove the usage of this PCD firstly. > > Cc: Eric Dong > Cc: Ray Ni > Cc: Laszlo Ersek > Signed-off-by: Dandan Bi > --- > .../Universal/Acpi/S3Resume2Pei/S3Resume.c | 30 ------------------- > .../Acpi/S3Resume2Pei/S3Resume2Pei.inf | 3 +- > 2 files changed, 1 insertion(+), 32 deletions(-) > > diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c > index 77c3fb6bdc..83ce1c4037 100644 > --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c > +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c > @@ -741,12 +741,10 @@ S3ResumeExecuteBootScript ( > { > EFI_STATUS Status; > PEI_SMM_ACCESS_PPI *SmmAccess; > UINTN Index; > VOID *GuidHob; > - IA32_DESCRIPTOR *IdtDescriptor; > - VOID *IdtBuffer; > PEI_S3_RESUME_STATE *PeiS3ResumeState; > BOOLEAN InterruptStatus; > > DEBUG ((DEBUG_INFO, "S3ResumeExecuteBootScript()\n")); > > @@ -802,38 +800,10 @@ S3ResumeExecuteBootScript ( > > if (FeaturePcdGet (PcdDxeIplSwitchToLongMode)) { > AsmWriteCr3 ((UINTN)AcpiS3Context->S3NvsPageTableAddress); > } > > - if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) { > - // > - // On some platform, such as ECP, a dispatch node in boot script table may execute a 32-bit PEIM which may need PeiServices > - // pointer. So PeiServices need preserve in (IDTBase- sizeof (UINTN)). > - // > - IdtDescriptor = (IA32_DESCRIPTOR *) (UINTN) (AcpiS3Context->IdtrProfile); > - // > - // Make sure the newly allocated IDT align with 16-bytes > - // > - IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16)); > - if (IdtBuffer == NULL) { > - REPORT_STATUS_CODE ( > - EFI_ERROR_CODE | EFI_ERROR_MAJOR, > - (EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_S3_RESUME_FAILED) > - ); > - ASSERT (FALSE); > - } > - // > - // Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer > - // IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code > - // > - ZeroMem (IdtBuffer, 16); > - AsmReadIdtr ((IA32_DESCRIPTOR *)IdtBuffer); > - CopyMem ((VOID*)((UINT8*)IdtBuffer + 16),(VOID*)(IdtDescriptor->Base), (IdtDescriptor->Limit + 1)); > - IdtDescriptor->Base = (UINTN)((UINT8*)IdtBuffer + 16); > - *(UINTN*)(IdtDescriptor->Base - sizeof(UINTN)) = (UINTN)GetPeiServicesTablePointer (); > - } > - > InterruptStatus = SaveAndDisableInterrupts (); > // > // Need to make sure the GDT is loaded with values that support long mode and real mode. > // > AsmWriteGdtr (&mGdt); > diff --git a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf > index d694a98691..aae984d138 100644 > --- a/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf > +++ b/UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf > @@ -3,11 +3,11 @@ > # > # This module works with StandAloneBootScriptExecutor to S3 resume to OS. > # This module will excute the boot script saved during last boot and after that, > # control is passed to OS waking up handler. > # > -# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
> +# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.
> # Copyright (c) 2017, AMD Incorporated. All rights reserved.
> # > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > ## > @@ -87,11 +87,10 @@ > gEfiEndOfPeiSignalPpiGuid ## SOMETIMES_PRODUCES > gEfiPeiSmmCommunicationPpiGuid ## SOMETIMES_CONSUMES > > [FeaturePcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES > - gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport ## CONSUMES > > [Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES > > Reviewed-by: Laszlo Ersek