public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [staging/dynamictables-reorg PATCH 0/2] DynamicTablesPkg: CI related fixes
@ 2024-07-03  9:53 PierreGondois
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings PierreGondois
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks PierreGondois
  0 siblings, 2 replies; 6+ messages in thread
From: PierreGondois @ 2024-07-03  9:53 UTC (permalink / raw)
  To: devel
  Cc: Pierre Gondois, AbdulLateef Attar, Girish Mahadevan, Jeff Brasen,
	Jeshua Smith, Leif Lindholm, Meenakshi Aggarwal, Sami Mujawar,
	Sunil V L, Yeo Reum Yun

Small fixes reported while running the CI.
These patches should be applied on top of:
- [staging/dynamictables-reorg PATCH 00/15] Prepare libraries to support other archs 
  https://edk2.groups.io/g/devel/message/119632

Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com>
Cc: Girish Mahadevan <gmahadevan@nvidia.com>
Cc: Jeff Brasen <jbrasen@nvidia.com>
Cc: Jeshua Smith <jeshuas@nvidia.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Sunil V L <sunilvl@ventanamicro.com>
Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>

Pierre Gondois (2):
  DynamicTablesPkg: Fix conversion compiler warnings
  DynamicTablesPkg: Add EFIAPI to generators hooks

 DynamicTablesPkg/Include/AcpiTableGenerator.h    |  8 ++++----
 .../Acpi/Common/AcpiMcfgLib/McfgGenerator.c      |  1 +
 .../Acpi/Common/AcpiPcctLib/PcctGenerator.c      | 16 ++++++++++++----
 .../Acpi/Common/AcpiPpttLib/PpttGenerator.c      |  1 +
 .../Acpi/Common/AcpiSratLib/SratGenerator.c      |  1 +
 .../SsdtCpuTopologyGenerator.c                   |  7 +++++--
 .../Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c   | 15 ++++++++++-----
 7 files changed, 34 insertions(+), 15 deletions(-)

-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119777): https://edk2.groups.io/g/devel/message/119777
Mute This Topic: https://groups.io/mt/107016602/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings
  2024-07-03  9:53 [edk2-devel] [staging/dynamictables-reorg PATCH 0/2] DynamicTablesPkg: CI related fixes PierreGondois
@ 2024-07-03  9:53 ` PierreGondois
  2024-07-03 10:35   ` Sami Mujawar
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks PierreGondois
  1 sibling, 1 reply; 6+ messages in thread
From: PierreGondois @ 2024-07-03  9:53 UTC (permalink / raw)
  To: devel
  Cc: Pierre Gondois, AbdulLateef Attar, Girish Mahadevan, Jeff Brasen,
	Jeshua Smith, Leif Lindholm, Meenakshi Aggarwal, Sami Mujawar,
	Sunil V L, Yeo Reum Yun, Pierre Gondois

Some CM objects fields are wider than the targeted field in ACPI
tables. Some assignments are also subject to data loss and
trigger the following warnings:
- '<': signed/unsigned mismatch
- '=': conversion from 'UINTxx' to 'UINTyy', possible loss of data
with xx > yy.

Add checks/cast to remove the warnings.

Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
---
 .../Acpi/Common/AcpiPcctLib/PcctGenerator.c       | 15 +++++++++++----
 .../SsdtCpuTopologyGenerator.c                    |  6 ++++--
 .../Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c    | 15 ++++++++++-----
 3 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
index 205c44405785..061e12bf1b3d 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
@@ -379,10 +379,12 @@ AddSubspaceStructType1 (
   Doorbell      = &GenericPccCmObj->DoorbellReg;
   ChannelTiming = &GenericPccCmObj->ChannelTiming;
 
+  ASSERT ((PccCmObj->PlatIrq.Flags >> 8) == 0);
+
   PccAcpi->Type                   = GenericPccCmObj->Type;
   PccAcpi->Length                 = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS);
   PccAcpi->PlatformInterrupt      = PccCmObj->PlatIrq.Interrupt;
