* [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform @ 2020-02-14 13:41 Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 1/5] Platform/ARM/SgiPkg: Disable use of deprecated APIs Vijayenthiran Subramaniam ` (5 more replies) 0 siblings, 6 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham Changes since v2: - Rename i to Idx in Patch 2/5 - Retaining R-b in rest of the patches as there's no change Changes since v1: - Fix typo which caused build error This patch series adds support for RD-N1-Edge platform with multi-chip capability. The first patch in this series is an improvement to SgiPkg to avoid any usage of deprecated APIs. The second patch refactors the existing code to use lookup table in order to identify the platform. The rest of the patch adds multi-chip support for the RD-N1-Edge platform. Vijayenthiran Subramaniam (5): Platform/ARM/SgiPkg: Disable use of deprecated APIs Platform/ARM/SgiPkg: Use lookup table to install ACPI table Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform Platform/ARM/SgiPkg/SgiPlatform.dec | 1 + Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc | 3 + Platform/ARM/SgiPkg/SgiPlatform.dsc | 4 + Platform/ARM/SgiPkg/SgiPlatform.fdf | 1 + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 59 ++++++ Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf | 1 + Platform/ARM/SgiPkg/Include/SgiPlatform.h | 7 + Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 61 +++++- Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c | 8 + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc | 198 ++++++++++++++++++++ 10 files changed, 333 insertions(+), 10 deletions(-) create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [edk2-platforms] [PATCH v3 1/5] Platform/ARM/SgiPkg: Disable use of deprecated APIs 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam @ 2020-02-14 13:41 ` Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 2/5] Platform/ARM/SgiPkg: Use lookup table to install ACPI table Vijayenthiran Subramaniam ` (4 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham Add the `DISABLE_NEW_DEPRECATED_INTERFACES` build option in DSC file to make sure that the deprecated APIs are not used SgiPkg. Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> --- Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc | 3 +++ Platform/ARM/SgiPkg/SgiPlatform.dsc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc b/Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc index 7ae19560eaca..38bf6020ba4c 100644 --- a/Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc +++ b/Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc @@ -132,3 +132,6 @@ [Components.AARCH64] ################################################################################################### [BuildOptions.AARCH64] GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv8-a+nofp + +[BuildOptions] + *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dsc b/Platform/ARM/SgiPkg/SgiPlatform.dsc index a5b7eea1d3a8..e38cc7da52a5 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dsc +++ b/Platform/ARM/SgiPkg/SgiPlatform.dsc @@ -23,6 +23,9 @@ [Defines] !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc +[BuildOptions] + *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES + [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms] [PATCH v3 2/5] Platform/ARM/SgiPkg: Use lookup table to install ACPI table 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 1/5] Platform/ARM/SgiPkg: Disable use of deprecated APIs Vijayenthiran Subramaniam @ 2020-02-14 13:41 ` Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 3/5] Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor Vijayenthiran Subramaniam ` (3 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham Use lookup table to identify the platform and install corresponding ACPI tables. As the number of supported platforms grow, the existing platform identification using if..else does not scale well. Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> --- Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 49 ++++++++++++++++---- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c index 09e00e5d538b..db66fd1fb1cc 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c @@ -11,6 +11,35 @@ #include <Library/HobLib.h> #include <SgiPlatform.h> +typedef struct { + SGI_PLATFORM_DESCRIPTOR SgiPlafromDescriptor; + CONST EFI_GUID* AcpiTableGuid; +} 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) \ +{ \ + { \ + PART_NUM, CONFIG_NUM \ + }, \ + GUID \ +} \ + +STATIC SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP AcpiTableGuidLookup[] = { + ACPI_GUID_LOOKUP ( + SGI575_PART_NUM, + SGI575_CONF_NUM, + &gSgi575AcpiTablesFileGuid), + ACPI_GUID_LOOKUP ( + RD_N1E1_EDGE_PART_NUM, + RD_N1_EDGE_CONF_ID, + &gRdN1EdgeAcpiTablesFileGuid), + ACPI_GUID_LOOKUP ( + RD_N1E1_EDGE_PART_NUM, + RD_E1_EDGE_CONF_ID, + &gRdE1EdgeAcpiTablesFileGuid), +}; + VOID InitVirtioDevices ( VOID @@ -26,6 +55,7 @@ ArmSgiPkgEntryPoint ( EFI_STATUS Status; VOID *SystemIdHob; SGI_PLATFORM_DESCRIPTOR *HobData; + UINTN Idx; UINT32 ConfigId; UINT32 PartNum; @@ -40,16 +70,15 @@ ArmSgiPkgEntryPoint ( PartNum = HobData->PlatformId; ConfigId = HobData->ConfigId; - if ((PartNum == SGI575_PART_NUM) && (ConfigId == SGI575_CONF_NUM)) { - Status = LocateAndInstallAcpiFromFv (&gSgi575AcpiTablesFileGuid); - } else if ((PartNum == RD_N1E1_EDGE_PART_NUM) && - (ConfigId == RD_N1_EDGE_CONF_ID)) { - Status = LocateAndInstallAcpiFromFv (&gRdN1EdgeAcpiTablesFileGuid); - } else if ((PartNum == RD_N1E1_EDGE_PART_NUM) && - (ConfigId == RD_E1_EDGE_CONF_ID)) { - Status = LocateAndInstallAcpiFromFv (&gRdE1EdgeAcpiTablesFileGuid); - } else { - Status = EFI_UNSUPPORTED; + 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)) { + Status = LocateAndInstallAcpiFromFv (AcpiTableGuidLookup[Idx].AcpiTableGuid); + break; + } } if (EFI_ERROR (Status)) { -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms] [PATCH v3 3/5] Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 1/5] Platform/ARM/SgiPkg: Disable use of deprecated APIs Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 2/5] Platform/ARM/SgiPkg: Use lookup table to install ACPI table Vijayenthiran Subramaniam @ 2020-02-14 13:41 ` Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 4/5] Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform Vijayenthiran Subramaniam ` (2 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham The 'system-id' node of HW_CONFIG device tree has been updated to have a new property 'multi-chip-mode' which holds the information about the multi-chip-mode support. To adapt to this change, add 'MultiChipMode' member to SGI_PLATFORM_DESCRIPTOR structure to get 'multi-chip-mode' property from fdt. Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> --- Platform/ARM/SgiPkg/Include/SgiPlatform.h | 4 ++++ Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 13 ++++++++++--- Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c | 8 ++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPkg/Include/SgiPlatform.h index e4a2e8cc0971..7c9322d1cda9 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -79,10 +79,14 @@ #define SGI_CONFIG_SHIFT 0x1C #define SGI_PART_NUM_MASK 0xFFF +#define MULTI_CHIP_MODE_DISABLED 0x0 +#define MULTI_CHIP_MODE_ENABLED 0x1 + // ARM platform description data. typedef struct { UINTN PlatformId; UINTN ConfigId; + UINTN MultiChipMode; } SGI_PLATFORM_DESCRIPTOR; #endif // __SGI_PLATFORM_H__ diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c index db66fd1fb1cc..6e4522180f45 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c @@ -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; } diff --git a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c index 4daa1832dfaf..7df52cc4fd7c 100644 --- a/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c +++ b/Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c @@ -75,6 +75,14 @@ GetSgiSystemId ( HobData->ConfigId = fdt32_to_cpu (*Property); + Property = fdt_getprop (NtFwCfgDtBlob, Offset, "multi-chip-mode", NULL); + if (Property == NULL) { + DEBUG ((DEBUG_WARN, "multi-chip-mode property not found\n")); + HobData->MultiChipMode = 0; + } else { + HobData->MultiChipMode = fdt32_to_cpu (*Property); + } + return EFI_SUCCESS; } -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms] [PATCH v3 4/5] Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam ` (2 preceding siblings ...) 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 3/5] Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor Vijayenthiran Subramaniam @ 2020-02-14 13:41 ` Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 5/5] Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam 2020-02-18 20:34 ` [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add " Leif Lindholm 5 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham RD-N1-Edge supports a dual-chip configuration in which two RD-N1-Edge platforms are connected through high speed CCIX link. In this dual-chip configuration, the CPU and core GIC Redistributors count are doubled. Add ACPI tables for dual-chip RD-N1-Edge platform. Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> --- Platform/ARM/SgiPkg/SgiPlatform.dec | 1 + Platform/ARM/SgiPkg/SgiPlatform.dsc | 1 + Platform/ARM/SgiPkg/SgiPlatform.fdf | 1 + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 59 ++++++ Platform/ARM/SgiPkg/Include/SgiPlatform.h | 3 + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc | 198 ++++++++++++++++++++ 6 files changed, 263 insertions(+) diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dec b/Platform/ARM/SgiPkg/SgiPlatform.dec index 229552ea7842..9d70ec677776 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dec +++ b/Platform/ARM/SgiPkg/SgiPlatform.dec @@ -28,6 +28,7 @@ [Guids.common] gArmSgiTokenSpaceGuid = { 0x577d6941, 0xaea1, 0x40b4, { 0x90, 0x93, 0x2a, 0x86, 0x61, 0x72, 0x5a, 0x57 } } gSgi575AcpiTablesFileGuid = { 0xc712719a, 0x0aaf, 0x438c, { 0x9c, 0xdd, 0x35, 0xab, 0x4d, 0x60, 0x20, 0x7d } } gRdN1EdgeAcpiTablesFileGuid = { 0x4b0b91d0, 0x4a05, 0x45c4, { 0x88, 0xa7, 0x88, 0xe1, 0x70, 0xe7, 0x66, 0x94 } } + gRdN1EdgeX2AcpiTablesFileGuid = { 0x82a34150, 0x0fc6, 0x45f4, { 0x8e, 0xa0, 0xf0, 0xa4, 0x66, 0x0c, 0xf3, 0x5d } } gRdE1EdgeAcpiTablesFileGuid = { 0x2af40815, 0xa84e, 0x4de9, { 0x8c, 0x38, 0x91, 0x40, 0xb3, 0x54, 0x40, 0x73 } } [PcdsFeatureFlag.common] diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dsc b/Platform/ARM/SgiPkg/SgiPlatform.dsc index e38cc7da52a5..5226c5751e98 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dsc +++ b/Platform/ARM/SgiPkg/SgiPlatform.dsc @@ -279,6 +279,7 @@ [Components.common] MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf + Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf diff --git a/Platform/ARM/SgiPkg/SgiPlatform.fdf b/Platform/ARM/SgiPkg/SgiPlatform.fdf index 44e571a184bf..3d13998015b9 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.fdf +++ b/Platform/ARM/SgiPkg/SgiPlatform.fdf @@ -101,6 +101,7 @@ [FV.FvMain] INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf INF RuleOverride=ACPITABLE Platform/ARM/SgiPkg/AcpiTables/Sgi575AcpiTables.inf INF RuleOverride=ACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeAcpiTables.inf + INF RuleOverride=ACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf INF RuleOverride=ACPITABLE Platform/ARM/SgiPkg/AcpiTables/RdE1EdgeAcpiTables.inf INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf new file mode 100644 index 000000000000..1b584b152455 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf @@ -0,0 +1,59 @@ +## @file +# ACPI table data and ASL sources required to boot the platform. +# +# Copyright (c) 2020, ARM Ltd. All rights reserved. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x0001001A + BASE_NAME = RdN1EdgeX2AcpiTables + FILE_GUID = 82a34150-0fc6-45f4-8ea0-f0a4660cf35d + MODULE_TYPE = USER_DEFINED + VERSION_STRING = 1.0 + +[Sources] + Dbg2.aslc + Fadt.aslc + Gtdt.aslc + Iort.aslc + Mcfg.aslc + RdN1Edge/Dsdt.asl + RdN1EdgeX2/Madt.aslc + Spcr.aslc + Ssdt.asl + +[Packages] + ArmPkg/ArmPkg.dec + ArmPlatformPkg/ArmPlatformPkg.dec + EmbeddedPkg/EmbeddedPkg.dec + MdePkg/MdePkg.dec + Platform/ARM/SgiPkg/SgiPlatform.dec + +[FixedPcd] + gArmPlatformTokenSpaceGuid.PcdCoreCount + gArmPlatformTokenSpaceGuid.PcdClusterCount + gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase + gArmPlatformTokenSpaceGuid.PL011UartInterrupt + + gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum + gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum + gArmTokenSpaceGuid.PcdGicDistributorBase + gArmTokenSpaceGuid.PcdGicRedistributorsBase + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase + gArmTokenSpaceGuid.PcdPciBusMin + gArmTokenSpaceGuid.PcdPciBusMax + + gArmSgiTokenSpaceGuid.PcdVirtioBlkBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioBlkSize + gArmSgiTokenSpaceGuid.PcdVirtioBlkInterrupt + gArmSgiTokenSpaceGuid.PcdVirtioNetBaseAddress + gArmSgiTokenSpaceGuid.PcdVirtioNetSize + gArmSgiTokenSpaceGuid.PcdVirtioNetInterrupt + + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress diff --git a/Platform/ARM/SgiPkg/Include/SgiPlatform.h b/Platform/ARM/SgiPkg/Include/SgiPlatform.h index 7c9322d1cda9..e36a412155ff 100644 --- a/Platform/ARM/SgiPkg/Include/SgiPlatform.h +++ b/Platform/ARM/SgiPkg/Include/SgiPlatform.h @@ -82,6 +82,9 @@ #define MULTI_CHIP_MODE_DISABLED 0x0 #define MULTI_CHIP_MODE_ENABLED 0x1 +// Remote chip address offset (4TB per chip) +#define SGI_REMOTE_CHIP_MEM_OFFSET(n) ((1ULL << 42) * (n)) + // ARM platform description data. typedef struct { UINTN PlatformId; diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc new file mode 100644 index 000000000000..d4538233d760 --- /dev/null +++ b/Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc @@ -0,0 +1,198 @@ +/** @file +* Multiple APIC Description Table (MADT) +* +* Copyright (c) 2019, ARM Limited. All rights reserved. +* +* SPDX-License-Identifier: BSD-2-Clause-Patent +* +**/ + +#include "SgiPlatform.h" +#include "SgiAcpiHeader.h" +#include <Library/AcpiLib.h> +#include <Library/ArmLib.h> +#include <Library/PcdLib.h> +#include <IndustryStandard/Acpi.h> + +#define CORE_CNT (FixedPcdGet32 (PcdClusterCount) * \ + FixedPcdGet32 (PcdCoreCount)) + +#define CHIP_CNT 2 + +// EFI_ACPI_6_2_GIC_STRUCTURE +#define EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, \ + PmuIrq, GicBase, GicVBase, GicHBase, GsivId, GicRBase, Efficiency) \ + { \ + EFI_ACPI_6_2_GIC, /* Type */ \ + sizeof (EFI_ACPI_6_2_GIC_STRUCTURE), /* Length */ \ + EFI_ACPI_RESERVED_WORD, /* Reserved */ \ + GicId, /* CPUInterfaceNumber */ \ + AcpiCpuUid, /* AcpiProcessorUid */ \ + Flags, /* Flags */ \ + 0, /* ParkingProtocolVersion */ \ + PmuIrq, /* PerformanceInterruptGsiv */ \ + 0, /* ParkedAddress */ \ + GicBase, /* PhysicalBaseAddress */ \ + GicVBase, /* GICV */ \ + GicHBase, /* GICH */ \ + GsivId, /* VGICMaintenanceInterrupt */ \ + GicRBase, /* GICRBaseAddress */ \ + Mpidr, /* MPIDR */ \ + Efficiency, /* ProcessorPowerEfficiencyClass */ \ + { \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ + EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ + } \ + } + +// EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE +#define EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(GicDistHwId, GicDistBase, \ + GicDistVector, GicVersion) \ + { \ + EFI_ACPI_6_2_GICD, /* Type */ \ + sizeof (EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE), \ + EFI_ACPI_RESERVED_WORD, /* Reserved1 */ \ + GicDistHwId, /* GicId */ \ + GicDistBase, /* PhysicalBaseAddress */ \ + GicDistVector, /* SystemVectorBase */ \ + GicVersion, /* GicVersion */ \ + { \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[0] */ \ + EFI_ACPI_RESERVED_BYTE, /* Reserved2[1] */ \ + EFI_ACPI_RESERVED_BYTE /* Reserved2[2] */ \ + } \ + } + +// EFI_ACPI_6_2_GICR_STRUCTURE +#define EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(RedisRegionAddr, RedisDiscLength) \ + { \ + EFI_ACPI_6_2_GICR, /* Type */ \ + sizeof (EFI_ACPI_6_2_GICR_STRUCTURE), /* Length */ \ + EFI_ACPI_RESERVED_WORD, /* Reserved */ \ + RedisRegionAddr, /* DiscoveryRangeBaseAddress */ \ + RedisDiscLength /* DiscoveryRangeLength */ \ + } + +// Multiple APIC Description Table +#pragma pack (1) + +typedef struct { + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER Header; + EFI_ACPI_6_2_GIC_STRUCTURE GicInterfaces[CORE_CNT * CHIP_CNT]; + EFI_ACPI_6_2_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; + EFI_ACPI_6_2_GICR_STRUCTURE GicRedistributor[CHIP_CNT]; +} EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE; + +#pragma pack () + +STATIC EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { + { + ARM_ACPI_HEADER ( + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE, + EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION + ), + // MADT specific fields + 0, // LocalApicAddress + 0 // Flags + }, + { + // Format: EFI_ACPI_6_2_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr, Flags, + // PmuIrq, GicBase, GicVBase, + // GicHBase, GsivId, GicRBase, + // Efficiency) + // Note: The GIC Structure of the primary CPU must be the first entry + // (see note in 5.2.12.14 GICC Structure of ACPI v6.2). + + // Chip - 0 CPUs + + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-0 + 0, 0, GET_MPID(0x0, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-1 + 0, 1, GET_MPID(0x0, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-2 + 0, 2, GET_MPID(0x0, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-3 + 0, 3, GET_MPID(0x0, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-4 + 0, 4, GET_MPID(0x100, 0x00), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-5 + 0, 5, GET_MPID(0x100, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-6 + 0, 6, GET_MPID(0x100, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-7 + 0, 7, GET_MPID(0x100, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + // Chip - 1 CPUs + + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-8 + 0, 8, GET_MPID(0x01000000ULL, 0x0), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-9 + 0, 9, GET_MPID(0x01000000ULL, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-10 + 0, 10, GET_MPID(0x01000000ULL, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-11 + 0, 11, GET_MPID(0x01000000ULL, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-12 + 0, 12, GET_MPID(0x01000100ULL, 0x00ULL), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-13 + 0, 13, GET_MPID(0x01000100ULL, 0x100), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-14 + 0, 14, GET_MPID(0x01000100ULL, 0x200), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */), + EFI_ACPI_6_2_GICC_STRUCTURE_INIT( // Neoverse-N1-15 + 0, 15, GET_MPID(0x01000100ULL, 0x300), EFI_ACPI_6_2_GIC_ENABLED, 23, + FixedPcdGet32 (PcdGicDistributorBase), + 0x2c020000, 0x2c010000, 25, 0 /* GicRBase */, 0 /* Efficiency */) + }, + // GIC Distributor Entry + EFI_ACPI_6_2_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet32 (PcdGicDistributorBase), + 0, 3), + { + // GIC Redistributor for Chip 0 + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsBase), + SIZE_1MB), + // GIC Redistributor for Chip 1 + EFI_ACPI_6_2_GIC_REDISTRIBUTOR_INIT(FixedPcdGet32 (PcdGicRedistributorsBase) + + SGI_REMOTE_CHIP_MEM_OFFSET(1), + SIZE_1MB) + } +}; + +// +// Reference the table being generated to prevent the optimizer from removing +// the data structure from the executable +// +VOID* CONST ReferenceAcpiTable = &Madt; -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [edk2-platforms] [PATCH v3 5/5] Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam ` (3 preceding siblings ...) 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 4/5] Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform Vijayenthiran Subramaniam @ 2020-02-14 13:41 ` Vijayenthiran Subramaniam 2020-02-18 20:34 ` [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add " Leif Lindholm 5 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-14 13:41 UTC (permalink / raw) To: devel, leif, michael.d.kinney, Ard.Biesheuvel; +Cc: thomas.abraham For RD-N1-Edge platforms, use multi-chip-mode information from the SGI platform descriptor HOB to pick the correct ACPI table to be installed. Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> --- Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf | 1 + Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf index a95c0d1dddd6..741dcc75ed6a 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf @@ -32,6 +32,7 @@ [Guids] gArmSgiPlatformIdDescriptorGuid gSgi575AcpiTablesFileGuid gRdN1EdgeAcpiTablesFileGuid + gRdN1EdgeX2AcpiTablesFileGuid gRdE1EdgeAcpiTablesFileGuid [FeaturePcd] diff --git a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c index 6e4522180f45..387397d74598 100644 --- a/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c +++ b/Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c @@ -38,6 +38,11 @@ STATIC SGI_PLATFORM_ACPI_TABLE_GUID_LOOKUP AcpiTableGuidLookup[] = { &gRdN1EdgeAcpiTablesFileGuid), ACPI_GUID_LOOKUP ( RD_N1E1_EDGE_PART_NUM, + RD_N1_EDGE_CONF_ID, + MULTI_CHIP_MODE_ENABLED, + &gRdN1EdgeX2AcpiTablesFileGuid), + ACPI_GUID_LOOKUP ( + RD_N1E1_EDGE_PART_NUM, RD_E1_EDGE_CONF_ID, MULTI_CHIP_MODE_DISABLED, &gRdE1EdgeAcpiTablesFileGuid), -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam ` (4 preceding siblings ...) 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 5/5] Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam @ 2020-02-18 20:34 ` Leif Lindholm 2020-02-19 8:45 ` [edk2-devel] " Vijayenthiran Subramaniam 5 siblings, 1 reply; 8+ messages in thread From: Leif Lindholm @ 2020-02-18 20:34 UTC (permalink / raw) To: Vijayenthiran Subramaniam Cc: devel, michael.d.kinney, Ard.Biesheuvel, thomas.abraham On Fri, Feb 14, 2020 at 19:11:29 +0530, Vijayenthiran Subramaniam wrote: > Changes since v2: > - Rename i to Idx in Patch 2/5 > - Retaining R-b in rest of the patches as there's no change > > Changes since v1: > - Fix typo which caused build error > > This patch series adds support for RD-N1-Edge platform with multi-chip > capability. The first patch in this series is an improvement to SgiPkg to avoid > any usage of deprecated APIs. The second patch refactors the existing code to > use lookup table in order to identify the platform. The rest of the patch adds > multi-chip support for the RD-N1-Edge platform. For remaining patches: Reviewed-by: Leif Lindholm <leif@nuviainc.com> Series pushed as 41c1d9ba3304..2fb4670d9f68. However, while test building I noticed the SGI platform currently fails to build with clang (version 7 in my case). This fails also before this set however. But could you please look into the warnings in Platform/ARM/SgiPkg/Drivers/PlatformDxe/VirtioDevices.c ? Regards, Leif > Vijayenthiran Subramaniam (5): > Platform/ARM/SgiPkg: Disable use of deprecated APIs > Platform/ARM/SgiPkg: Use lookup table to install ACPI table > Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor > Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform > Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform > > Platform/ARM/SgiPkg/SgiPlatform.dec | 1 + > Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc | 3 + > Platform/ARM/SgiPkg/SgiPlatform.dsc | 4 + > Platform/ARM/SgiPkg/SgiPlatform.fdf | 1 + > Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 59 ++++++ > Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf | 1 + > Platform/ARM/SgiPkg/Include/SgiPlatform.h | 7 + > Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 61 +++++- > Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c | 8 + > Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc | 198 ++++++++++++++++++++ > 10 files changed, 333 insertions(+), 10 deletions(-) > create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf > create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc > > -- > 2.7.4 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [edk2-devel] [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform 2020-02-18 20:34 ` [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add " Leif Lindholm @ 2020-02-19 8:45 ` Vijayenthiran Subramaniam 0 siblings, 0 replies; 8+ messages in thread From: Vijayenthiran Subramaniam @ 2020-02-19 8:45 UTC (permalink / raw) To: devel, leif; +Cc: michael.d.kinney, Ard.Biesheuvel, Thomas Abraham Hi Leif, On Tue, Feb 18, 2020 at 8:34 PM Leif Lindholm <leif@nuviainc.com> wrote: > > On Fri, Feb 14, 2020 at 19:11:29 +0530, Vijayenthiran Subramaniam wrote: > > Changes since v2: > > - Rename i to Idx in Patch 2/5 > > - Retaining R-b in rest of the patches as there's no change > > > > Changes since v1: > > - Fix typo which caused build error > > > > This patch series adds support for RD-N1-Edge platform with multi-chip > > capability. The first patch in this series is an improvement to SgiPkg to avoid > > any usage of deprecated APIs. The second patch refactors the existing code to > > use lookup table in order to identify the platform. The rest of the patch adds > > multi-chip support for the RD-N1-Edge platform. > > For remaining patches: > Reviewed-by: Leif Lindholm <leif@nuviainc.com> > > Series pushed as 41c1d9ba3304..2fb4670d9f68. > > However, while test building I noticed the SGI platform currently > fails to build with clang (version 7 in my case). This fails also > before this set however. > > But could you please look into the warnings in > Platform/ARM/SgiPkg/Drivers/PlatformDxe/VirtioDevices.c > ? Thanks for checking. I've posted a patch fixing this: https://edk2.groups.io/g/devel/message/54618 > > Regards, > > Leif > > > Vijayenthiran Subramaniam (5): > > Platform/ARM/SgiPkg: Disable use of deprecated APIs > > Platform/ARM/SgiPkg: Use lookup table to install ACPI table > > Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor > > Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform > > Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform > > > > Platform/ARM/SgiPkg/SgiPlatform.dec | 1 + > > Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc | 3 + > > Platform/ARM/SgiPkg/SgiPlatform.dsc | 4 + > > Platform/ARM/SgiPkg/SgiPlatform.fdf | 1 + > > Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf | 59 ++++++ > > Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.inf | 1 + > > Platform/ARM/SgiPkg/Include/SgiPlatform.h | 7 + > > Platform/ARM/SgiPkg/Drivers/PlatformDxe/PlatformDxe.c | 61 +++++- > > Platform/ARM/SgiPkg/Library/SgiPlatformPei/SgiPlatformPeim.c | 8 + > > Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc | 198 ++++++++++++++++++++ > > 10 files changed, 333 insertions(+), 10 deletions(-) > > create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2AcpiTables.inf > > create mode 100644 Platform/ARM/SgiPkg/AcpiTables/RdN1EdgeX2/Madt.aslc > > > > -- > > 2.7.4 Regards, Vijay ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-02-19 8:45 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-02-14 13:41 [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 1/5] Platform/ARM/SgiPkg: Disable use of deprecated APIs Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 2/5] Platform/ARM/SgiPkg: Use lookup table to install ACPI table Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 3/5] Platform/ARM/SgiPkg: Add MultiChipMode to Platform Descriptor Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 4/5] Platform/ARM/Sgi: Add ACPI tables for dual-chip RD-N1-Edge platform Vijayenthiran Subramaniam 2020-02-14 13:41 ` [edk2-platforms] [PATCH v3 5/5] Platform/ARM/Sgi: Add initial support for RD-N1-Edge-Dual platform Vijayenthiran Subramaniam 2020-02-18 20:34 ` [edk2-platforms] [PATCH v3 0/5] Platform/ARM/SgiPkg: Add " Leif Lindholm 2020-02-19 8:45 ` [edk2-devel] " Vijayenthiran Subramaniam
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox