|
@@ -17,10 +17,10 @@ typedef struct {
|
|
|
} SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP;
|
|
|
|
|
|
// Macro to construct the SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP structure
|
|
|
-#define ACPI_GUID_LOOKUP(PART_NUM, CONFIG_NUM, GUID) \
|
|
|
+#define ACPI_GUID_LOOKUP(PART_NUM, CONFIG_NUM, MULTI_CHIP_MODE, GUID) \
|
|
|
{ \
|
|
|
{ \
|
|
|
- PART_NUM, CONFIG_NUM \
|
|
|
+ PART_NUM, CONFIG_NUM, MULTI_CHIP_MODE \
|
|
|
}, \
|
|
|
GUID \
|
|
|
} \
|
|
@@ -29,14 +29,17 @@ STATIC SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP AcpiTableGuidLookup[] = {
|
|
|
ACPI_GUID_LOOKUP (
|
|
|
SGI575_PART_NUM,
|
|
|
SGI575_CONF_NUM,
|
|
|
+ MULTI_CHIP_MODE_DISABLED,
|
|
|
&gSgi575AcpiTablesFileGuid),
|
|
|
ACPI_GUID_LOOKUP (
|
|
|
RD_N1E1_EDGE_PART_NUM,
|
|
|
RD_N1_EDGE_CONF_ID,
|
|
|
+ MULTI_CHIP_MODE_DISABLED,
|
|
|
&gRdN1EdgeAcpiTablesFileGuid),
|
|
|
ACPI_GUID_LOOKUP (
|
|
|
RD_N1E1_EDGE_PART_NUM,
|
|
|
RD_E1_EDGE_CONF_ID,
|
|
|
+ MULTI_CHIP_MODE_DISABLED,
|
|
|
&gRdE1EdgeAcpiTablesFileGuid),
|
|
|
};
|
|
|
|
|
@@ -58,6 +61,7 @@ ArmSgiPkgEntryPoint (
|
|
|
UINTN Idx;
|
|
|
UINT32 ConfigId;
|
|
|
UINT32 PartNum;
|
|
|
+ UINT32 MultiChipMode;
|
|
|
|
|
|
SystemIdHob = GetFirstGuidHob (&gArmSgiPlatformIdDescriptorGuid);
|
|
|
if (SystemIdHob == NULL) {
|
|
@@ -69,13 +73,16 @@ ArmSgiPkgEntryPoint (
|
|
|
|
|
|
PartNum = HobData->PlatformId;
|
|
|
ConfigId = HobData->ConfigId;
|
|
|
+ MultiChipMode = HobData->MultiChipMode;
|
|
|
|
|
|
Status = EFI_UNSUPPORTED;
|
|
|
|
|
|
// Walk through the AcpiTableGuidLookup lookup array
|
|
|
for (Idx = 0; Idx < ARRAY_SIZE (AcpiTableGuidLookup); Idx++) {
|
|
|
if ((PartNum == AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.PlatformId) &&
|
|
|
- (ConfigId == AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.ConfigId)) {
|
|
|
+ (ConfigId == AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.ConfigId) &&
|
|
|
+ (MultiChipMode ==
|
|
|
+ AcpiTableGuidLookup[Idx].SgiPlafromDescriptor.MultiChipMode)) {
|
|
|
Status = LocateAndInstallAcpiFromFv (AcpiTableGuidLookup[Idx].AcpiTableGuid);
|
|
|
break;
|
|
|
}
|