Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leo Duran <leo.du...@amd.com>
---
 ArmPlatformPkg/PrePeiCore/MainMPCore.c | 10 ++++++++--
 ArmPlatformPkg/PrePi/MainMPCore.c      | 10 ++++++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/ArmPlatformPkg/PrePeiCore/MainMPCore.c 
b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
index fa544c7..8309f62 100644
--- a/ArmPlatformPkg/PrePeiCore/MainMPCore.c
+++ b/ArmPlatformPkg/PrePeiCore/MainMPCore.c
@@ -80,13 +80,19 @@ SecondaryMain (
   ASSERT (Index != ArmCoreCount);
 
   // Clear Secondary cores MailBox
-  MmioWrite32 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
+  if (sizeof(UINTN) == sizeof(UINT64))
+    MmioWrite64 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
+  else
+    MmioWrite32 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
 
   do {
     ArmCallWFI ();
 
     // Read the Mailbox
-    SecondaryEntryAddr = MmioRead32 
(ArmCoreInfoTable[Index].MailboxGetAddress);
+    if (sizeof(UINTN) == sizeof(UINT64))
+      SecondaryEntryAddr = MmioRead64 
(ArmCoreInfoTable[Index].MailboxGetAddress);
+    else
+      SecondaryEntryAddr = MmioRead32 
(ArmCoreInfoTable[Index].MailboxGetAddress);
 
     // Acknowledge the interrupt and send End of Interrupt signal.
     AcknowledgeInterrupt = ArmGicAcknowledgeInterrupt (PcdGet32 
(PcdGicInterruptInterfaceBase), &InterruptId);
diff --git a/ArmPlatformPkg/PrePi/MainMPCore.c 
b/ArmPlatformPkg/PrePi/MainMPCore.c
index 603f4bb..d7e2352 100644
--- a/ArmPlatformPkg/PrePi/MainMPCore.c
+++ b/ArmPlatformPkg/PrePi/MainMPCore.c
@@ -79,13 +79,19 @@ SecondaryMain (
   ASSERT (Index != ArmCoreCount);
 
   // Clear Secondary cores MailBox
-  MmioWrite32 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
+  if (sizeof(UINTN) == sizeof(UINT64))
+    MmioWrite64 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
+  else
+    MmioWrite32 (ArmCoreInfoTable[Index].MailboxClearAddress, 
ArmCoreInfoTable[Index].MailboxClearValue);
 
   do {
     ArmCallWFI ();
 
     // Read the Mailbox
-    SecondaryEntryAddr = MmioRead32 
(ArmCoreInfoTable[Index].MailboxGetAddress);
+    if (sizeof(UINTN) == sizeof(UINT64))
+      SecondaryEntryAddr = MmioRead64 
(ArmCoreInfoTable[Index].MailboxGetAddress);
+    else
+      SecondaryEntryAddr = MmioRead32 
(ArmCoreInfoTable[Index].MailboxGetAddress);
 
     // Acknowledge the interrupt and send End of Interrupt signal.
     AcknowledgeInterrupt = ArmGicAcknowledgeInterrupt (PcdGet32 
(PcdGicInterruptInterfaceBase), &InterruptId);
-- 
1.9.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to