From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by mx.groups.io with SMTP id smtpd.web11.1077.1686015477931414105 for ; Mon, 05 Jun 2023 18:37:58 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: loongson.cn, ip: 114.242.206.163, mailfrom: lichao@loongson.cn) Received: from loongson.cn (unknown [10.40.24.149]) by gateway (Coremail) with SMTP id _____8AxLOvai35kUEkAAA--.171S3; Tue, 06 Jun 2023 09:28:58 +0800 (CST) Received: from [10.40.24.149] (unknown [10.40.24.149]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxJeTai35kl4gBAA--.6799S3; Tue, 06 Jun 2023 09:28:58 +0800 (CST) Message-ID: Date: Tue, 6 Jun 2023 09:28:58 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [edk2-devel] [edk2-platforms] Platform/Loongson: Pre-allocate 0-4K memory during the Pei phase To: devel@edk2.groups.io, lixianglai@loongson.cn Cc: Ard Biesheuvel , Bibo Mao , Leif Lindholm , Liming Gao , Michael D Kinney References: From: "Chao Li" In-Reply-To: X-CM-TRANSID: AQAAf8AxJeTai35kl4gBAA--.6799S3 X-CM-SenderInfo: xolfxt3r6o00pqjv00gofq/1tbiAQANCGR8fwAQ8AAzsw X-Coremail-Antispam: 1Uk129KBj93XoW7WFyDGw4rtryxWr13tFyrGrX_yoW8tFW5pr yUu3Z7try5Gryqvw4rAa4DWa1qyryFkrykJrs8Zw13u3sxX3Z8W34vvF48Ar13A345ta40 qrW09w15uF4Du3gCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnRJUUUkKb4IE77IF4wAF F20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r 1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAF wI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv67 AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UM2AIxVAIcxkEcVAq07x2 0xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx1lYx0E2Ix0cI8IcVAFwI0_Jrv_JF1lYx 0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwCjr7xv wVCIw2I0I7xG6c02F41lc7I2V7IY0VAS07AlzVAYIcxG8wCF04k20xvY0x0EwIxGrwCFx2 IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r106r1rMI8I3I0E7480Y4vE14v2 6r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67 AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IY s7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr 0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU1LZ23UUUUU== Content-Type: multipart/alternative; boundary="------------ArtHDxa0lHOnm93KOqF31Ro5" --------------ArtHDxa0lHOnm93KOqF31Ro5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Reviewed-by: Chao Li Thanks, Chao 在 2023/6/1 19:19, xianglai 写道: > When 0 address protection is enabled, > 0-4k memory needs to be preallocated to > prevent UEFI applications from allocating use, > such as grub. > > Cc: Ard Biesheuvel > Cc: Bibo Mao > Cc: Chao Li > Cc: Leif Lindholm > Cc: Liming Gao > Cc: Michael D Kinney > Signed-off-by: xianglai li > --- > .../LoongArchQemuPkg/PlatformPei/MemDetect.c | 13 +++++++++++++ > .../LoongArchQemuPkg/PlatformPei/PlatformPei.inf | 1 + > 2 files changed, 14 insertions(+) > > diff --git a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c > index fad4cff8d8..7e6a4a3aa9 100644 > --- a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c > +++ b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c > @@ -101,4 +101,17 @@ InitializeRamRegions ( > > AddMemoryRangeHob ( pEntry->BaseAddr, pEntry->BaseAddr + pEntry->Length); > } > + > + // > + //When 0 address protection is enabled, > + //0-4k memory needs to be preallocated to prevent UEFI applications from allocating use, > + //such as grub > + // > + if (PcdGet8 (PcdNullPointerDetectionPropertyMask) & BIT0) { > + BuildMemoryAllocationHob ( > + 0, > + EFI_PAGE_SIZE, > + EfiBootServicesData > + ); > + } > } > diff --git a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf > index 268efac585..6cc3513b63 100644 > --- a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf > +++ b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf > @@ -59,6 +59,7 @@ > gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreeBase > gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreePadding > gLoongArchQemuPkgTokenSpaceGuid.PcdRtcBaseAddress > + gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask > > [FixedPcd] > gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase --------------ArtHDxa0lHOnm93KOqF31Ro5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Reviewed-by: Chao Li <lichao@loongson.cn>


Thanks,
Chao
在 2023/6/1 19:19, xianglai 写道:
When 0 address protection is enabled,
0-4k memory needs to be preallocated to
prevent UEFI applications from allocating use,
such as grub.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Bibo Mao <maobibo@loongson.cn>
Cc: Chao Li <lichao@loongson.cn>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: xianglai li <lixianglai@loongson.cn>
---
 .../LoongArchQemuPkg/PlatformPei/MemDetect.c        | 13 +++++++++++++
 .../LoongArchQemuPkg/PlatformPei/PlatformPei.inf    |  1 +
 2 files changed, 14 insertions(+)

diff --git a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c
index fad4cff8d8..7e6a4a3aa9 100644
--- a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c
+++ b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/MemDetect.c
@@ -101,4 +101,17 @@ InitializeRamRegions (
 
     AddMemoryRangeHob ( pEntry->BaseAddr, pEntry->BaseAddr + pEntry->Length);
   }
+
+  //
+  //When 0 address protection is enabled,
+  //0-4k memory needs to be preallocated to prevent UEFI applications from allocating use,
+  //such as grub
+  //
+  if (PcdGet8 (PcdNullPointerDetectionPropertyMask) & BIT0) {
+    BuildMemoryAllocationHob (
+          0,
+          EFI_PAGE_SIZE,
+          EfiBootServicesData
+          );
+  }
 }
diff --git a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf
index 268efac585..6cc3513b63 100644
--- a/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf
+++ b/Platform/Loongson/LoongArchQemuPkg/PlatformPei/PlatformPei.inf
@@ -59,6 +59,7 @@
   gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreeBase
   gLoongArchQemuPkgTokenSpaceGuid.PcdDeviceTreePadding
   gLoongArchQemuPkgTokenSpaceGuid.PcdRtcBaseAddress
+  gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask
 
 [FixedPcd]
   gLoongArchQemuPkgTokenSpaceGuid.PcdFlashDxeFvBase
--------------ArtHDxa0lHOnm93KOqF31Ro5--