From nobody Mon Apr 29 19:03:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+71792+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+71792+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1613679023; cv=none; d=zohomail.com; s=zohoarc; b=OeD0RVsdTJcI0l3EU1PhwdW/ioA2+5cud1tcegjWkHzDY60q9Jp/HauHLcHazerH3yWfJ2sfaj8+l1S5bnFekv/cc/Fs7kSotesAJHH721drQzy//Qq2ewyCwsk9As7dp74gPEQgesnhsUsP8dEXqktjoD2kMXrwahDrDSCiV/w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613679023; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=EJtC+iZaU0UvzwvMEydkR8pYeVXxsh4FGsKsgdShmsk=; b=ATYZ4U00TQ8JZL3PuDZ0vUaUtejUFJ4wR/+GV/ivtMUIXQZ4awntcZpSRT3qbViaxU5gkwunxpLyK/mNAX+57K7cYQU8JrT4SjlKauHHEHWK7IoA3sZ0BMhLIQr4sbJnCi+kjTOIqV5BFXyWB7ik/HlymAlLZLtjffcHG0xIX3w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+71792+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 161367902306295.17759416332694; Thu, 18 Feb 2021 12:10:23 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id 7HvUYY1788612xcOglPRWlct; Thu, 18 Feb 2021 12:10:22 -0800 X-Received: from smtp-fw-4101.amazon.com (smtp-fw-4101.amazon.com [72.21.198.25]) by mx.groups.io with SMTP id smtpd.web11.216.1613679016987245757 for ; Thu, 18 Feb 2021 12:10:17 -0800 X-IronPort-AV: E=Sophos;i="5.81,187,1610409600"; d="scan'208";a="85162076" X-Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1e-303d0b0e.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 18 Feb 2021 20:10:07 +0000 X-Received: from EX13MTAUWC002.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan3.iad.amazon.com [10.40.163.38]) by email-inbound-relay-1e-303d0b0e.us-east-1.amazon.com (Postfix) with ESMTPS id 2BC7CA2466; Thu, 18 Feb 2021 20:10:04 +0000 (UTC) X-Received: from EX13D20UWC001.ant.amazon.com (10.43.162.244) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Feb 2021 20:10:04 +0000 X-Received: from u79c5a0a55de558.ant.amazon.com (10.43.162.213) by EX13D20UWC001.ant.amazon.com (10.43.162.244) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Feb 2021 20:10:02 +0000 From: "Alexander Graf via groups.io" To: CC: Leif Lindholm , Laszlo Ersek , "Ard Biesheuvel" , Jordan Justen , David Woodhouse , "Hendrik Borghorst" Subject: [edk2-devel] [PATCH 1/2] MdeModulePkg/Core/Dxe: Allow to force runtime allocations at separate range Date: Thu, 18 Feb 2021 21:09:52 +0100 Message-ID: <20210218200953.20943-2-graf@amazon.com> In-Reply-To: <20210218200953.20943-1-graf@amazon.com> References: <20210218200953.20943-1-graf@amazon.com> MIME-Version: 1.0 X-Originating-IP: [10.43.162.213] X-ClientProxiedBy: EX13D13UWB004.ant.amazon.com (10.43.161.218) To EX13D20UWC001.ant.amazon.com (10.43.162.244) 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,graf@amazon.com X-Gm-Message-State: 6lNNVr8UrucxXVyGhkBzwTokx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1613679022; bh=g35im6rVckvhRmBiKtn+gR12lDDaXISXzY23pyMg42s=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=Qmh4rodZ5+S/ABfZpldr0iDI+BxBotPknsrIfmRh5xTH3TgxsNaMPg0+xhP6wFCktFT 8RKYsZoUnPa7Wgi+Jkj7ZhmTpfPAGXM82sHaTt6jIwRgspBpZxSr8avGUQzYj3gG8M8k0 UBeK87FmJa6OIp6hS+mg30v+sIvlU3Ux8wQ= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Operating Systems that get hibernated expect all non-boot-time allocations to be identical before and after hibernation. In edk2, we create pools and allocate pages starting from the highest allowed address for the allocation, usually 0xFFFFFFFF. Typically, that means we allocate a few pages of boot time data, then a few pages of runtime data, then another few pages of boot time data and again runtime data. Every allocation has direct impact on the following allocations. The problem with this scheme is that small code changes in boot time code already can have significant impact on runtime allocations, which then break hibernation. This patch adds a mechanism to override the MaxAddress for runtime allocations with a target defined Pcd value. With this feature enabled, we can have different allocation ranges for runtime and boot time allocations. This allows us to determine at boot time whether to load an old, hibernation compatible runtime allocation path or a new, hibernation unsafe runtime allocation. All within the same edk2 target binary. It also allows us to modify boot time behavior, such as modifying buffer allocation mechanisms without compromising on hibernation safety. Signed-off-by: Alexander Graf --- MdeModulePkg/Core/Dxe/DxeMain.inf | 4 +++ MdeModulePkg/Core/Dxe/Mem/Page.c | 70 +++++++++++++++++++++++++++++++++++= ++++ MdeModulePkg/MdeModulePkg.dec | 16 +++++++++ MdeModulePkg/MdeModulePkg.uni | 12 +++++++ 4 files changed, 102 insertions(+) diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf b/MdeModulePkg/Core/Dxe/DxeM= ain.inf index e4bca89577..0696246970 100644 --- a/MdeModulePkg/Core/Dxe/DxeMain.inf +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf @@ -186,6 +186,10 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask = ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard = ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdFwVolDxeMaxEncapsulationDepth = ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory = ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS = ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesCode = ## CONSUMES + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesData = ## CONSUMES =20 # [Hob] # RESOURCE_DESCRIPTOR ## CONSUMES diff --git a/MdeModulePkg/Core/Dxe/Mem/Page.c b/MdeModulePkg/Core/Dxe/Mem/P= age.c index 731bf08bc9..91599adccb 100644 --- a/MdeModulePkg/Core/Dxe/Mem/Page.c +++ b/MdeModulePkg/Core/Dxe/Mem/Page.c @@ -1007,6 +1007,74 @@ CoreUpdateMemoryAttributes ( CoreReleaseMemoryLock (); } =20 +UINT64 +EnforceMaxAddress ( + IN UINT64 MaxAddress, + IN EFI_MEMORY_TYPE NewType, + IN UINT64 NumberOfPages + ) +{ + UINT64 NumberOfBytes =3D LShiftU64 (NumberOfPages, EFI_PAGE_SHIFT); + UINT64 LowestPossible =3D MaxAddress; + UINT64 ForceMaxAddress; + LIST_ENTRY *Link; + MEMORY_MAP *Entry; + + switch (NewType) { + case EfiACPIReclaimMemory: + ForceMaxAddress =3D PcdGet64(PcdEnforceMaxACPIReclaimMemory); + break; + case EfiACPIMemoryNVS: + ForceMaxAddress =3D PcdGet64(PcdEnforceMaxACPIMemoryNVS); + break; + case EfiRuntimeServicesCode: + ForceMaxAddress =3D PcdGet64(PcdEnforceMaxEfiRuntimeServicesCode); + break; + case EfiRuntimeServicesData: + ForceMaxAddress =3D PcdGet64(PcdEnforceMaxEfiRuntimeServicesData); + break; + default: + ForceMaxAddress =3D MaxAddress; + break; + } + + // + // The currently requested address already fits our forced max constrain= t? + // Great, let's use that then. + // + if (ForceMaxAddress >=3D MaxAddress) { + return MaxAddress; + } + + // + // Check if the allocation would fit. If not, don't force it. + // + for (Link =3D gMemoryMap.ForwardLink; Link !=3D &gMemoryMap; Link =3D Li= nk->ForwardLink) { + Entry =3D CR (Link, MEMORY_MAP, Link, MEMORY_MAP_SIGNATURE); + + // + // If it's not a free entry, don't bother with it + // + if (Entry->Type !=3D EfiConventionalMemory) { + continue; + } + + if ((Entry->Start < LowestPossible) && + ((Entry->End - Entry->Start) >=3D NumberOfBytes)) { + LowestPossible =3D Entry->End; + } + } + DEBUG ((DEBUG_ERROR | DEBUG_PAGE, "Force=3D%lx Lowest=3D%lx Max=3D%lx\n"= , ForceMaxAddress, LowestPossible, MaxAddress)); + + // + // We don't have free RAM available in the desired target area? Bail out! + // + if (ForceMaxAddress < LowestPossible) { + return MaxAddress; + } + + return ForceMaxAddress; +} =20 /** Internal function. Finds a consecutive free page range below @@ -1041,6 +1109,8 @@ CoreFindFreePagesI ( LIST_ENTRY *Link; MEMORY_MAP *Entry; =20 + MaxAddress =3D EnforceMaxAddress(MaxAddress, NewType, NumberOfPages); + if ((MaxAddress < EFI_PAGE_MASK) ||(NumberOfPages =3D=3D 0)) { return 0; } diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 1483955110..cbad48af5e 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -1535,6 +1535,22 @@ # @Prompt Maximum permitted FwVol section nesting depth (exclusive). gEfiMdeModulePkgTokenSpaceGuid.PcdFwVolDxeMaxEncapsulationDepth|0x10|UIN= T32|0x00000030 =20 + ## Maximum address that a dynamic EfiACPIReclaimMemory allocation can be= requested at + # @Prompt Maximum address for EfiACPIReclaimMemory allocations + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory|0xFFFFFFFF= FFFFFFFF|UINT64|0x30001016 + + ## Maximum address that a dynamic EfiACPIMemoryNVS allocation can be req= uested at + # @Prompt Maximum address for EfiACPIMemoryNVS allocations + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS|0xFFFFFFFFFFFF= FFFF|UINT64|0x30001017 + + ## Maximum address that a dynamic EfiRuntimeServicesCode allocation can = be requested at + # @Prompt Maximum address for EfiRuntimeServicesCode allocations + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesCode|0xFFF= FFFFFFFFFFFFF|UINT64|0x30001018 + + ## Maximum address that a dynamic EfiRuntimeServicesData allocation can = be requested at + # @Prompt Maximum address for EfiRuntimeServicesData allocations + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesData|0xFFF= FFFFFFFFFFFFF|UINT64|0x30001019 + [PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] ## This PCD defines the Console output row. The default value is 25 acco= rding to UEFI spec. # This PCD could be set to 0 then console output would be at max column= and max row. diff --git a/MdeModulePkg/MdeModulePkg.uni b/MdeModulePkg/MdeModulePkg.uni index ef9f4d97b9..0dc5c1960b 100644 --- a/MdeModulePkg/MdeModulePkg.uni +++ b/MdeModulePkg/MdeModulePkg.uni @@ -1330,3 +1330,15 @@ #string STR_gEfiMdeModulePkgTokenSpaceGuid_PcdPcieResizableBarSupport_HELP= #language en-US "Indicates if the PCIe Resizable BAR Capability Supported.=

