MdeModulePkg: Add the EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE attribute

Add the EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE resource attribute as
per the PI 1.8 spec. This flag is used to indicate that the memory
should be treated as special purpose memory (SPM).

Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
This commit is contained in:
Patrick Payne 2024-05-15 10:42:03 -07:00 committed by mergify[bot]
parent 2625e91963
commit af2a04699d
1 changed files with 8 additions and 1 deletions

View File

@ -26,7 +26,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
EFI_RESOURCE_ATTRIBUTE_16_BIT_IO | \
EFI_RESOURCE_ATTRIBUTE_32_BIT_IO | \
EFI_RESOURCE_ATTRIBUTE_64_BIT_IO | \
EFI_RESOURCE_ATTRIBUTE_PERSISTENT )
EFI_RESOURCE_ATTRIBUTE_PERSISTENT | \
EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE )
#define TESTED_MEMORY_ATTRIBUTES (EFI_RESOURCE_ATTRIBUTE_PRESENT | \
EFI_RESOURCE_ATTRIBUTE_INITIALIZED | \
@ -2668,6 +2669,12 @@ CoreInitializeGcdServices (
GcdMemoryType = EfiGcdMemoryTypePersistent;
}
// Mark special purpose memory as system memory, if it was system memory in the HOB
// However, if this is also marked as persistent, let persistent take precedence
if ((ResourceHob->ResourceAttribute & EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE) == EFI_RESOURCE_ATTRIBUTE_SPECIAL_PURPOSE) {
GcdMemoryType = EfiGcdMemoryTypeSystemMemory;
}
break;
case EFI_RESOURCE_MEMORY_MAPPED_IO:
case EFI_RESOURCE_FIRMWARE_DEVICE: