DynamicTablesPkg: Fix conversion compiler warnings

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>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
Pierre Gondois 2024-07-03 11:53:39 +02:00 committed by mergify[bot]
parent 40a0dbdd18
commit 7537028fa5
3 changed files with 25 additions and 11 deletions

View File

@ -379,10 +379,12 @@ AddSubspaceStructType1 (
Doorbell = &GenericPccCmObj->DoorbellReg; Doorbell = &GenericPccCmObj->DoorbellReg;
ChannelTiming = &GenericPccCmObj->ChannelTiming; ChannelTiming = &GenericPccCmObj->ChannelTiming;
ASSERT ((PccCmObj->PlatIrq.Flags & ~MAX_UINT8) == 0);
PccAcpi->Type = GenericPccCmObj->Type; PccAcpi->Type = GenericPccCmObj->Type;
PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS); PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS);
PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt; PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt;
PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags; PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE; PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE;
PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress; PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress;
PccAcpi->AddressLength = GenericPccCmObj->AddressLength; PccAcpi->AddressLength = GenericPccCmObj->AddressLength;
@ -441,10 +443,12 @@ AddSubspaceStructType2 (
PlatIrqAck = &PccCmObj->PlatIrqAckReg; PlatIrqAck = &PccCmObj->PlatIrqAckReg;
ChannelTiming = &GenericPccCmObj->ChannelTiming; ChannelTiming = &GenericPccCmObj->ChannelTiming;
ASSERT ((PccCmObj->PlatIrq.Flags & ~MAX_UINT8) == 0);
PccAcpi->Type = GenericPccCmObj->Type; PccAcpi->Type = GenericPccCmObj->Type;
PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS); PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS);
PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt; PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt;
PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags; PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress; PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress;
PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE; PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE;
PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress; PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress;
@ -519,13 +523,16 @@ AddSubspaceStructType34 (
ErrorStatus = &PccCmObj->ErrorStatusReg; ErrorStatus = &PccCmObj->ErrorStatusReg;
ChannelTiming = &GenericPccCmObj->ChannelTiming; ChannelTiming = &GenericPccCmObj->ChannelTiming;
ASSERT ((PccCmObj->PlatIrq.Flags & ~MAX_UINT8) == 0);
ASSERT ((GenericPccCmObj->AddressLength & ~MAX_UINT32) == 0);
PccAcpi->Type = GenericPccCmObj->Type; PccAcpi->Type = GenericPccCmObj->Type;
PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_3_EXTENDED_PCC); PccAcpi->Length = sizeof (EFI_ACPI_6_4_PCCT_SUBSPACE_3_EXTENDED_PCC);
PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt; PccAcpi->PlatformInterrupt = PccCmObj->PlatIrq.Interrupt;
PccAcpi->PlatformInterruptFlags = PccCmObj->PlatIrq.Flags; PccAcpi->PlatformInterruptFlags = (UINT8)PccCmObj->PlatIrq.Flags;
PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE; PccAcpi->Reserved = EFI_ACPI_RESERVED_BYTE;
PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress; PccAcpi->BaseAddress = GenericPccCmObj->BaseAddress;
PccAcpi->AddressLength = GenericPccCmObj->AddressLength; PccAcpi->AddressLength = (UINT32)GenericPccCmObj->AddressLength;
CopyMem ( CopyMem (
&PccAcpi->DoorbellRegister, &PccAcpi->DoorbellRegister,

View File

@ -1026,7 +1026,8 @@ CreateAmlCpuTopologyTree (
if (Generator->ProcNodeList[Index].OverrideNameUidEnabled) { if (Generator->ProcNodeList[Index].OverrideNameUidEnabled) {
Name = Generator->ProcNodeList[Index].OverrideName; Name = Generator->ProcNodeList[Index].OverrideName;
} else { } else {
Name = CpuIndex; ASSERT ((CpuIndex & ~MAX_UINT16) == 0);
Name = (UINT16)CpuIndex;
} }
Status = CreateAmlCpuFromProcHierarchy ( Status = CreateAmlCpuFromProcHierarchy (
@ -1061,7 +1062,8 @@ CreateAmlCpuTopologyTree (
Name = Generator->ProcNodeList[Index].OverrideName; Name = Generator->ProcNodeList[Index].OverrideName;
Uid = Generator->ProcNodeList[Index].OverrideUid; Uid = Generator->ProcNodeList[Index].OverrideUid;
} else { } else {
Name = ProcContainerName; ASSERT ((ProcContainerName & ~MAX_UINT16) == 0);
Name = (UINT16)ProcContainerName;
Uid = *ProcContainerIndex; Uid = *ProcContainerIndex;
} }

View File

@ -311,7 +311,7 @@ GeneratePrt (
) )
{ {
EFI_STATUS Status; EFI_STATUS Status;
INT32 Index; UINT32 Index;
AML_OBJECT_NODE_HANDLE PrtNode; AML_OBJECT_NODE_HANDLE PrtNode;
CM_ARCH_COMMON_OBJ_REF *RefInfo; CM_ARCH_COMMON_OBJ_REF *RefInfo;
UINT32 RefCount; UINT32 RefCount;
@ -561,6 +561,11 @@ GeneratePciCrs (
break; break;
case PCI_SS_M32: case PCI_SS_M32:
ASSERT ((AddrMapInfo->PciAddress & ~MAX_UINT32) == 0);
ASSERT (((AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1) & ~MAX_UINT32) == 0);
ASSERT (((Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0) & ~MAX_UINT32) == 0);
ASSERT ((AddrMapInfo->AddressSize & ~MAX_UINT32) == 0);
Status = AmlCodeGenRdDWordMemory ( Status = AmlCodeGenRdDWordMemory (
FALSE, FALSE,
IsPosDecode, IsPosDecode,
@ -569,10 +574,10 @@ GeneratePciCrs (
AmlMemoryCacheable, AmlMemoryCacheable,
TRUE, TRUE,
0, 0,
AddrMapInfo->PciAddress, (UINT32)(AddrMapInfo->PciAddress),
AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1, (UINT32)(AddrMapInfo->PciAddress + AddrMapInfo->AddressSize - 1),
Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0, (UINT32)(Translation ? AddrMapInfo->CpuAddress - AddrMapInfo->PciAddress : 0),
AddrMapInfo->AddressSize, (UINT32)(AddrMapInfo->AddressSize),
0, 0,
NULL, NULL,
AmlAddressRangeMemory, AmlAddressRangeMemory,