-  PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags;
+  PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
   PccAcpi->Reserved               = EFI_ACPI_RESERVED_BYTE;
   PccAcpi->BaseAddress            = GenericPccCmObj->BaseAddress;
   PccAcpi->AddressLength          = GenericPccCmObj->AddressLength;
@@ -441,10 +443,12 @@ AddSubspaceStructType2 (
   PlatIrqAck    = &PccCmObj->PlatIrqAckReg;
   ChannelTiming = &GenericPccCmObj->ChannelTiming;
 
+  ASSERT ((PccCmObj->PlatIrq.Flags >> 8) == 0);
+
   PccAcpi->Type                   = GenericPccCmObj->Type;
   PccAcpi->Length                 = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS);
   PccAcpi->PlatformInterrupt      = PccCmObj->PlatIrq.Interrupt;
-  PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags;
+  PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
   PccAcpi->BaseAddress            = GenericPccCmObj->BaseAddress;
   PccAcpi->Reserved               = EFI_ACPI_RESERVED_BYTE;
   PccAcpi->BaseAddress            = GenericPccCmObj->BaseAddress;
@@ -519,13 +523,16 @@ AddSubspaceStructType34 (
   ErrorStatus       = &PccCmObj->ErrorStatusReg;
   ChannelTiming     = &GenericPccCmObj->ChannelTiming;
 
+  ASSERT ((PccCmObj->PlatIrq.Flags >> 8) == 0);
+  ASSERT ((GenericPccCmObj->AddressLength >> 32) == 0);
+
   PccAcpi->Type                   = GenericPccCmObj->Type;
   PccAcpi->Length                 = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_3_EXTENDED_PCC);
   PccAcpi->PlatformInterrupt      = PccCmObj->PlatIrq.Interrupt;
-  PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags;
+  PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
   PccAcpi->Reserved               = EFI_ACPI_RESERVED_BYTE;
   PccAcpi->BaseAddress            = GenericPccCmObj->BaseAddress;