\n" = "TRUE - PCIe Resizable BAR Capability is supported.
\= n" = "FALSE - PCIe Resizable BAR Capability is not supported.<= BR>" + +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory_= PROMPT #language en-US "Maximum address for EfiACPIReclaimMemory allocation= s" +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory_= HELP #language en-US "Maximum address that a dynamic EfiACPIReclaimMemory a= llocation can be requested at" + +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS_PROM= PT #language en-US "Maximum address for EfiACPIMemoryNVS allocations" +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS_HELP= #language en-US "Maximum address that a dynamic EfiACPIMemoryNVS allocatio= n can be requested at" + +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServices= Code_PROMPT #language en-US "Maximum address for EfiRuntimeServicesCode all= ocations" +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServices= Code_HELP #language en-US "Maximum address that a dynamic EfiRuntimeService= sCode allocation can be requested at" + +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServices= Data_PROMPT #language en-US "Maximum address for EfiRuntimeServicesData all= ocations" +#string STR_gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServices= Data_HELP #language en-US "Maximum address that a dynamic EfiRuntimeService= sData allocation can be requested at" --=20 2.16.4 Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879 -=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 (#71792): https://edk2.groups.io/g/devel/message/71792 Mute This Topic: https://groups.io/mt/80739508/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- From nobody Mon Apr 29 19:03:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+71791+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+71791+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1613679022; cv=none; d=zohomail.com; s=zohoarc; b=YRgV/MUrzUpan7JeiEzYMwQTv80t2m3xojpSSai/7dzqhI9MxuCAP2UgzlEXfXQJsmbfUFWQNBux7bN6jZpvHie1XeLwpmN9e1L/aLAw9SQSEBk/cDzpxOzBPPZh4j9D7fUgYtfFouBG/+saZdXmGGIr9XU9oQCa3F0s4mmKrVM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1613679022; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=2tanmeqG1meZzYl9TuqOVC5IFr6WnWLC55PUFp2lLa0=; b=J0QUuPsmgnNBjT5FlygcRBUKBg8MuY7T5w5BPPpnvA8rDR2iK6UwSOyEtFFTjldpdVFfveLsICmTRehipBqbfRaAdBsdLqeavvJIQmoZXhKQtn+uTaTfQ/2+mW9iU38yq8nHl8PDm7UoU2WMPoOEs0j3+jR1+n+Q4nsXfbkiNok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+71791+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1613679022489191.26848545372923; Thu, 18 Feb 2021 12:10:22 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id ZUObYY1788612xWPjEa8R7y9; Thu, 18 Feb 2021 12:10:22 -0800 X-Received: from smtp-fw-6002.amazon.com (smtp-fw-6002.amazon.com [52.95.49.90]) by mx.groups.io with SMTP id smtpd.web09.213.1613679016361606889 for ; Thu, 18 Feb 2021 12:10:16 -0800 X-IronPort-AV: E=Sophos;i="5.81,187,1610409600"; d="scan'208";a="87768271" X-Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1a-e34f1ddc.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-6002.iad6.amazon.com with ESMTP; 18 Feb 2021 20:10:08 +0000 X-Received: from EX13MTAUWC001.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1a-e34f1ddc.us-east-1.amazon.com (Postfix) with ESMTPS id 08B9CA21A2; Thu, 18 Feb 2021 20:10:06 +0000 (UTC) X-Received: from EX13D20UWC001.ant.amazon.com (10.43.162.244) by EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Feb 2021 20:10:06 +0000 X-Received: from u79c5a0a55de558.ant.amazon.com (10.43.162.213) by EX13D20UWC001.ant.amazon.com (10.43.162.244) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Feb 2021 20:10:04 +0000 From: "Alexander Graf via groups.io" To: CC: Leif Lindholm , Laszlo Ersek , "Ard Biesheuvel" , Jordan Justen , David Woodhouse , "Hendrik Borghorst" Subject: [edk2-devel] [PATCH 2/2] OvmfPkg: Make hibernation critical allocations at own ranges Date: Thu, 18 Feb 2021 21:09:53 +0100 Message-ID: <20210218200953.20943-3-graf@amazon.com> In-Reply-To: <20210218200953.20943-1-graf@amazon.com> References: <20210218200953.20943-1-graf@amazon.com> MIME-Version: 1.0 X-Originating-IP: [10.43.162.213] X-ClientProxiedBy: EX13D13UWB004.ant.amazon.com (10.43.161.218) To EX13D20UWC001.ant.amazon.com (10.43.162.244) 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,graf@amazon.com X-Gm-Message-State: mPpZCt8UnPkL6OemouBaBtfSx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1613679022; bh=cbyxvl7z+Er3ZyzLD7ic14Lw9XSTeef2QWFovGmjaHs=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=TecugeDs6AL5BqiPATmZcFeTfzM0OeCTDsdO4LiCxOrBaJpEPweVsFRRJDOmdFi/k0V fbDnQMVoD9zViP8hhOSWHbDjZ8jUrKqWzshwaPlF6Zha0KbIAeKPZPMaHmuRp9/D3EQ/k N/vnmJdnDEf3KCEFFoCTLKh++1bwxguIZzI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" Now that we have a framework available to set memory ranges for allocations that break hibernation if they move, let's push them to their own respective memory ranges. This way, they will be unaffected by boot time data allocation changes and we can thus still resume hibernated systems. Signed-off-by: Alexander Graf --- OvmfPkg/OvmfPkgIa32.dsc | 6 ++++++ OvmfPkg/OvmfPkgIa32X64.dsc | 6 ++++++ OvmfPkg/OvmfPkgX64.dsc | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index 1b8d34052b..afea65254d 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -575,6 +575,12 @@ # Point to the MdeModulePkg/Application/UiApp/UiApp.inf gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c= , 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0= x31 } =20 + # Simplify hibernation safety by putting relevant data into its own memo= ry ranges + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory|0x19000000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS|0x19100000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesCode|0x192= 00000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesData|0x193= 00000 + ##########################################################################= ###### # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Pla= tform diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 9c1aee87e7..4d1334554a 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -581,6 +581,12 @@ # Point to the MdeModulePkg/Application/UiApp/UiApp.inf gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c= , 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0= x31 } =20 + # Simplify hibernation safety by putting relevant data into its own memo= ry ranges + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory|0x19000000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS|0x19100000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesCode|0x192= 00000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesData|0x193= 00000 + ##########################################################################= ###### # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Pla= tform diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index fabb8b2f29..22cdf71f1e 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -581,6 +581,12 @@ # Point to the MdeModulePkg/Application/UiApp/UiApp.inf gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c= , 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0= x31 } =20 + # Simplify hibernation safety by putting relevant data into its own memo= ry ranges + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIReclaimMemory|0x19000000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxACPIMemoryNVS|0x19100000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesCode|0x192= 00000 + gEfiMdeModulePkgTokenSpaceGuid.PcdEnforceMaxEfiRuntimeServicesData|0x193= 00000 + ##########################################################################= ###### # # Pcd Dynamic Section - list of all EDK II PCD Entries defined by this Pla= tform --=20 2.16.4 Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879 -=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 (#71791): https://edk2.groups.io/g/devel/message/71791 Mute This Topic: https://groups.io/mt/80739507/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-