[edk2-devel] [PATCH v3 02/14] ArmPkg/ArmMmuStandaloneMmLib: Update to match ArmMmuLib

Bret Barkelew bret at corthon.com
Thu Nov 11 00:24:04 UTC 2021


From: Bret Barkelew <brbarkel at microsoft.com>

Drop switch from the custom "StandaloneMmMmuLib" class to the
more generic "ArmMmuLib" class and add the missing functions
to fulfill that interface.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3647

Cc: Leif Lindholm <leif at nuviainc.com>
Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
Cc: Sean Brogan <sean.brogan at microsoft.com>
Signed-off-by: Bret Barkelew <bret.barkelew at microsoft.com>
Reviewed-by: Leif Lindholm <leif at nuviainc.com>
---
 ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c   | 67 ++++++++++++++++++++
 ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf |  2 +-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
index 20f873e6802c..dde623f8ec69 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
@@ -325,3 +325,70 @@ ArmClearMemoryRegionReadOnly (
   }
   return Status;
 }
+
+/**
+  Placeholder function to fulfill API.
+
+  @param [in]  MemoryTable
+  @param [out] TranslationTableBase
+  @param [out] TranslationTableSize
+
+  @retval EFI_UNSUPPORTED         This function is not implemented by the
+                                  callee.
+
+**/
+EFI_STATUS
+EFIAPI
+ArmConfigureMmu (
+  IN  ARM_MEMORY_REGION_DESCRIPTOR  *MemoryTable,
+  OUT VOID                          **TranslationTableBase OPTIONAL,
+  OUT UINTN                         *TranslationTableSize  OPTIONAL
+  )
+{
+  DEBUG ((DEBUG_ERROR, "%a() interface not implemented!\n", __FUNCTION__));
+  ASSERT (FALSE);
+  return EFI_UNSUPPORTED;
+}
+
+/**
+  Placeholder function to fulfill API.
+
+  @param [in]  Entry
+  @param [in]  Value
+  @param [in]  RegionStart
+
+**/
+VOID
+EFIAPI
+ArmReplaceLiveTranslationEntry (
+  IN  UINT64  *Entry,
+  IN  UINT64  Value,
+  IN  UINT64  RegionStart
+  )
+{
+  DEBUG ((DEBUG_ERROR, "%a() interface not implemented!\n", __FUNCTION__));
+  ASSERT (FALSE);
+}
+
+/**
+  Placeholder function to fulfill API.
+
+  @param [in]  BaseAddress
+  @param [in]  Length
+  @param [in]  Attributes
+
+  @retval EFI_UNSUPPORTED         This function is not implemented by the
+                                  callee.
+
+**/
+EFI_STATUS
+ArmSetMemoryAttributes (
+  IN EFI_PHYSICAL_ADDRESS      BaseAddress,
+  IN UINT64                    Length,
+  IN UINT64                    Attributes
+  )
+{
+  DEBUG ((DEBUG_ERROR, "%a() interface not implemented!\n", __FUNCTION__));
+  ASSERT (FALSE);
+  return EFI_UNSUPPORTED;
+}
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
index ff20e5898051..d34086853d32 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
@@ -13,7 +13,7 @@ [Defines]
   FILE_GUID                      = 44a741c2-655f-41fc-b066-179f5a9aa78a
   MODULE_TYPE                    = MM_CORE_STANDALONE
   VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = StandaloneMmMmuLib
+  LIBRARY_CLASS                  = ArmMmuLib | MM_CORE_STANDALONE MM_STANDALONE
   PI_SPECIFICATION_VERSION       = 0x00010032
 
 [Sources]
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83614): https://edk2.groups.io/g/devel/message/83614
Mute This Topic: https://groups.io/mt/86971553/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list