-  PccAcpi->AddressLength          = GenericPccCmObj->AddressLength;
+  PccAcpi->AddressLength          = (UINT32)GenericPccCmObj->AddressLength;
 
   CopyMem (
     &PccAcpi->DoorbellRegister,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
index 74595131935c..f82b7449713c 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
@@ -1026,7 +1026,8 @@ CreateAmlCpuTopologyTree (
         if (Generator->ProcNodeList[Index].OverrideNameUidEnabled) {
           Name = Generator->ProcNodeList[Index].OverrideName;
         } else {
-          Name = CpuIndex;
+          ASSERT ((CpuIndex >> 16) == 0);
+          Name = (UINT16)CpuIndex;
         }
 
         Status = CreateAmlCpuFromProcHierarchy (
@@ -1061,7 +1062,8 @@ CreateAmlCpuTopologyTree (
           Name = Generator->ProcNodeList[Index].OverrideName;
           Uid  = Generator->ProcNodeList[Index].OverrideUid;
         } else {
-          Name = ProcContainerName;
+          ASSERT ((ProcContainerName >> 16) == 0);
+          Name = (UINT16)ProcContainerName;
           Uid  = *ProcContainerIndex;
         }
 
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c
index 5b6d5515622b..3dcca2b33987 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c
@@ -311,7 +311,7 @@ GeneratePrt (
   )
 {
   EFI_STATUS                             Status;
-  INT32                                  Index;
+  UINT32                                 Index;
   AML_OBJECT_NODE_HANDLE                 PrtNode;
   CM_ARCH_COMMON_OBJ_REF                 *RefInfo;
   UINT32                                 RefCount;
@@ -561,6 +561,11 @@ GeneratePciCrs (
         break;
 
       case PCI_SS_M32:
+        ASSERT ((AddrMapInfo->PciAddress >> 32) == 0);
+        ASSERT (((AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1) >> 32) == 0);
+        ASSERT (((Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0) >> 32) == 0);
+        ASSERT ((AddrMapInfo->AddressSize >> 32) == 0);
+
         Status = AmlCodeGenRdDWordMemory (
                    FALSE,
                    IsPosDecode,
@@ -569,10 +574,10 @@ GeneratePciCrs (
                    AmlMemoryCacheable,
                    TRUE,
                    0,
-                   AddrMapInfo->PciAddress,
-                   AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1,
-                   Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0,
-                   AddrMapInfo->AddressSize,
+                   (UINT32)(AddrMapInfo->PciAddress),
+                   (UINT32)(AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1),
+                   (UINT32)(Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0),
+                   (UINT32)(AddrMapInfo->AddressSize),
                    0,
                    NULL,
                    AmlAddressRangeMemory,
-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119778): https://edk2.groups.io/g/devel/message/119778
Mute This Topic: https://groups.io/mt/107016603/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks
  2024-07-03  9:53 [edk2-devel] [staging/dynamictables-reorg PATCH 0/2] DynamicTablesPkg: CI related fixes PierreGondois
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings PierreGondois
@ 2024-07-03  9:53 ` PierreGondois
  2024-07-03 10:36   ` Sami Mujawar
  1 sibling, 1 reply; 6+ messages in thread
From: PierreGondois @ 2024-07-03  9:53 UTC (permalink / raw)
  To: devel
  Cc: Pierre Gondois, AbdulLateef Attar, Girish Mahadevan, Jeff Brasen,
	Jeshua Smith, Leif Lindholm, Meenakshi Aggarwal, Sami Mujawar,
	Sunil V L, Yeo Reum Yun

For X64 builds, the EFIAPI is replaced by '(__attribute__((ms_abi))'.
This might lead to build error for some ACPI tablte generators
due to function prototype mismatch.

Add the EFIAPI to ACPI table generator hooks:
- ACPI_TABLE_GENERATOR_BUILD_TABLEEX
- ACPI_TABLE_GENERATOR_FREE_TABLEEX

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
---
 DynamicTablesPkg/Include/AcpiTableGenerator.h             | 8 ++++----
 .../Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c       | 1 +
 .../Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c       | 1 +
 .../Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c       | 1 +
 .../Library/Acpi/Common/AcpiSratLib/SratGenerator.c       | 1 +
 .../AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c     | 1 +
 6 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/DynamicTablesPkg/Include/AcpiTableGenerator.h b/DynamicTablesPkg/Include/AcpiTableGenerator.h
index d0eda011c301..f5c6179be082 100644
--- a/DynamicTablesPkg/Include/AcpiTableGenerator.h
+++ b/DynamicTablesPkg/Include/AcpiTableGenerator.h
@@ -214,7 +214,7 @@ typedef struct AcpiTableGenerator           ACPI_TABLE_GENERATOR;
   @return  EFI_SUCCESS If the table is generated successfully or other
                         failure codes as returned by the generator.
 **/
-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLE) (
+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_BUILD_TABLE)(
   IN  CONST ACPI_TABLE_GENERATOR                           *This,
   IN  CONST CM_STD_OBJ_ACPI_TABLE_INFO             *CONST  AcpiTableInfo,
   IN  CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL   *CONST  CfgMgrProtocol,
@@ -234,7 +234,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLE) (
   @return EFI_SUCCESS  If freed successfully or other failure codes
                         as returned by the generator.
 **/
-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLE) (
+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_FREE_TABLE)(
   IN      CONST ACPI_TABLE_GENERATOR                   *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO             *CONST  AcpiTableInfo,
   IN      CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL   *CONST  CfgMgrProtocol,
@@ -257,7 +257,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLE) (
   @return  EFI_SUCCESS If the table is generated successfully or other
                         failure codes as returned by the generator.
 **/
-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLEEX) (
+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_BUILD_TABLEEX)(
   IN  CONST ACPI_TABLE_GENERATOR                           *This,
   IN  CONST CM_STD_OBJ_ACPI_TABLE_INFO             *CONST  AcpiTableInfo,
   IN  CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL   *CONST  CfgMgrProtocol,
@@ -280,7 +280,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLEEX) (
   @return EFI_SUCCESS  If freed successfully or other failure codes
                         as returned by the generator.
 **/
-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLEEX) (
+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_FREE_TABLEEX)(
   IN      CONST ACPI_TABLE_GENERATOR                   *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO             *CONST  AcpiTableInfo,
   IN      CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL   *CONST  CfgMgrProtocol,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
index 722f9c17d541..40dea304e301 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
@@ -261,6 +261,7 @@ error_handler:
 **/
 STATIC
 EFI_STATUS
+EFIAPI
 FreeMcfgTableResources (
   IN      CONST ACPI_TABLE_GENERATOR                  *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
index 061e12bf1b3d..12e34f3e442c 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
@@ -1075,6 +1075,7 @@ error_handler:
 **/
 STATIC
 EFI_STATUS
+EFIAPI
 FreePcctTableResources (
   IN      CONST ACPI_TABLE_GENERATOR                  *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
index 2b8088a07f44..fd465cbab0e9 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
@@ -1342,6 +1342,7 @@ error_handler:
 **/
 STATIC
 EFI_STATUS
+EFIAPI
 FreePpttTableResources (
   IN      CONST ACPI_TABLE_GENERATOR                  *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
index dcdacc4e966e..1a9434e6bd08 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
@@ -552,6 +552,7 @@ error_handler:
 **/
 STATIC
 EFI_STATUS
+EFIAPI
 FreeSratTableResources (
   IN      CONST ACPI_TABLE_GENERATOR                  *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
index f82b7449713c..994c6e44d0d7 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
@@ -1313,6 +1313,7 @@ exit_handler:
 **/
 STATIC
 EFI_STATUS
+EFIAPI
 FreeSsdtCpuTopologyTableResources (
   IN      CONST ACPI_TABLE_GENERATOR                  *CONST  This,
   IN      CONST CM_STD_OBJ_ACPI_TABLE_INFO            *CONST  AcpiTableInfo,
-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119779): https://edk2.groups.io/g/devel/message/119779
Mute This Topic: https://groups.io/mt/107016605/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings PierreGondois
@ 2024-07-03 10:35   ` Sami Mujawar
  2024-07-03 10:44     ` PierreGondois
  0 siblings, 1 reply; 6+ messages in thread
From: Sami Mujawar @ 2024-07-03 10:35 UTC (permalink / raw)
  To: Pierre Gondois, devel@edk2.groups.io
  Cc: AbdulLateef Attar, Girish Mahadevan,
	Jeff Brasen (jbrasen@nvidia.com), Jeshua Smith, Leif Lindholm,
	Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com), Sunil V L,
	Yeo Reum Yun, nd

Hi Pierre,

Thank you for these patches.


On 03/07/2024, 10:54, "Pierre Gondois" <pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>> wrote:


Some CM objects fields are wider than the targeted field in ACPI
tables. Some assignments are also subject to data loss and
trigger the following warnings:
- '<': signed/unsigned mismatch
- '=': conversion from 'UINTxx' to 'UINTyy', possible loss of data
with xx > yy.


Add checks/cast to remove the warnings.


Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com <mailto:Pierre.Gondois@arm.com>>
---
.../Acpi/Common/AcpiPcctLib/PcctGenerator.c | 15 +++++++++++----
.../SsdtCpuTopologyGenerator.c | 6 ++++--
.../Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c | 15 ++++++++++-----
3 files changed, 25 insertions(+), 11 deletions(-)


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
index 205c44405785..061e12bf1b3d 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
@@ -379,10 +379,12 @@ AddSubspaceStructType1 (
Doorbell = &GenericPccCmObj->DoorbellReg;


ChannelTiming = &GenericPccCmObj->ChannelTiming;






+ ASSERT ((PccCmObj->PlatIrq.Flags >> 8) == 0);

[SAMI] I think we can change this to ASSERT ((PccCmObj->PlatIrq.Flags & ~MAX_UINT8) == 0);
That way we can also avoid magic numbers. 
I think similar changes are required elsewhere in this patch. 
If you agree, I will make the changes before merging.

Otherwise, this series looks good to me.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>


Regards,

Sami Mujawar



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119781): https://edk2.groups.io/g/devel/message/119781
Mute This Topic: https://groups.io/mt/107016603/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks
  2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks PierreGondois
@ 2024-07-03 10:36   ` Sami Mujawar
  0 siblings, 0 replies; 6+ messages in thread
From: Sami Mujawar @ 2024-07-03 10:36 UTC (permalink / raw)
  To: Pierre Gondois, devel@edk2.groups.io
  Cc: AbdulLateef Attar, Girish Mahadevan,
	Jeff Brasen (jbrasen@nvidia.com), Jeshua Smith, Leif Lindholm,
	Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com), Sunil V L,
	Yeo Reum Yun, nd

Hi Pierre,

Thank you for this patch.

These changes look good to me.

Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>

Regards,

Sami Mujawar


On 03/07/2024, 10:54, "Pierre Gondois" <pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>> wrote:


For X64 builds, the EFIAPI is replaced by '(__attribute__((ms_abi))'.
This might lead to build error for some ACPI tablte generators
due to function prototype mismatch.


Add the EFIAPI to ACPI table generator hooks:
- ACPI_TABLE_GENERATOR_BUILD_TABLEEX
- ACPI_TABLE_GENERATOR_FREE_TABLEEX


Signed-off-by: Pierre Gondois <pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>>
---
DynamicTablesPkg/Include/AcpiTableGenerator.h | 8 ++++----
.../Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c | 1 +
.../Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c | 1 +
.../Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c | 1 +
.../Library/Acpi/Common/AcpiSratLib/SratGenerator.c | 1 +
.../AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c | 1 +
6 files changed, 9 insertions(+), 4 deletions(-)


diff --git a/DynamicTablesPkg/Include/AcpiTableGenerator.h b/DynamicTablesPkg/Include/AcpiTableGenerator.h
index d0eda011c301..f5c6179be082 100644
--- a/DynamicTablesPkg/Include/AcpiTableGenerator.h
+++ b/DynamicTablesPkg/Include/AcpiTableGenerator.h
@@ -214,7 +214,7 @@ typedef struct AcpiTableGenerator ACPI_TABLE_GENERATOR;
@return EFI_SUCCESS If the table is generated successfully or other


failure codes as returned by the generator.


**/


-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLE) (


+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_BUILD_TABLE)(


IN CONST ACPI_TABLE_GENERATOR *This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,


@@ -234,7 +234,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLE) (
@return EFI_SUCCESS If freed successfully or other failure codes


as returned by the generator.


**/


-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLE) (


+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_FREE_TABLE)(


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,


@@ -257,7 +257,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLE) (
@return EFI_SUCCESS If the table is generated successfully or other


failure codes as returned by the generator.


**/


-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLEEX) (


+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_BUILD_TABLEEX)(


IN CONST ACPI_TABLE_GENERATOR *This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,


@@ -280,7 +280,7 @@ typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_BUILD_TABLEEX) (
@return EFI_SUCCESS If freed successfully or other failure codes


as returned by the generator.


**/


-typedef EFI_STATUS (*ACPI_TABLE_GENERATOR_FREE_TABLEEX) (


+typedef EFI_STATUS (EFIAPI *ACPI_TABLE_GENERATOR_FREE_TABLEEX)(


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
index 722f9c17d541..40dea304e301 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiMcfgLib/McfgGenerator.c
@@ -261,6 +261,7 @@ error_handler:
**/


STATIC


EFI_STATUS


+EFIAPI


FreeMcfgTableResources (


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
index 061e12bf1b3d..12e34f3e442c 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
@@ -1075,6 +1075,7 @@ error_handler:
**/


STATIC


EFI_STATUS


+EFIAPI


FreePcctTableResources (


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
index 2b8088a07f44..fd465cbab0e9 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPpttLib/PpttGenerator.c
@@ -1342,6 +1342,7 @@ error_handler:
**/


STATIC


EFI_STATUS


+EFIAPI


FreePpttTableResources (


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
index dcdacc4e966e..1a9434e6bd08 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSratLib/SratGenerator.c
@@ -552,6 +552,7 @@ error_handler:
**/


STATIC


EFI_STATUS


+EFIAPI


FreeSratTableResources (


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
index f82b7449713c..994c6e44d0d7 100644
--- a/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib/SsdtCpuTopologyGenerator.c
@@ -1313,6 +1313,7 @@ exit_handler:
**/


STATIC


EFI_STATUS


+EFIAPI


FreeSsdtCpuTopologyTableResources (


IN CONST ACPI_TABLE_GENERATOR *CONST This,


IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,


-- 
2.25.1







-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119782): https://edk2.groups.io/g/devel/message/119782
Mute This Topic: https://groups.io/mt/107016605/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings
  2024-07-03 10:35   ` Sami Mujawar
@ 2024-07-03 10:44     ` PierreGondois
  0 siblings, 0 replies; 6+ messages in thread
From: PierreGondois @ 2024-07-03 10:44 UTC (permalink / raw)
  To: Sami Mujawar, devel@edk2.groups.io
  Cc: AbdulLateef Attar, Girish Mahadevan,
	Jeff Brasen (jbrasen@nvidia.com), Jeshua Smith, Leif Lindholm,
	Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com), Sunil V L,
	Yeo Reum Yun, nd

Hi Sami,

On 7/3/24 12:35, Sami Mujawar wrote:
> Hi Pierre,
> 
> Thank you for these patches.
> 
> 
> On 03/07/2024, 10:54, "Pierre Gondois" <pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>> wrote:
> 
> 
> Some CM objects fields are wider than the targeted field in ACPI
> tables. Some assignments are also subject to data loss and
> trigger the following warnings:
> - '<': signed/unsigned mismatch
> - '=': conversion from 'UINTxx' to 'UINTyy', possible loss of data
> with xx > yy.
> 
> 
> Add checks/cast to remove the warnings.
> 
> 
> Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com <mailto:Pierre.Gondois@arm.com>>
> ---
> .../Acpi/Common/AcpiPcctLib/PcctGenerator.c | 15 +++++++++++----
> .../SsdtCpuTopologyGenerator.c | 6 ++++--
> .../Common/AcpiSsdtPcieLib/SsdtPcieGenerator.c | 15 ++++++++++-----
> 3 files changed, 25 insertions(+), 11 deletions(-)
> 
> 
> diff --git a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
> index 205c44405785..061e12bf1b3d 100644
> --- a/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
> +++ b/DynamicTablesPkg/Library/Acpi/Common/AcpiPcctLib/PcctGenerator.c
> @@ -379,10 +379,12 @@ AddSubspaceStructType1 (
> Doorbell = &GenericPccCmObj->DoorbellReg;
> 
> 
> ChannelTiming = &GenericPccCmObj->ChannelTiming;
> 
> 
> 
> 
> 
> 
> + ASSERT ((PccCmObj->PlatIrq.Flags >> 8) == 0);
> 
> [SAMI] I think we can change this to ASSERT ((PccCmObj->PlatIrq.Flags & ~MAX_UINT8) == 0);
> That way we can also avoid magic numbers.
> I think similar changes are required elsewhere in this patch.
> If you agree, I will make the changes before merging.

Yes sure, thanks!

Regards,
Pierre

> 
> Otherwise, this series looks good to me.
> 
> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
> 
> 
> Regards,
> 
> Sami Mujawar
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119783): https://edk2.groups.io/g/devel/message/119783
Mute This Topic: https://groups.io/mt/107016603/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-07-03 10:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-03  9:53 [edk2-devel] [staging/dynamictables-reorg PATCH 0/2] DynamicTablesPkg: CI related fixes PierreGondois
2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 1/2] DynamicTablesPkg: Fix conversion compiler warnings PierreGondois
2024-07-03 10:35   ` Sami Mujawar
2024-07-03 10:44     ` PierreGondois
2024-07-03  9:53 ` [edk2-devel] [staging/dynamictables-reorg PATCH 2/2] DynamicTablesPkg: Add EFIAPI to generators hooks PierreGondois
2024-07-03 10:36   ` Sami Mujawar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox