]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg: Add New Memory Attributes
authorOleksiy Yakovlev <oleksiyy@ami.com>
Thu, 2 Jul 2020 20:50:39 +0000 (16:50 -0400)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 15 Jul 2020 14:58:25 +0000 (14:58 +0000)
Add usage of EFI_MEMORY_SP and EFI_MEMORY_CPU_CRYPTO
attributes introduced in UEFI 2.8.
(UEFI 2.8, mantis 1919 and 1872).
Use attributes bitmasks, defined in MdePkg.

Signed-off-by: Oleksiy Yakovlev <oleksiyy@ami.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200702205039.52400-5-oleksiyy@ami.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/CpuDxe/CpuDxe.c
UefiCpuPkg/CpuDxe/CpuDxe.h
UefiCpuPkg/CpuDxe/CpuPageTable.c
UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c

index a571fc3b175076cf07a99f27606e5f7831179f24..52cc26eaafb3d496fc671719f482e9a630c6f4da 100644 (file)
@@ -10,9 +10,6 @@
 #include "CpuMp.h"\r
 #include "CpuPageTable.h"\r
 \r
-#define CACHE_ATTRIBUTE_MASK   (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP)\r
-#define MEMORY_ATTRIBUTE_MASK  (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO)\r
-\r
 //\r
 // Global Variables\r
 //\r
@@ -417,8 +414,8 @@ CpuSetMemoryAttributes (
     return EFI_SUCCESS;\r
   }\r
 \r
-  CacheAttributes = Attributes & CACHE_ATTRIBUTE_MASK;\r
-  MemoryAttributes = Attributes & MEMORY_ATTRIBUTE_MASK;\r
+  CacheAttributes = Attributes & EFI_CACHE_ATTRIBUTE_MASK;\r
+  MemoryAttributes = Attributes & EFI_MEMORY_ATTRIBUTE_MASK;\r
 \r
   if (Attributes != (CacheAttributes | MemoryAttributes)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -677,7 +674,7 @@ SetGcdMemorySpaceAttributes (
     gDS->SetMemorySpaceAttributes (\r
            RegionStart,\r
            RegionLength,\r
-           (MemorySpaceMap[Index].Attributes & ~EFI_MEMORY_CACHETYPE_MASK) | (MemorySpaceMap[Index].Capabilities & Attributes)\r
+           (MemorySpaceMap[Index].Attributes & ~EFI_CACHE_ATTRIBUTE_MASK) | (MemorySpaceMap[Index].Capabilities & Attributes)\r
            );\r
   }\r
 \r
@@ -754,7 +751,7 @@ RefreshMemoryAttributesFromMtrr (
     gDS->SetMemorySpaceAttributes (\r
            MemorySpaceMap[Index].BaseAddress,\r
            MemorySpaceMap[Index].Length,\r
-           (MemorySpaceMap[Index].Attributes & ~EFI_MEMORY_CACHETYPE_MASK) |\r
+           (MemorySpaceMap[Index].Attributes & ~EFI_CACHE_ATTRIBUTE_MASK) |\r
            (MemorySpaceMap[Index].Capabilities & DefaultAttributes)\r
            );\r
   }\r
index b30a89675ef7ae6d8a5cde6e5caea7135fd30034..9771ec8336fcbd9d5f872491aee9a76fe0334d11 100644 (file)
 #include <Guid/IdleLoopEvent.h>\r
 #include <Guid/VectorHandoffTable.h>\r
 \r
-#define EFI_MEMORY_CACHETYPE_MASK     (EFI_MEMORY_UC  | \\r
-                                       EFI_MEMORY_WC  | \\r
-                                       EFI_MEMORY_WT  | \\r
-                                       EFI_MEMORY_WB  | \\r
-                                       EFI_MEMORY_UCE | \\r
-                                       EFI_MEMORY_WP    \\r
-                                       )\r
-\r
-#define EFI_MEMORY_PAGETYPE_MASK      (EFI_MEMORY_RP  | \\r
-                                       EFI_MEMORY_XP  | \\r
-                                       EFI_MEMORY_RO    \\r
-                                       )\r
-\r
 #define HEAP_GUARD_NONSTOP_MODE       \\r
         ((PcdGet8 (PcdHeapGuardPropertyMask) & (BIT6|BIT4|BIT1|BIT0)) > BIT6)\r
 \r
index 0a02cb3f6b7e1606536126368738d04c5ed74f7a..06ee1b8231716097759bff917f72f06aa954e1e9 100644 (file)
@@ -717,7 +717,7 @@ ConvertMemoryPageAttributes (
     return RETURN_INVALID_PARAMETER;\r
   }\r
 \r
-  if ((Attributes & ~(EFI_MEMORY_RP | EFI_MEMORY_RO | EFI_MEMORY_XP)) != 0) {\r
+  if ((Attributes & ~EFI_MEMORY_ATTRIBUTE_MASK) != 0) {\r
     DEBUG ((DEBUG_ERROR, "Attributes(0x%lx) has unsupported bit\n", Attributes));\r
     return EFI_UNSUPPORTED;\r
   }\r
@@ -1018,9 +1018,9 @@ RefreshGcdMemoryAttributesFromPaging (
 \r
       Length = MIN (PageLength, MemorySpaceLength);\r
       if (Attributes != (MemorySpaceMap[Index].Attributes &\r
-                         EFI_MEMORY_PAGETYPE_MASK)) {\r
+                         EFI_MEMORY_ATTRIBUTE_MASK)) {\r
         NewAttributes = (MemorySpaceMap[Index].Attributes &\r
-                         ~EFI_MEMORY_PAGETYPE_MASK) | Attributes;\r
+                         ~EFI_MEMORY_ATTRIBUTE_MASK) | Attributes;\r
         Status = gDS->SetMemorySpaceAttributes (\r
                         BaseAddress,\r
                         Length,\r
index 9c5a92af6479d54e913bdd285cef01eb15875b45..ebfc46ad459bde22960fc6536a0ad5e2f840a186 100644 (file)
@@ -435,7 +435,7 @@ ConvertMemoryPageAttributes (
   EFI_PHYSICAL_ADDRESS              MaximumSupportMemAddress;\r
 \r
   ASSERT (Attributes != 0);\r
-  ASSERT ((Attributes & ~(EFI_MEMORY_RP | EFI_MEMORY_RO | EFI_MEMORY_XP)) == 0);\r
+  ASSERT ((Attributes & ~EFI_MEMORY_ATTRIBUTE_MASK) == 0);\r
 \r
   ASSERT ((BaseAddress & (SIZE_4KB - 1)) == 0);\r
   ASSERT ((Length & (SIZE_4KB - 1)) == 0);\r