Hi Michael, 
Thanks for addressing the GCC compiler issues. Overall looks good.

In IntelVTdCorePei.c, it seems the following got missed:
    Item->Header.LogType   = (UINT64) (1 << EventType);

Can you also take care of below and use LShiftU64, instead of compiler 
intrinsic operators.

Thanks,
Sai

-----Original Message-----
From: mikub...@linux.microsoft.com <mikub...@linux.microsoft.com> 
Sent: Wednesday, July 17, 2024 10:55 AM
To: devel@edk2.groups.io
Cc: Ni, Ray <ray...@intel.com>; Chaganty, Rangasai V 
<rangasai.v.chaga...@intel.com>; S, Ashraf Ali <ashraf.al...@intel.com>; 
Lautner, Kenneth <klaut...@microsoft.com>
Subject: [edk2-platforms][PATCH v1 1/2] IntelSiliconPkg: Compiler and linker 
fixes

From: Michael Kubacki <michael.kuba...@microsoft.com>

Some code is currently not being built in the package. This fixes GCC compiler 
errors and MSVC linker failures in the code so the package can build with these 
modules included.

Cc: Ray Ni <ray...@intel.com>
Cc: Rangasai V Chaganty <rangasai.v.chaga...@intel.com>
Cc: Ashraf Ali S <ashraf.al...@intel.com>

Co-authored-by: Ken Lautner <klaut...@microsoft.com>
Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com>
---
 Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/BmDma.c           |  
4 ++--
 Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/VtdLog.c          | 
12 ++++++------
 Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCorePei/IntelVTdCorePei.c |  
6 +++---
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/BmDma.c 
b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/BmDma.c
index 41917a004880..47fd3674cd56 100644
--- a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/BmDma.c
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/BmDma.c
@@ -464,7 +464,7 @@ IoMmuAllocateBuffer (
   if (!EFI_ERROR (Status)) {
     *HostAddress = (VOID *) (UINTN) PhysicalAddress;
 
-    VTdLogAddEvent (VTDLOG_DXE_IOMMU_ALLOC_BUFFER, (UINT64) Pages, (UINT64) 
(*HostAddress));
+    VTdLogAddEvent (VTDLOG_DXE_IOMMU_ALLOC_BUFFER, (UINT64) Pages, 
+ (UINT64) (UINTN) (*HostAddress));
   }
 
   DEBUG ((DEBUG_VERBOSE, "IoMmuAllocateBuffer: 0x%08x <==\n", *HostAddress)); 
@@ -494,7 +494,7 @@ IoMmuFreeBuffer (  {
   DEBUG ((DEBUG_VERBOSE, "IoMmuFreeBuffer: 0x%\n", Pages));
 
-  VTdLogAddEvent (VTDLOG_DXE_IOMMU_FREE_BUFFER, Pages, (UINT64) HostAddress);
+  VTdLogAddEvent (VTDLOG_DXE_IOMMU_FREE_BUFFER, Pages, (UINT64) (UINTN) 
+ HostAddress);
 
   return gBS->FreePages ((EFI_PHYSICAL_ADDRESS) (UINTN) HostAddress, Pages);  
} diff --git 
a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/VtdLog.c 
b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/VtdLog.c
index 91c27e2a1f2c..6a44424395c9 100644
--- a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/VtdLog.c
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCoreDxe/VtdLog.c
@@ -77,7 +77,7 @@ VTdLogAddEvent (
     Item->Data2 = Data2;
 
     Item->Header.DataSize  = sizeof (VTDLOG_EVENT_2PARAM);
-    Item->Header.LogType   = (UINT64) 1 << EventType;
+    Item->Header.LogType   = LShiftU64 (1, EventType);
     Item->Header.Timestamp = AsmReadTsc ();
   }
 }
@@ -117,11 +117,11 @@ VTdLogAddDataEvent (
     CopyMem (Item->Data, Data, DataSize);
 
     Item->Header.DataSize  = EventSize;
-    Item->Header.LogType   = (UINT64) 1 << EventType;
+    Item->Header.LogType   = LShiftU64 (1, EventType);
     Item->Header.Timestamp = AsmReadTsc ();
   }
 }
-  
+
 /**
   Get Event Items From Pei Pre-Mem Buffer
 
@@ -154,10 +154,10 @@ VTdGetEventItemsFromPeiPreMemBuffer (
       Event.Header.DataSize = sizeof (VTDLOG_EVENT_2PARAM);
       Event.Header.Timestamp = 0;
 
-      Event.Header.LogType = ((UINT64) 1) << VTDLOG_PEI_PRE_MEM_DMA_PROTECT;
+      Event.Header.LogType = LShiftU64 (1, 
+ VTDLOG_PEI_PRE_MEM_DMA_PROTECT);
       Event.Data1 = InfoBuffer[Index].BarAddress;
       Event.Data2 = InfoBuffer[Index].Mode;
-      Event.Data2 |= InfoBuffer[Index].Status<<8;
+      Event.Data2 |= LShiftU64 (InfoBuffer[Index].Status, 8);
       CallbackHandle (Context, &Event.Header);
     }
     EventCount++;
@@ -231,7 +231,7 @@ VTdGenerateStateEvent (
   Item.Data2 = Data2;
 
   Item.Header.DataSize  = sizeof (VTDLOG_EVENT_2PARAM);
-  Item.Header.LogType   = (UINT64) 1 << EventType;
+  Item.Header.LogType   = LShiftU64 (1, EventType);
   Item.Header.Timestamp = 0;
 
   if (CallbackHandle) {
diff --git 
a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCorePei/IntelVTdCorePei.c 
b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCorePei/IntelVTdCorePei.c
index 0160c3604541..7c72055e73dd 100644
--- 
a/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCorePei/IntelVTdCorePei.c
+++ b/Silicon/Intel/IntelSiliconPkg/Feature/VTd/IntelVTdCorePei/IntelVTd
+++ CorePei.c
@@ -152,7 +152,7 @@ VTdLogAddDataEvent (
 
     Item->Header.DataSize  = EventSize;
     Item->Header.LogType   = (UINT64) (1 << EventType);
-    Item->Header.Timestamp = AsmReadTsc ();    
+    Item->Header.Timestamp = AsmReadTsc ();
   }
 }
 /**
@@ -372,7 +372,7 @@ PeiIoMmuMap (
       );
   }
 
-  VTdLogAddEvent (VTDLOG_PEI_PPI_MAP, (UINT64) HostAddress, Length);
+  VTdLogAddEvent (VTDLOG_PEI_PPI_MAP, (UINT64) (UINTN) HostAddress, 
+ Length);
   return EFI_SUCCESS;
 }
 
@@ -498,7 +498,7 @@ PeiIoMmuAllocateBuffer (
 
   DEBUG ((DEBUG_INFO, "PeiIoMmuAllocateBuffer - allocate - %x\n", 
*HostAddress));
 
-  VTdLogAddEvent (VTDLOG_PEI_PPI_ALLOC_BUFFER, (UINT64) (*HostAddress), 
Length);
+  VTdLogAddEvent (VTDLOG_PEI_PPI_ALLOC_BUFFER, (UINT64) (UINTN) 
+ (*HostAddress), Length);
 
   return EFI_SUCCESS;
 }
--
2.45.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119961): https://edk2.groups.io/g/devel/message/119961
Mute This Topic: https://groups.io/mt/107402756/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to