IN INT32 Node\r
)\r
{\r
- INT32 SubNode;\r
- INT32 TempLen;\r
- CONST CHAR8 *TempStr;\r
- CONST FDT_PROPERTY *PropertyPtr;\r
- UINT64 *Data64;\r
- UINT64 StartAddress;\r
- UINT64 NumberOfBytes;\r
- UNIVERSAL_PAYLOAD_ACPI_TABLE *PlatformAcpiTable;\r
- FDT_NODE_HEADER *NodePtr;\r
+ INT32 SubNode;\r
+ INT32 TempLen;\r
+ CONST CHAR8 *TempStr;\r
+ CONST FDT_PROPERTY *PropertyPtr;\r
+ UINT64 *Data64;\r
+ UINT64 StartAddress;\r
+ UINT64 NumberOfBytes;\r
+ UNIVERSAL_PAYLOAD_ACPI_TABLE *PlatformAcpiTable;\r
+ UNIVERSAL_PAYLOAD_SMBIOS_TABLE *SmbiosTable;\r
+ FDT_NODE_HEADER *NodePtr;\r
\r
PlatformAcpiTable = NULL;\r
\r
PlatformAcpiTable->Header.Revision = UNIVERSAL_PAYLOAD_ACPI_TABLE_REVISION;\r
PlatformAcpiTable->Header.Length = sizeof (UNIVERSAL_PAYLOAD_ACPI_TABLE);\r
}\r
+ } else if (AsciiStrnCmp (TempStr, "smbios", AsciiStrLen ("smbios")) == 0) {\r
+ DEBUG ((DEBUG_INFO, " build smbios, NumberOfBytes:%x", NumberOfBytes));\r
+ BuildMemoryAllocationHob (StartAddress, NumberOfBytes, EfiBootServicesData);\r
+ SmbiosTable = BuildGuidHob (&gUniversalPayloadSmbios3TableGuid, sizeof (UNIVERSAL_PAYLOAD_SMBIOS_TABLE));\r
+ if (SmbiosTable != NULL) {\r
+ SmbiosTable->Header.Revision = UNIVERSAL_PAYLOAD_SMBIOS_TABLE_REVISION;\r
+ SmbiosTable->Header.Length = sizeof (UNIVERSAL_PAYLOAD_SMBIOS_TABLE);\r
+ SmbiosTable->SmBiosEntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)(StartAddress);\r
+ }\r
} else if (AsciiStrnCmp (TempStr, "acpi-nvs", AsciiStrLen ("acpi-nvs")) == 0) {\r
DEBUG ((DEBUG_INFO, " acpi-nvs"));\r
BuildMemoryAllocationHob (StartAddress, NumberOfBytes, EfiACPIMemoryNVS);\r
} // end of memory node\r
else {\r
PropertyPtr = FdtGetProperty (Fdt, Node, "compatible", &TempLen);\r
- if (PropertyPtr == NULL)\r
+ if (PropertyPtr == NULL) {\r
continue;\r
- TempStr = (CHAR8 *)(PropertyPtr->Data);\r
+ }\r
+\r
+ TempStr = (CHAR8 *)(PropertyPtr->Data);\r
if (AsciiStrnCmp (TempStr, "pci-rb", AsciiStrLen ("pci-rb")) == 0) {\r
RootBridgeCount++;\r
}\r