From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atlmailgw2.ami.com (atlmailgw2.ami.com []) by mx.groups.io with SMTP id smtpd.web10.6114.1593723126518679449 for ; Thu, 02 Jul 2020 13:52:10 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: ami.com, ip: , mailfrom: oleksiyy@ami.com) X-AuditID: ac10606f-4dbff70000003ed3-02-5efe48f6872d Received: from atlms1.us.megatrends.com (atlms1.us.megatrends.com [172.16.96.144]) (using TLS with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client did not present a certificate) by atlmailgw2.ami.com (Symantec Messaging Gateway) with SMTP id 0B.C1.16083.6F84EFE5; Thu, 2 Jul 2020 16:52:06 -0400 (EDT) Received: from Oleksiy77.us.megatrends.com (172.16.97.158) by atlms1.us.megatrends.com (172.16.96.144) with Microsoft SMTP Server id 14.3.468.0; Thu, 2 Jul 2020 16:50:46 -0400 From: "Oleksiy Yakovlev" To: CC: , , , , , , , Subject: [PATCH V3 4/4] UefiCpuPkg: Add New Memory Attributes Date: Thu, 2 Jul 2020 16:50:39 -0400 Message-ID: <20200702205039.52400-5-oleksiyy@ami.com> X-Mailer: git-send-email 2.9.0.windows.1 In-Reply-To: <20200702205039.52400-1-oleksiyy@ami.com> References: <20200702205039.52400-1-oleksiyy@ami.com> MIME-Version: 1.0 Return-Path: oleksiyy@ami.com X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBIsWRmVeSWpSXmKPExsWyRiBhgu43j39xBl2rNCy2blO3aJ8wm81i 2bEdLBYr7m1gt+jo+MdkMX27i8WX1e8ZHdg9tn+/wOixeM9LJo/3+66yBTBHNTDaJObl5Zck lqQqpKQWJ9sqBRRlliUmVyopZKbYKhkqKRTkJCan5qbmldgqJRYUpOalKNlxKWAAG6CyzDyF 1Lzk/JTMvHRbJc9gf10LC1NLXUMlu5CMVIXMvLT8otzEksz8PIXk/LwSoOrUFKCoQkI3Z8aM aT/ZCt5rVDSdWcjSwPhWtouRk0NCwETi9qYPLF2MXBxCAruYJE4vOsgM4WxmlLjx6xkzSBWb gKbEgWNTGEFsEQEpiSkHZjKBFDEL7GGU6Hl9ihUkISxgK9Hz9TsbiM0ioCLxdnI7mM0rYCrx 6vVNVoh1GhLT1txlArE5Bcwkehe0gg0VAqo5tP8gK0S9oMTJmU9YQGxmAQmJgy9eMEPUyEq0 HX/OPoGRfxaSsllIyhYwMq1iFEosyclNzMxJLzfSS8zN1EvOz93ECInG/B2MHz+aH2Jk4mA8 xCjBwawkwpug+i9OiDclsbIqtSg/vqg0J7X4EKMT0AMTmaW4QUEIjJN4YwMDKVEYx9DEzMTc yNzQ0sTc2FhJnHfS2jVxQgLpwLjNTk0tSC2CGcLEwSnVwLhuieTFh8eXdKQqyqQ1Ma054Xa/ +3iNyWO995Ud7We1X2xInv35S73Kvjv/fkw+/WbKszXXWpzO3s2KTjYwnuGcovcxYsVM+ZdW ffo10UpOL0vyy2UiRGeK3Zogp/34dPNuh6rlhdlb97V0duSGG51ze7LaXthh0quqMq/Dbm9i 7yTvzlfjUVRiKc5INNRiLipOBAAlEFoG2wIAAA== Content-Type: text/plain 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 Reviewed-by: Laszlo Ersek --- UefiCpuPkg/CpuDxe/CpuDxe.c | 11 ++++------- UefiCpuPkg/CpuDxe/CpuDxe.h | 13 ------------- UefiCpuPkg/CpuDxe/CpuPageTable.c | 6 +++--- UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c | 2 +- 4 files changed, 8 insertions(+), 24 deletions(-) diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.c b/UefiCpuPkg/CpuDxe/CpuDxe.c index a571fc3..52cc26e 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.c +++ b/UefiCpuPkg/CpuDxe/CpuDxe.c @@ -10,9 +10,6 @@ #include "CpuMp.h" #include "CpuPageTable.h" -#define CACHE_ATTRIBUTE_MASK (EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_WP) -#define MEMORY_ATTRIBUTE_MASK (EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_RO) - // // Global Variables // @@ -417,8 +414,8 @@ CpuSetMemoryAttributes ( return EFI_SUCCESS; } - CacheAttributes = Attributes & CACHE_ATTRIBUTE_MASK; - MemoryAttributes = Attributes & MEMORY_ATTRIBUTE_MASK; + CacheAttributes = Attributes & EFI_CACHE_ATTRIBUTE_MASK; + MemoryAttributes = Attributes & EFI_MEMORY_ATTRIBUTE_MASK; if (Attributes != (CacheAttributes | MemoryAttributes)) { return EFI_INVALID_PARAMETER; @@ -677,7 +674,7 @@ SetGcdMemorySpaceAttributes ( gDS->SetMemorySpaceAttributes ( RegionStart, RegionLength, - (MemorySpaceMap[Index].Attributes & ~EFI_MEMORY_CACHETYPE_MASK) | (MemorySpaceMap[Index].Capabilities & Attributes) + (MemorySpaceMap[Index].Attributes & ~EFI_CACHE_ATTRIBUTE_MASK) | (MemorySpaceMap[Index].Capabilities & Attributes) ); } @@ -754,7 +751,7 @@ RefreshMemoryAttributesFromMtrr ( gDS->SetMemorySpaceAttributes ( MemorySpaceMap[Index].BaseAddress, MemorySpaceMap[Index].Length, - (MemorySpaceMap[Index].Attributes & ~EFI_MEMORY_CACHETYPE_MASK) | + (MemorySpaceMap[Index].Attributes & ~EFI_CACHE_ATTRIBUTE_MASK) | (MemorySpaceMap[Index].Capabilities & DefaultAttributes) ); } diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.h b/UefiCpuPkg/CpuDxe/CpuDxe.h index b30a896..9771ec8 100644 --- a/UefiCpuPkg/CpuDxe/CpuDxe.h +++ b/UefiCpuPkg/CpuDxe/CpuDxe.h @@ -39,19 +39,6 @@ #include #include -#define EFI_MEMORY_CACHETYPE_MASK (EFI_MEMORY_UC | \ - EFI_MEMORY_WC | \ - EFI_MEMORY_WT | \ - EFI_MEMORY_WB | \ - EFI_MEMORY_UCE | \ - EFI_MEMORY_WP \ - ) - -#define EFI_MEMORY_PAGETYPE_MASK (EFI_MEMORY_RP | \ - EFI_MEMORY_XP | \ - EFI_MEMORY_RO \ - ) - #define HEAP_GUARD_NONSTOP_MODE \ ((PcdGet8 (PcdHeapGuardPropertyMask) & (BIT6|BIT4|BIT1|BIT0)) > BIT6) diff --git a/UefiCpuPkg/CpuDxe/CpuPageTable.c b/UefiCpuPkg/CpuDxe/CpuPageTable.c index 0a02cb3..06ee1b8 100644 --- a/UefiCpuPkg/CpuDxe/CpuPageTable.c +++ b/UefiCpuPkg/CpuDxe/CpuPageTable.c @@ -717,7 +717,7 @@ ConvertMemoryPageAttributes ( return RETURN_INVALID_PARAMETER; } - if ((Attributes & ~(EFI_MEMORY_RP | EFI_MEMORY_RO | EFI_MEMORY_XP)) != 0) { + if ((Attributes & ~EFI_MEMORY_ATTRIBUTE_MASK) != 0) { DEBUG ((DEBUG_ERROR, "Attributes(0x%lx) has unsupported bit\n", Attributes)); return EFI_UNSUPPORTED; } @@ -1018,9 +1018,9 @@ RefreshGcdMemoryAttributesFromPaging ( Length = MIN (PageLength, MemorySpaceLength); if (Attributes != (MemorySpaceMap[Index].Attributes & - EFI_MEMORY_PAGETYPE_MASK)) { + EFI_MEMORY_ATTRIBUTE_MASK)) { NewAttributes = (MemorySpaceMap[Index].Attributes & - ~EFI_MEMORY_PAGETYPE_MASK) | Attributes; + ~EFI_MEMORY_ATTRIBUTE_MASK) | Attributes; Status = gDS->SetMemorySpaceAttributes ( BaseAddress, Length, diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c index 9c5a92a..ebfc46a 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c @@ -435,7 +435,7 @@ ConvertMemoryPageAttributes ( EFI_PHYSICAL_ADDRESS MaximumSupportMemAddress; ASSERT (Attributes != 0); - ASSERT ((Attributes & ~(EFI_MEMORY_RP | EFI_MEMORY_RO | EFI_MEMORY_XP)) == 0); + ASSERT ((Attributes & ~EFI_MEMORY_ATTRIBUTE_MASK) == 0); ASSERT ((BaseAddress & (SIZE_4KB - 1)) == 0); ASSERT ((Length & (SIZE_4KB - 1)) == 0); -- 2.9.0.windows.1 Please consider the environment before printing this email. The information contained in this message may be confidential and proprietary to American Megatrends (AMI). This communication is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. Please promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and then delete or destroy all copies of the transmission.