summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PrmPkg/Include/PrmModule.h20
-rw-r--r--PrmPkg/Include/PrmModuleUpdate.h46
-rw-r--r--PrmPkg/PrmLoaderDxe/PrmAcpiTable.h2
-rw-r--r--PrmPkg/PrmLoaderDxe/PrmLoaderDxe.c18
-rw-r--r--PrmPkg/Readme.md37
5 files changed, 18 insertions, 105 deletions
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 <PrmDataBuffer.h>
#include <PrmExportDescriptor.h>
#include <PrmMmio.h>
-#include <PrmModuleUpdate.h>
#include <PrmOsServices.h>
/**
@@ -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 <Uefi.h>
-
-#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 <PrmContextBuffer.h>
#include <PrmMmio.h>
-#include <PrmModuleUpdate.h>
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 ............<P..
+ 0000000000005010: 01 00 00 00 02 00 00 00 02 00 00 00 28 50 00 00 ............(P..
+ 0000000000005020: 30 50 00 00 38 50 00 00 78 13 00 00 20 40 00 00 0P..8P..x... @..
+ 0000000000005030: 5D 50 00 00 7C 50 00 00 00 00 01 00 50 72 6D 53 ]P..|P......PrmS
+ 0000000000005040: 61 6D 70 6C 65 43 6F 6E 74 65 78 74 42 75 66 66 ampleContextBuff
+ 0000000000005050: 65 72 4D 6F 64 75 6C 65 2E 64 6C 6C 00 44 75 6D erModule.dll.Dum
+ 0000000000005060: 70 53 74 61 74 69 63 44 61 74 61 42 75 66 66 65 pStaticDataBuffe
+ 0000000000005070: 72 50 72 6D 48 61 6E 64 6C 65 72 00 50 72 6D 4D rPrmHandler.PrmM
+ 0000000000005080: 6F 64 75 6C 65 45 78 70 6F 72 74 44 65 73 63 72 oduleExportDescr
+ 0000000000005090: 69 70 74 6F 72 00 iptor.
00000000 characteristics
FFFFFFFF time date stamp
- 0.10 version
+ 0.00 version
1 ordinal base
- 3 number of functions
- 3 number of names
+ 2 number of functions
+ 2 number of names
ordinal hint RVA name
+
1 0 00001378 DumpStaticDataBufferPrmHandler
- 2 1 00004030 PrmModuleExportDescriptor
- 3 2 00004020 PrmModuleUpdateLock
+ 2 1 00004020 PrmModuleExportDescriptor
+
```
### PRM Image Format
PRM modules are ultimately PE/COFF images. However, when packaged in firmware the PE/COFF image is placed into a