diff --git a/PrmPkg/Include/PrmModule.h b/PrmPkg/Include/PrmModule.h index f40fb42a2b..d7047d8eec 100644 --- a/PrmPkg/Include/PrmModule.h +++ b/PrmPkg/Include/PrmModule.h @@ -15,7 +15,6 @@ #include #include #include -#include #include /** @@ -46,23 +45,4 @@ IN PRM_CONTEXT_BUFFER *ContextBuffer \ ) \ -/** - A macro that declares the PRM Module Update Lock Descriptor for a PRM Module. - - This macro is intended to be used once in a PRM Module so the module update lock descriptor is - exported for the module. - -**/ -#define PRM_MODULE_UPDATE_LOCK_EXPORT \ - PRM_EXPORT_API PRM_MODULE_UPDATE_LOCK_DESCRIPTOR PRM_MODULE_UPDATE_LOCK_DESCRIPTOR_NAME = { \ - PRM_MODULE_UPDATE_LOCK_DESCRIPTOR_SIGNATURE, \ - PRM_MODULE_UPDATE_LOCK_REVISION, \ - { 0 } \ - } \ - -// -// A PRM module is required to export the PRM Module Update Lock -// -PRM_MODULE_UPDATE_LOCK_EXPORT; - #endif diff --git a/PrmPkg/Include/PrmModuleUpdate.h b/PrmPkg/Include/PrmModuleUpdate.h deleted file mode 100644 index fde97eff04..0000000000 --- a/PrmPkg/Include/PrmModuleUpdate.h +++ /dev/null @@ -1,46 +0,0 @@ -/** @file - - Definition for the Platform Runtime Mechanism (PRM) module update structures. - - Copyright (c) Microsoft Corporation - SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef PRM_MODULE_UPDATE_H_ -#define PRM_MODULE_UPDATE_H_ - -#include - -#define PRM_MODULE_UPDATE_LOCK_DESCRIPTOR_NAME PrmModuleUpdateLock -#define PRM_MODULE_UPDATE_LOCK_DESCRIPTOR_SIGNATURE SIGNATURE_64 ('P', 'R', 'M', '_', 'M', 'U', 'L', '_') -#define PRM_MODULE_UPDATE_LOCK_REVISION 0x0 - -#pragma pack(push, 1) - -/// -/// Maintains the PRM Module Update Lock state -/// -typedef union { - /// - /// Individual bit fields - /// - struct { - UINT8 Acquired : 1; ///< [0] - If 1 lock is acquired. If 0 lock is released. - UINT8 Reserved : 7; ///< [7:1] - Reserved - } Bits; - /// - /// All bit fields as an 8-bit value - /// - UINT8 Uint8; -} PRM_MODULE_UPDATE_LOCK; - -typedef struct { - UINT64 Signature; - UINT16 Revision; - PRM_MODULE_UPDATE_LOCK Lock; -} PRM_MODULE_UPDATE_LOCK_DESCRIPTOR; - -#pragma pack(pop) - -#endif diff --git a/PrmPkg/PrmLoaderDxe/PrmAcpiTable.h b/PrmPkg/PrmLoaderDxe/PrmAcpiTable.h index 8a9c82347d..ca09be3892 100644 --- a/PrmPkg/PrmLoaderDxe/PrmAcpiTable.h +++ b/PrmPkg/PrmLoaderDxe/PrmAcpiTable.h @@ -55,8 +55,6 @@ typedef struct { UINT16 HandlerCount; ///< Number of entries in the Handler Info array UINT32 HandlerInfoOffset; ///< Offset in bytes from the beginning of this ///< structure to the Handler Info array - UINT64 ModuleUpdateLock; ///< Physical address of the PRM Module Update Lock - ///< descriptor (PRM_MODULE_UPDATE_LOCK_DESCRIPTOR *) UINT64 RuntimeMmioRanges; ///< Physical address of the PRM MMIO Ranges ///< structure (PRM_MODULE_RUNTIME_MMIO_RANGES *) PRM_HANDLER_INFORMATION_STRUCT HandlerInfoStructure[1]; diff --git a/PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c b/PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c index e45f8685e8..e2a838ea29 100644 --- a/PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c +++ b/PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c @@ -26,7 +26,6 @@ #include #include -#include LIST_ENTRY mPrmModuleList; @@ -707,23 +706,6 @@ ProcessPrmModules ( ); ASSERT_EFI_ERROR (Status); - Status = GetExportEntryAddress ( - PRM_STRING (PRM_MODULE_UPDATE_LOCK_DESCRIPTOR_NAME), - CurrentImageAddress, - CurrentImageExportDirectory, - (EFI_PHYSICAL_ADDRESS *) &(CurrentModuleInfoStruct->ModuleUpdateLock) - ); - ASSERT_EFI_ERROR (Status); - if (!EFI_ERROR (Status)) { - DEBUG (( - DEBUG_INFO, - " %a %a: Found PRM module update lock physical address at 0x%016x.\n", - _DBGMSGID_, - __FUNCTION__, - CurrentModuleInfoStruct->ModuleUpdateLock - )); - } - // It is currently valid for a PRM module not to use a context buffer Status = GetModuleContextBuffers ( ByModuleGuid, diff --git a/PrmPkg/Readme.md b/PrmPkg/Readme.md index 00ef41bc5f..f430006905 100644 --- a/PrmPkg/Readme.md +++ b/PrmPkg/Readme.md @@ -153,34 +153,33 @@ motivation behind using PE/COFF export tables to expose PRM module information a definition consistent between firmware and OS load. ### PRM Module Exports -A PRM module must contain at least three exports: A PRM Module Export Descriptor, a PRM Module Update Lock Descriptor, -and at least one PRM handler. Here's an example of an export table from a PRM module that has a single PRM handler: +A PRM module must contain at least two exports: A PRM Module Export Descriptor and at least one PRM handler. Here's +an example of an export table from a PRM module that has a single PRM handler: ``` - 0000000000005000: 00 00 00 00 FF FF FF FF 00 00 00 00 46 50 00 00 ....ÿÿÿÿ....FP.. - 0000000000005010: 01 00 00 00 03 00 00 00 03 00 00 00 28 50 00 00 ............(P.. - 0000000000005020: 34 50 00 00 40 50 00 00 78 13 00 00 30 40 00 00 4P..@P..x...0@.. - 0000000000005030: 20 40 00 00 67 50 00 00 86 50 00 00 A0 50 00 00 @..gP...P...P.. - 0000000000005040: 00 00 01 00 02 00 50 72 6D 53 61 6D 70 6C 65 43 ......PrmSampleC - 0000000000005050: 6F 6E 74 65 78 74 42 75 66 66 65 72 4D 6F 64 75 ontextBufferModu - 0000000000005060: 6C 65 2E 64 6C 6C 00 44 75 6D 70 53 74 61 74 69 le.dll.DumpStati - 0000000000005070: 63 44 61 74 61 42 75 66 66 65 72 50 72 6D 48 61 cDataBufferPrmHa - 0000000000005080: 6E 64 6C 65 72 00 50 72 6D 4D 6F 64 75 6C 65 45 ndler.PrmModuleE - 0000000000005090: 78 70 6F 72 74 44 65 73 63 72 69 70 74 6F 72 00 xportDescriptor. - 00000000000050A0: 50 72 6D 4D 6F 64 75 6C 65 55 70 64 61 74 65 4C PrmModuleUpdateL - 00000000000050B0: 6F 63 6B 00 ock. + 0000000000005000: 00 00 00 00 FF FF FF FF 00 00 00 00 3C 50 00 00 ............