From a083afa3fe9e6b7c93d41f775bf443fd2ac6cea8 Mon Sep 17 00:00:00 2001 From: Shenglei Zhang Date: Mon, 18 Feb 2019 16:20:37 +0800 Subject: [PATCH] MdeModulePkg/PropertiesTableAttributesDxe: Remove this driver This functionality of this driver has been deprecated and no platform employs this driver. It can be removed completely. https://bugzilla.tianocore.org/show_bug.cgi?id=1475 Cc: Jian J Wang Cc: Hao Wu Cc: Ray Ni Cc: Star Zeng Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang Reviewed-by: Star Zeng Reviewed-by: Jian J Wang --- MdeModulePkg/MdeModulePkg.dsc | 1 - .../PropertiesTableAttributesDxe.c | 208 ------------------ .../PropertiesTableAttributesDxe.inf | 56 ----- .../PropertiesTableAttributesDxe.uni | 23 -- .../PropertiesTableAttributesDxeExtra.uni | 23 -- 5 files changed, 311 deletions(-) delete mode 100644 MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.c delete mode 100644 MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf delete mode 100644 MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.uni delete mode 100644 MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxeExtra.uni diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc index 4f2ac8ae89..388bca25bd 100644 --- a/MdeModulePkg/MdeModulePkg.dsc +++ b/MdeModulePkg/MdeModulePkg.dsc @@ -413,7 +413,6 @@ MdeModulePkg/Universal/EsrtDxe/EsrtDxe.inf MdeModulePkg/Universal/EsrtFmpDxe/EsrtFmpDxe.inf - MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf MdeModulePkg/Universal/FileExplorerDxe/FileExplorerDxe.inf { FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf diff --git a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.c b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.c deleted file mode 100644 index 4d1a46f64c..0000000000 --- a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.c +++ /dev/null @@ -1,208 +0,0 @@ -/** @file - This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType. - - This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType - in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set. - -Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
-This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include -#include -#include -#include -#include -#include -#include -#include - -/** - Converts a number of EFI_PAGEs to a size in bytes. - - NOTE: Do not use EFI_PAGES_TO_SIZE because it handles UINTN only. - - @param Pages The number of EFI_PAGES. - - @return The number of bytes associated with the number of EFI_PAGEs specified - by Pages. -**/ -UINT64 -EfiPagesToSize ( - IN UINT64 Pages - ) -{ - return LShiftU64 (Pages, EFI_PAGE_SHIFT); -} - -/** - Set memory attributes according to default policy. - - @param MemoryMap A pointer to the buffer in which firmware places the current memory map. - @param MemoryMapSize Size, in bytes, of the MemoryMap buffer. - @param DescriptorSize size, in bytes, of an individual EFI_MEMORY_DESCRIPTOR. -**/ -VOID -SetMemorySpaceAttributesDefault ( - IN EFI_MEMORY_DESCRIPTOR *MemoryMap, - IN UINTN MemoryMapSize, - IN UINTN DescriptorSize - ) -{ - EFI_MEMORY_DESCRIPTOR *MemoryMapEntry; - EFI_MEMORY_DESCRIPTOR *MemoryMapEnd; - EFI_STATUS Status; - - DEBUG ((EFI_D_INFO, "SetMemorySpaceAttributesDefault\n")); - - MemoryMapEntry = MemoryMap; - MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize); - while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) { - if (MemoryMapEntry->PhysicalStart < BASE_1MB) { - // - // Do not touch memory space below 1MB - // - MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize); - continue; - } - switch (MemoryMapEntry->Type) { - case EfiRuntimeServicesCode: - case EfiRuntimeServicesData: - // - // should be handled later; - // - break; - case EfiReservedMemoryType: - case EfiACPIMemoryNVS: - // - // Handle EfiReservedMemoryType and EfiACPIMemoryNVS, because there might be firmware executable there. - // - DEBUG ((EFI_D_INFO, "SetMemorySpaceAttributes - %016lx - %016lx (%016lx) ...\n", - MemoryMapEntry->PhysicalStart, - MemoryMapEntry->PhysicalStart + EfiPagesToSize (MemoryMapEntry->NumberOfPages), - MemoryMapEntry->Attribute - )); - Status = gDS->SetMemorySpaceCapabilities ( - MemoryMapEntry->PhysicalStart, - EfiPagesToSize (MemoryMapEntry->NumberOfPages), - MemoryMapEntry->Attribute | EFI_MEMORY_XP - ); - DEBUG ((EFI_D_INFO, "SetMemorySpaceCapabilities - %r\n", Status)); - break; - } - - MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize); - } - - return ; -} - -/** - Update memory attributes according to default policy. - - @param[in] Event The Event this notify function registered to. - @param[in] Context Pointer to the context data registered to the Event. -**/ -VOID -EFIAPI -UpdateMemoryAttributesDefault ( - EFI_EVENT Event, - VOID *Context - ) -{ - EFI_STATUS Status; - EFI_MEMORY_DESCRIPTOR *MemoryMap; - UINTN MemoryMapSize; - UINTN MapKey; - UINTN DescriptorSize; - UINT32 DescriptorVersion; - EFI_PROPERTIES_TABLE *PropertiesTable; - - DEBUG ((EFI_D_INFO, "UpdateMemoryAttributesDefault\n")); - Status = EfiGetSystemConfigurationTable (&gEfiPropertiesTableGuid, (VOID **) &PropertiesTable); - if (EFI_ERROR (Status)) { - goto Done; - } - - ASSERT (PropertiesTable != NULL); - - DEBUG ((EFI_D_INFO, "MemoryProtectionAttribute - 0x%016lx\n", PropertiesTable->MemoryProtectionAttribute)); - if ((PropertiesTable->MemoryProtectionAttribute & EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) == 0) { - goto Done; - } - - // - // Get the EFI memory map. - // - MemoryMapSize = 0; - MemoryMap = NULL; - Status = gBS->GetMemoryMap ( - &MemoryMapSize, - MemoryMap, - &MapKey, - &DescriptorSize, - &DescriptorVersion - ); - ASSERT (Status == EFI_BUFFER_TOO_SMALL); - do { - MemoryMap = (EFI_MEMORY_DESCRIPTOR *) AllocatePool (MemoryMapSize); - ASSERT (MemoryMap != NULL); - Status = gBS->GetMemoryMap ( - &MemoryMapSize, - MemoryMap, - &MapKey, - &DescriptorSize, - &DescriptorVersion - ); - if (EFI_ERROR (Status)) { - FreePool (MemoryMap); - } - } while (Status == EFI_BUFFER_TOO_SMALL); - ASSERT_EFI_ERROR (Status); - - SetMemorySpaceAttributesDefault (MemoryMap, MemoryMapSize, DescriptorSize); - -Done: - gBS->CloseEvent (Event); - - return ; -} - -/** - The entrypoint of properties table attribute driver. - - @param ImageHandle The firmware allocated handle for the EFI image. - @param SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS It always returns EFI_SUCCESS. - -**/ -EFI_STATUS -EFIAPI -InitializePropertiesTableAttributesDxe ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EFI_STATUS Status; - EFI_EVENT ReadyToBootEvent; - - Status = gBS->CreateEventEx ( - EVT_NOTIFY_SIGNAL, - TPL_CALLBACK, - UpdateMemoryAttributesDefault, - NULL, - &gEfiEventReadyToBootGuid, - &ReadyToBootEvent - ); - ASSERT_EFI_ERROR (Status); - - return EFI_SUCCESS; -} diff --git a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf deleted file mode 100644 index a8edf854bb..0000000000 --- a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.inf +++ /dev/null @@ -1,56 +0,0 @@ -## @file -# This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType. -# -# This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType -# in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set. -# -# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = PropertiesTableAttributesDxe - MODULE_UNI_FILE = PropertiesTableAttributesDxe.uni - FILE_GUID = AA48FBB2-9F87-4DFD-B416-575938F0C8F4 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = InitializePropertiesTableAttributesDxe - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 EBC -# - -[Sources] - PropertiesTableAttributesDxe.c - -[Packages] - MdePkg/MdePkg.dec - -[LibraryClasses] - UefiDriverEntryPoint - UefiBootServicesTableLib - DxeServicesTableLib - DebugLib - UefiLib - MemoryAllocationLib - -[Guids] - gEfiEventReadyToBootGuid ## CONSUMES ## Event - gEfiPropertiesTableGuid ## CONSUMES ## SystemTable - -[Depex] - TRUE - -[UserExtensions.TianoCore."ExtraFiles"] - PropertiesTableAttributesDxeExtra.uni diff --git a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.uni b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.uni deleted file mode 100644 index 9df097f7ce..0000000000 --- a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxe.uni +++ /dev/null @@ -1,23 +0,0 @@ -// /** @file -// This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType. -// -// This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType -// in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set. -// -// Copyright (c) 2015, Intel Corporation. All rights reserved.
-// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// **/ - - -#string STR_MODULE_ABSTRACT #language en-US "This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType." - -#string STR_MODULE_DESCRIPTION #language en-US "This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set." - diff --git a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxeExtra.uni b/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxeExtra.uni deleted file mode 100644 index e107e78523..0000000000 --- a/MdeModulePkg/Universal/PropertiesTableAttributesDxe/PropertiesTableAttributesDxeExtra.uni +++ /dev/null @@ -1,23 +0,0 @@ -// /** @file -// This module sets default policy for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType. -// -// This module sets EFI_MEMORY_XP for attributes of EfiACPIMemoryNVS and EfiReservedMemoryType -// in UEFI memory map, if and only of PropertiesTable is published and has BIT0 set. -// -// Copyright (c) 2015, Intel Corporation. All rights reserved.
-// -// This program and the accompanying materials -// are licensed and made available under the terms and conditions of the BSD License -// which accompanies this distribution. The full text of the license may be found at -// http://opensource.org/licenses/bsd-license.php -// -// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -// **/ - -#string STR_PROPERTIES_MODULE_NAME -#language en-US -"PropertiesTable Attributes Setting DXE Driver" - -