MdePkg,UefiPayloadPkg: clean up BaseFdtLib API confusion

Commit 8040fdbb8b (MdePkg: consistently use "Property" in BaseFdtLib)
got a bit carried away and confused around how libfdt contains both
getprop and get_property functions, which operate quite differently;
the getprop variant returns a pointer to the value of the property,
whereas the get_property returns a pointer to the fdt_property
structure.

Untangle this, including fixing up affected existing in-tree users, and
adding the previously not exported FdtGetProp wrapper on fdt_getprop.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Leif Lindholm <leif.lindholm@oss.qualcomm.com>
This commit is contained in:
Leif Lindholm 2025-04-16 14:11:57 +01:00 committed by mergify[bot]
parent e1dee2bcfa
commit e25331fc45
4 changed files with 110 additions and 63 deletions

View File

@ -544,6 +544,28 @@ FdtGetProperty (
IN INT32 *Length IN INT32 *Length
); );
/**
Returns the value of a given property.
@param[in] Fdt The pointer to FDT blob.
@param[in] NodeOffset The offset to the given node.
@param[in] Name The name to the property which need be searched
@param[in] Length The length to the size of the property found.
@return Pointer to the value of the property.
Since the data comes from the FDT blob, it's encoded as big-endian.
NULL on error, with error-code stored at Length (if non-NULL).
**/
CONST VOID *
EFIAPI
FdtGetProp (
IN CONST VOID *Fdt,
IN INT32 NodeOffset,
IN CONST CHAR8 *Name,
IN INT32 *Length
);
/** /**
Returns a pointer to a node mapped to an alias matching a substring. Returns a pointer to a node mapped to an alias matching a substring.
@ -663,7 +685,7 @@ FdtAddSubnode (
**/ **/
INT32 INT32
EFIAPI EFIAPI
FdtSetProperty ( FdtSetProp (
IN VOID *Fdt, IN VOID *Fdt,
IN INT32 NodeOffset, IN INT32 NodeOffset,
IN CONST CHAR8 *Name, IN CONST CHAR8 *Name,

View File

@ -380,7 +380,7 @@ FdtParentOffset (
**/ **/
INT32 INT32
EFIAPI EFIAPI
FdtNodeOffsetByPropertyValue ( FdtNodeOffsetByPropValue (
IN CONST VOID *Fdt, IN CONST VOID *Fdt,
IN INT32 StartOffset, IN INT32 StartOffset,
IN CONST CHAR8 *PropertyName, IN CONST CHAR8 *PropertyName,
@ -453,6 +453,31 @@ FdtGetProperty (
return (FDT_PROPERTY *)fdt_get_property (Fdt, NodeOffset, Name, Length); return (FDT_PROPERTY *)fdt_get_property (Fdt, NodeOffset, Name, Length);
} }
/**
Returns the value of a given property.
@param[in] Fdt The pointer to FDT blob.
@param[in] NodeOffset The offset to the given node.
@param[in] Name The name to the property which need be searched
@param[in] Length The length to the size of the property found.
@return Pointer to the value of the property.
Since the data comes from the FDT blob, it's encoded as big-endian.
NULL on error, with error-code stored at Length (if non-NULL).
**/
CONST VOID *
EFIAPI
FdtGetProp (
IN CONST VOID *Fdt,
IN INT32 NodeOffset,
IN CONST CHAR8 *Name,
IN INT32 *Length
)
{
return fdt_getprop (Fdt, NodeOffset, Name, Length);
}
/** /**
Returns a pointer to a node mapped to an alias matching a substring. Returns a pointer to a node mapped to an alias matching a substring.
@ -590,7 +615,7 @@ FdtAddSubnode (
**/ **/
INT32 INT32
EFIAPI EFIAPI
FdtSetProperty ( FdtSetProp (
IN VOID *Fdt, IN VOID *Fdt,
IN INT32 NodeOffset, IN INT32 NodeOffset,
IN CONST CHAR8 *Name, IN CONST CHAR8 *Name,

View File

@ -120,10 +120,10 @@ BuildFdtForMemory (
RegTmp[0] = CpuToFdt64 (ResourceHob->PhysicalStart); RegTmp[0] = CpuToFdt64 (ResourceHob->PhysicalStart);
RegTmp[1] = CpuToFdt64 (ResourceHob->ResourceLength); RegTmp[1] = CpuToFdt64 (ResourceHob->ResourceLength);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "device_type", "memory", (UINT32)(AsciiStrLen ("memory")+1)); Status = FdtSetProp (Fdt, TempNode, "device_type", "memory", (UINT32)(AsciiStrLen ("memory")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
} }
@ -166,8 +166,8 @@ BuildFdtForMemAlloc (
ASSERT (ParentNode > 0); ASSERT (ParentNode > 0);
Data32 = CpuToFdt32 (2); Data32 = CpuToFdt32 (2);
Status = FdtSetProperty (Fdt, ParentNode, "#address-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, ParentNode, "#address-cells", &Data32, sizeof (UINT32));
Status = FdtSetProperty (Fdt, ParentNode, "#size-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, ParentNode, "#size-cells", &Data32, sizeof (UINT32));
GuidHob = NULL; GuidHob = NULL;
SmbiosTable = NULL; SmbiosTable = NULL;
@ -182,9 +182,9 @@ BuildFdtForMemAlloc (
DEBUG ((DEBUG_INFO, "FdtAddSubnode %x", TempNode)); DEBUG ((DEBUG_INFO, "FdtAddSubnode %x", TempNode));
RegTmp[0] = CpuToFdt64 (SmbiosTable->SmBiosEntryPoint); RegTmp[0] = CpuToFdt64 (SmbiosTable->SmBiosEntryPoint);
RegTmp[1] = CpuToFdt64 (SmbiosTable->Header.Length); RegTmp[1] = CpuToFdt64 (SmbiosTable->Header.Length);
FdtSetProperty (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp)); FdtSetProp (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
FdtSetProperty (Fdt, TempNode, "compatible", "smbios", (UINT32)(AsciiStrLen ("smbios")+1)); FdtSetProp (Fdt, TempNode, "compatible", "smbios", (UINT32)(AsciiStrLen ("smbios")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
@ -267,7 +267,7 @@ BuildFdtForMemAlloc (
RegTmp[0] = CpuToFdt64 (Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress); RegTmp[0] = CpuToFdt64 (Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress);
RegTmp[1] = CpuToFdt64 (Hob.MemoryAllocation->AllocDescriptor.MemoryLength); RegTmp[1] = CpuToFdt64 (Hob.MemoryAllocation->AllocDescriptor.MemoryLength);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegTmp, sizeof (RegTmp));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
if ((AsciiStrCmp (mMemoryAllocType[AllocMemType], "mmio") == 0)) { if ((AsciiStrCmp (mMemoryAllocType[AllocMemType], "mmio") == 0)) {
@ -278,16 +278,16 @@ BuildFdtForMemAlloc (
DEBUG ((DEBUG_INFO, "find acpi memory hob MemoryBaseAddress:%x , AcpiTable->Rsdp :%x\n", Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress, AcpiTable->Rsdp)); DEBUG ((DEBUG_INFO, "find acpi memory hob MemoryBaseAddress:%x , AcpiTable->Rsdp :%x\n", Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress, AcpiTable->Rsdp));
if (Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress == AcpiTable->Rsdp) { if (Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress == AcpiTable->Rsdp) {
DEBUG ((DEBUG_INFO, "keep acpi memory hob \n")); DEBUG ((DEBUG_INFO, "keep acpi memory hob \n"));
Status = FdtSetProperty (Fdt, TempNode, "compatible", mMemoryAllocType[AllocMemType], (UINT32)(AsciiStrLen (mMemoryAllocType[AllocMemType])+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", mMemoryAllocType[AllocMemType], (UINT32)(AsciiStrLen (mMemoryAllocType[AllocMemType])+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} else { } else {
DEBUG ((DEBUG_INFO, "change acpi memory hob \n")); DEBUG ((DEBUG_INFO, "change acpi memory hob \n"));
Status = FdtSetProperty (Fdt, TempNode, "compatible", mMemoryAllocType[4], (UINT32)(AsciiStrLen (mMemoryAllocType[4])+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", mMemoryAllocType[4], (UINT32)(AsciiStrLen (mMemoryAllocType[4])+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
} else { } else {
DEBUG ((DEBUG_INFO, "other memory hob \n")); DEBUG ((DEBUG_INFO, "other memory hob \n"));
Status = FdtSetProperty (Fdt, TempNode, "compatible", mMemoryAllocType[AllocMemType], (UINT32)(AsciiStrLen (mMemoryAllocType[AllocMemType])+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", mMemoryAllocType[AllocMemType], (UINT32)(AsciiStrLen (mMemoryAllocType[AllocMemType])+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
} }
@ -329,7 +329,7 @@ BuildFdtForSerial (
ASSERT (TempNode > 0); ASSERT (TempNode > 0);
Data32 = CpuToFdt32 (PcdGet32 (PcdSerialBaudRate)); Data32 = CpuToFdt32 (PcdGet32 (PcdSerialBaudRate));
Status = FdtSetProperty (Fdt, TempNode, "current-speed", &Data32, sizeof (Data32)); Status = FdtSetProp (Fdt, TempNode, "current-speed", &Data32, sizeof (Data32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
if (PcdGetBool (PcdSerialUseMmio)) { if (PcdGetBool (PcdSerialUseMmio)) {
@ -344,14 +344,14 @@ BuildFdtForSerial (
Data32 = (UINT32)((Data64 & 0x0FFFFFFFF)); Data32 = (UINT32)((Data64 & 0x0FFFFFFFF));
RegData[1] = CpuToFdt32 (Data32); RegData[1] = CpuToFdt32 (Data32);
RegData[2] = CpuToFdt32 (8); RegData[2] = CpuToFdt32 (8);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegData, sizeof (RegData)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegData, sizeof (RegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (1); Data32 = CpuToFdt32 (1);
Status = FdtSetProperty (Fdt, TempNode, "reg-io-width", &Data32, sizeof (Data32)); Status = FdtSetProp (Fdt, TempNode, "reg-io-width", &Data32, sizeof (Data32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "compatible", "isa", (UINT32)(AsciiStrLen ("isa")+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", "isa", (UINT32)(AsciiStrLen ("isa")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
return Status; return Status;
@ -404,19 +404,19 @@ BuildFdtForSerialLpss (
ASSERT (TempNode > 0); ASSERT (TempNode > 0);
Data32 = CpuToFdt32 (SerialPortInfo->BaudRate); Data32 = CpuToFdt32 (SerialPortInfo->BaudRate);
Status = FdtSetProperty (Fdt, TempNode, "current-speed", &Data32, sizeof (Data32)); Status = FdtSetProp (Fdt, TempNode, "current-speed", &Data32, sizeof (Data32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
RegData[0] = CpuToFdt32 ((UINT32)SerialPortInfo->RegisterBase); RegData[0] = CpuToFdt32 ((UINT32)SerialPortInfo->RegisterBase);
RegData[1] = CpuToFdt32 (0x80); RegData[1] = CpuToFdt32 (0x80);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegData, sizeof (RegData)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegData, sizeof (RegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (4); Data32 = CpuToFdt32 (4);
Status = FdtSetProperty (Fdt, TempNode, "reg-io-width", &Data32, sizeof (Data32)); Status = FdtSetProp (Fdt, TempNode, "reg-io-width", &Data32, sizeof (Data32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "compatible", "ns16550a", (UINT32)(AsciiStrLen ("ns16550a")+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", "ns16550a", (UINT32)(AsciiStrLen ("ns16550a")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
GuidHob = GET_NEXT_HOB (GuidHob); GuidHob = GET_NEXT_HOB (GuidHob);
@ -633,7 +633,7 @@ BuildFdtForPciRootBridge (
RegData[20] = CpuToFdt32 (Data32); RegData[20] = CpuToFdt32 (Data32);
DEBUG ((DEBUG_INFO, "PciRootBridge->Io.base size [20] %x, \n", Data32)); DEBUG ((DEBUG_INFO, "PciRootBridge->Io.base size [20] %x, \n", Data32));
Status = FdtSetProperty (Fdt, TempNode, "ranges", &RegData, sizeof (RegData)); Status = FdtSetProp (Fdt, TempNode, "ranges", &RegData, sizeof (RegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
// non-reloc/non-prefetch/memory, child-addr, parent-addr, length // non-reloc/non-prefetch/memory, child-addr, parent-addr, length
@ -653,7 +653,7 @@ BuildFdtForPciRootBridge (
DMARegData[6] = CpuToFdt32 (1); DMARegData[6] = CpuToFdt32 (1);
DMARegData[7] = CpuToFdt32 (0); DMARegData[7] = CpuToFdt32 (0);
Status = FdtSetProperty (Fdt, TempNode, "dma-ranges", &DMARegData, sizeof (DMARegData)); Status = FdtSetProp (Fdt, TempNode, "dma-ranges", &DMARegData, sizeof (DMARegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Base <= 0xFF); ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Base <= 0xFF);
@ -662,7 +662,7 @@ BuildFdtForPciRootBridge (
Reg64Data[0] = CpuToFdt64 (PciExpressBaseAddress + LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Base, 20)); Reg64Data[0] = CpuToFdt64 (PciExpressBaseAddress + LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Base, 20));
Reg64Data[1] = CpuToFdt64 (LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Limit +1, 20)); Reg64Data[1] = CpuToFdt64 (LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Limit +1, 20));
Status = FdtSetProperty (Fdt, TempNode, "reg", &Reg64Data, sizeof (Reg64Data)); Status = FdtSetProp (Fdt, TempNode, "reg", &Reg64Data, sizeof (Reg64Data));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
BusNumber = PciRootBridgeInfo->RootBridge[Index].Bus.Base & 0xFF; BusNumber = PciRootBridgeInfo->RootBridge[Index].Bus.Base & 0xFF;
@ -674,22 +674,22 @@ BuildFdtForPciRootBridge (
ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Base <= 0xFF); ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Base <= 0xFF);
ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Limit <= 0xFF); ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Limit <= 0xFF);
Status = FdtSetProperty (Fdt, TempNode, "bus-range", &RegTmp, sizeof (RegTmp)); Status = FdtSetProp (Fdt, TempNode, "bus-range", &RegTmp, sizeof (RegTmp));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (2); Data32 = CpuToFdt32 (2);
Status = FdtSetProperty (Fdt, TempNode, "#size-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "#size-cells", &Data32, sizeof (UINT32));
Reg64Data[0] = CpuToFdt64 (PciExpressBaseAddress + LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Base, 20)); Reg64Data[0] = CpuToFdt64 (PciExpressBaseAddress + LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Base, 20));
Reg64Data[1] = CpuToFdt64 (LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Limit +1, 20)); Reg64Data[1] = CpuToFdt64 (LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Limit +1, 20));
Status = FdtSetProperty (Fdt, TempNode, "reg", &Reg64Data, sizeof (Reg64Data)); Status = FdtSetProp (Fdt, TempNode, "reg", &Reg64Data, sizeof (Reg64Data));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (3); Data32 = CpuToFdt32 (3);
Status = FdtSetProperty (Fdt, TempNode, "#address-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "#address-cells", &Data32, sizeof (UINT32));
Status = FdtSetProperty (Fdt, TempNode, "compatible", "pci-rb", (UINT32)(AsciiStrLen ("pci-rb")+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", "pci-rb", (UINT32)(AsciiStrLen ("pci-rb")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
if (Index == 0) { if (Index == 0) {
@ -740,19 +740,19 @@ BuildFdtForPciRootBridge (
} }
Data32 = CpuToFdt32 (PciData.Device.SubsystemID); Data32 = CpuToFdt32 (PciData.Device.SubsystemID);
Status = FdtSetProperty (Fdt, GmaNode, "subsystem-id", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, GmaNode, "subsystem-id", &Data32, sizeof (UINT32));
Data32 = CpuToFdt32 (PciData.Device.SubsystemVendorID); Data32 = CpuToFdt32 (PciData.Device.SubsystemVendorID);
Status = FdtSetProperty (Fdt, GmaNode, "subsystem-vendor-id", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, GmaNode, "subsystem-vendor-id", &Data32, sizeof (UINT32));
Data32 = CpuToFdt32 (PciData.Hdr.RevisionID); Data32 = CpuToFdt32 (PciData.Hdr.RevisionID);
Status = FdtSetProperty (Fdt, GmaNode, "revision-id", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, GmaNode, "revision-id", &Data32, sizeof (UINT32));
Data32 = CpuToFdt32 (PciData.Hdr.DeviceId); Data32 = CpuToFdt32 (PciData.Hdr.DeviceId);
Status = FdtSetProperty (Fdt, GmaNode, "device-id", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, GmaNode, "device-id", &Data32, sizeof (UINT32));
Data32 = CpuToFdt32 (PciData.Hdr.VendorId); Data32 = CpuToFdt32 (PciData.Hdr.VendorId);
Status = FdtSetProperty (Fdt, GmaNode, "vendor-id", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, GmaNode, "vendor-id", &Data32, sizeof (UINT32));
} }
if (SerialParent != NULL) { if (SerialParent != NULL) {
@ -767,12 +767,12 @@ BuildFdtForPciRootBridge (
if (SerialParent->IsIsaCompatible) { if (SerialParent->IsIsaCompatible) {
Status = AsciiSPrint (eSPIStr, sizeof (eSPIStr), "isa@%X,%X", DevBase, FunBase); Status = AsciiSPrint (eSPIStr, sizeof (eSPIStr), "isa@%X,%X", DevBase, FunBase);
eSPINode = FdtAddSubnode (Fdt, TempNode, eSPIStr); eSPINode = FdtAddSubnode (Fdt, TempNode, eSPIStr);
Status = FdtSetProperty (Fdt, eSPINode, "compatible", "isa", (UINT32)(AsciiStrLen ("isa")+1)); Status = FdtSetProp (Fdt, eSPINode, "compatible", "isa", (UINT32)(AsciiStrLen ("isa")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (1); Data32 = CpuToFdt32 (1);
Status = FdtSetProperty (Fdt, eSPINode, "#size-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, eSPINode, "#size-cells", &Data32, sizeof (UINT32));
Data32 = CpuToFdt32 (2); Data32 = CpuToFdt32 (2);
Status = FdtSetProperty (Fdt, eSPINode, "#address-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, eSPINode, "#address-cells", &Data32, sizeof (UINT32));
Status = BuildFdtForSerial (eSPINode, FdtBase); Status = BuildFdtForSerial (eSPINode, FdtBase);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
@ -819,52 +819,52 @@ BuildFdtForFrameBuffer (
TempNode = FdtAddSubnode (Fdt, 0, TempStr); TempNode = FdtAddSubnode (Fdt, 0, TempStr);
ASSERT (TempNode > 0); ASSERT (TempNode > 0);
Status = FdtSetProperty (Fdt, TempNode, "display", "&gma", (UINT32)(AsciiStrLen ("&gma")+1)); Status = FdtSetProp (Fdt, TempNode, "display", "&gma", (UINT32)(AsciiStrLen ("&gma")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "format", "a8r8g8b8", (UINT32)(AsciiStrLen ("a8r8g8b8")+1)); Status = FdtSetProp (Fdt, TempNode, "format", "a8r8g8b8", (UINT32)(AsciiStrLen ("a8r8g8b8")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (GraphicsInfo->GraphicsMode.VerticalResolution); Data32 = CpuToFdt32 (GraphicsInfo->GraphicsMode.VerticalResolution);
Status = FdtSetProperty (Fdt, TempNode, "height", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "height", &Data32, sizeof (UINT32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (GraphicsInfo->GraphicsMode.HorizontalResolution); Data32 = CpuToFdt32 (GraphicsInfo->GraphicsMode.HorizontalResolution);
Status = FdtSetProperty (Fdt, TempNode, "width", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "width", &Data32, sizeof (UINT32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
RegData[0] = CpuToFdt64 (GraphicsInfo->FrameBufferBase); RegData[0] = CpuToFdt64 (GraphicsInfo->FrameBufferBase);
RegData[1] = CpuToFdt64 (GraphicsInfo->FrameBufferSize); RegData[1] = CpuToFdt64 (GraphicsInfo->FrameBufferSize);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegData, sizeof (RegData)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegData, sizeof (RegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "compatible", "simple-framebuffer", (UINT32)(AsciiStrLen ("simple-framebuffer")+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", "simple-framebuffer", (UINT32)(AsciiStrLen ("simple-framebuffer")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} else { } else {
Status = AsciiSPrint (TempStr, sizeof (TempStr), "framebuffer@%lX", 0xB0000000); Status = AsciiSPrint (TempStr, sizeof (TempStr), "framebuffer@%lX", 0xB0000000);
TempNode = FdtAddSubnode (Fdt, 0, TempStr); TempNode = FdtAddSubnode (Fdt, 0, TempStr);
ASSERT (TempNode > 0); ASSERT (TempNode > 0);
Status = FdtSetProperty (Fdt, TempNode, "display", "&gma", (UINT32)(AsciiStrLen ("&gma")+1)); Status = FdtSetProp (Fdt, TempNode, "display", "&gma", (UINT32)(AsciiStrLen ("&gma")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "format", "a8r8g8b8", (UINT32)(AsciiStrLen ("a8r8g8b8")+1)); Status = FdtSetProp (Fdt, TempNode, "format", "a8r8g8b8", (UINT32)(AsciiStrLen ("a8r8g8b8")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (1024); Data32 = CpuToFdt32 (1024);
Status = FdtSetProperty (Fdt, TempNode, "height", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "height", &Data32, sizeof (UINT32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Data32 = CpuToFdt32 (1280); Data32 = CpuToFdt32 (1280);
Status = FdtSetProperty (Fdt, TempNode, "width", &Data32, sizeof (UINT32)); Status = FdtSetProp (Fdt, TempNode, "width", &Data32, sizeof (UINT32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
RegData[0] = CpuToFdt64 (0xB0000000); RegData[0] = CpuToFdt64 (0xB0000000);
RegData[1] = CpuToFdt64 (0x500000); RegData[1] = CpuToFdt64 (0x500000);
Status = FdtSetProperty (Fdt, TempNode, "reg", &RegData, sizeof (RegData)); Status = FdtSetProp (Fdt, TempNode, "reg", &RegData, sizeof (RegData));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, TempNode, "compatible", "simple-framebuffer", (UINT32)(AsciiStrLen ("simple-framebuffer")+1)); Status = FdtSetProp (Fdt, TempNode, "compatible", "simple-framebuffer", (UINT32)(AsciiStrLen ("simple-framebuffer")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
@ -917,35 +917,35 @@ BuildFdtForUplRequired (
ASSERT (CpuHob != NULL); ASSERT (CpuHob != NULL);
if (mResourceAssigned) { if (mResourceAssigned) {
Status = FdtSetProperty (Fdt, UPLParaNode, "pci-enum-done", NULL, 0); Status = FdtSetProp (Fdt, UPLParaNode, "pci-enum-done", NULL, 0);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
BootMode = GetBootModeHob (); BootMode = GetBootModeHob ();
Data32 = CpuToFdt32 ((UINT32)CpuHob->SizeOfMemorySpace); Data32 = CpuToFdt32 ((UINT32)CpuHob->SizeOfMemorySpace);
Status = FdtSetProperty (Fdt, UPLParaNode, "addr-width", &Data32, sizeof (Data32)); Status = FdtSetProp (Fdt, UPLParaNode, "addr-width", &Data32, sizeof (Data32));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
if (BootMode == BOOT_WITH_FULL_CONFIGURATION) { if (BootMode == BOOT_WITH_FULL_CONFIGURATION) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "normal", (UINT32)(AsciiStrLen ("normal")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "normal", (UINT32)(AsciiStrLen ("normal")+1));
} else if (BootMode == BOOT_WITH_MINIMAL_CONFIGURATION) { } else if (BootMode == BOOT_WITH_MINIMAL_CONFIGURATION) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "fast", (UINT32)(AsciiStrLen ("fast")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "fast", (UINT32)(AsciiStrLen ("fast")+1));
} else if (BootMode == BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS) { } else if (BootMode == BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "full", (UINT32)(AsciiStrLen ("full")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "full", (UINT32)(AsciiStrLen ("full")+1));
} else if (BootMode == BOOT_WITH_DEFAULT_SETTINGS) { } else if (BootMode == BOOT_WITH_DEFAULT_SETTINGS) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "default", (UINT32)(AsciiStrLen ("default")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "default", (UINT32)(AsciiStrLen ("default")+1));
} else if (BootMode == BOOT_ON_S4_RESUME) { } else if (BootMode == BOOT_ON_S4_RESUME) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "s4", (UINT32)(AsciiStrLen ("s4")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "s4", (UINT32)(AsciiStrLen ("s4")+1));
} else if (BootMode == BOOT_ON_S3_RESUME) { } else if (BootMode == BOOT_ON_S3_RESUME) {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "s3", (UINT32)(AsciiStrLen ("s3")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "s3", (UINT32)(AsciiStrLen ("s3")+1));
} else { } else {
Status = FdtSetProperty (Fdt, UPLParaNode, "boot-mode", "na", (UINT32)(AsciiStrLen ("na")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "boot-mode", "na", (UINT32)(AsciiStrLen ("na")+1));
} }
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
Status = FdtSetProperty (Fdt, UPLParaNode, "compatible", "upl", (UINT32)(AsciiStrLen ("upl")+1)); Status = FdtSetProp (Fdt, UPLParaNode, "compatible", "upl", (UINT32)(AsciiStrLen ("upl")+1));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
GuidHob = GetFirstGuidHob (&gUniversalPayloadBaseGuid); GuidHob = GetFirstGuidHob (&gUniversalPayloadBaseGuid);
@ -958,7 +958,7 @@ BuildFdtForUplRequired (
UPLImageNode = FdtAddSubnode (Fdt, ParentNode, TempStr); UPLImageNode = FdtAddSubnode (Fdt, ParentNode, TempStr);
Data64 = CpuToFdt64 ((UINTN)Fit); Data64 = CpuToFdt64 ((UINTN)Fit);
Status = FdtSetProperty (FdtBase, UPLImageNode, "addr", &Data64, sizeof (Data64)); Status = FdtSetProp (FdtBase, UPLImageNode, "addr", &Data64, sizeof (Data64));
} }
CustomNode = FdtAddSubnode (Fdt, ParentNode, "upl-custom"); CustomNode = FdtAddSubnode (Fdt, ParentNode, "upl-custom");
@ -966,7 +966,7 @@ BuildFdtForUplRequired (
HobPtr = GetHobList (); HobPtr = GetHobList ();
Data64 = CpuToFdt64 ((UINT64)(EFI_PHYSICAL_ADDRESS)HobPtr); Data64 = CpuToFdt64 ((UINT64)(EFI_PHYSICAL_ADDRESS)HobPtr);
Status = FdtSetProperty (Fdt, CustomNode, "hoblistptr", &Data64, sizeof (Data64)); Status = FdtSetProp (Fdt, CustomNode, "hoblistptr", &Data64, sizeof (Data64));
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
return Status; return Status;

View File

@ -340,8 +340,8 @@ FdtPpiNotifyCallback (
// Set cell property of root node // Set cell property of root node
Data32 = CpuToFdt32 (2); Data32 = CpuToFdt32 (2);
Status = FdtSetProperty (FdtBase, 0, "#address-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (FdtBase, 0, "#address-cells", &Data32, sizeof (UINT32));
Status = FdtSetProperty (FdtBase, 0, "#size-cells", &Data32, sizeof (UINT32)); Status = FdtSetProp (FdtBase, 0, "#size-cells", &Data32, sizeof (UINT32));
Status = BuildFdtForUPL (FdtBase); Status = BuildFdtForUPL (FdtBase);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);