From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.51788.1643736163987097938 for ; Tue, 01 Feb 2022 09:22:44 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7CA2C11B3; Tue, 1 Feb 2022 09:22:43 -0800 (PST) Received: from e126645.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 25D683F40C; Tue, 1 Feb 2022 09:22:42 -0800 (PST) From: "PierreGondois" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Sami Mujawar , Rebecca Cran , Pierre Gondois Subject: [PATCH v5 0/9] Add ACPI support for Kvmtool Date: Tue, 1 Feb 2022 18:22:43 +0100 Message-Id: <20220201172252.799725-1-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Pierre Gondois Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3742 V1: https://edk2.groups.io/g/devel/message/76990 V2: - New patch: "DynamicTablesPkg: Print specifier macro for CM_OBJECT_ID" [Laszlo] - Only add AcpiView for ArmVirtKvmTool instead of all ArmVirt platforms. This is done using a 'ACPIVIEW_ENABLE' switch. [Laszlo] - Only generate ACPI tables for AARCH64. [Laszlo] - Various modifications (error handling, patch organization, coding style, etc). [Laszlo] V3: - To fix bugs reported by Linux (signaled by Ard): - Add patch to parse and populate PMU information. - Add patch to strictly comply to the first model at ACPI 6.4 s6.2.13 to describe PCI legacy interrupts using _PRT. - Add address size limit to IORT PCI root complex. V4: - Describe PCI legacy interrupts using GSI and remove link device generation. [Pierre] - Add more description in ASSERT macros. [Ard] V5: - Update DSDT revision to 2. [Rebecca] The changes can be seen at: https://github.com/PierreARM/edk2/tree/1456_Add_ACPI_support_for_Kvmtool_= v5 The results of the CI can be seen at: https://github.com/tianocore/edk2/pull/2476 The patch depends on the KvmTool patch at: https://lists.cs.columbia.edu/pipermail/kvmarm/2022-January/051865.html Kvmtool dynamically generates a device tree describing the platform to boot on. Using the patch-sets listed below, the DynamicTables framework generates ACPI tables describing a similar platform. This patch-set: - adds a ConfigurationManager and make use of the DynamicTablesPkg in for Kvmtool for AARCH64, allowing to generate ACPI tables - adds the acpiview command line utility to the ArmVirtPkg platform that request if via the ACPIVIEW_ENABLE macro - update ArmVirtPkg.ci.yaml to add new words and use the DynamicTablesPkg - adds a print specifier macro for the CM_OBJECT_ID type With this patchset, KvmTool on AARCH64 will use ACPI tables instead of a Device Tree (cf PcdForceNoAcpi Pcd). Pierre Gondois (5): DynamicTablesPkg: Print specifier macro for CM_OBJECT_ID DynamicTablesPkg: FdtHwInfoParserLib: Parse Pmu info DynamicTablesPkg: AmlLib: AmlAddPrtEntry() to handle GSI DynamicTablesPkg: AcpiSsdtPcieLibArm: Remove link device generation ArmVirtPkg: Add cspell exceptions Sami Mujawar (4): ArmVirtPkg/Kvmtool: Add DSDT ACPI table ArmVirtPkg/Kvmtool: Add Configuration Manager ArmVirtPkg/Kvmtool: Enable ACPI support ArmVirtPkg/Kvmtool: Enable Acpiview ArmVirtPkg/ArmVirt.dsc.inc | 5 +- ArmVirtPkg/ArmVirtKvmTool.dsc | 22 +- ArmVirtPkg/ArmVirtKvmTool.fdf | 15 +- ArmVirtPkg/ArmVirtPkg.ci.yaml | 6 +- .../KvmtoolCfgMgrDxe/AslTables/Dsdt.asl | 21 + .../KvmtoolCfgMgrDxe/ConfigurationManager.c | 1065 +++++++++++++++++ .../KvmtoolCfgMgrDxe/ConfigurationManager.h | 125 ++ .../ConfigurationManagerDxe.inf | 54 + .../Include/ConfigurationManagerObject.h | 7 +- .../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c | 239 +--- .../AcpiSsdtPcieLibArm/SsdtPcieGenerator.h | 64 +- .../Common/AmlLib/CodeGen/AmlCodeGen.c | 89 +- .../FdtHwInfoParserLib/Gic/ArmGicCParser.c | 132 +- .../FdtHwInfoParserLib/Gic/ArmGicCParser.h | 8 +- 14 files changed, 1518 insertions(+), 334 deletions(-) create mode 100644 ArmVirtPkg/KvmtoolCfgMgrDxe/AslTables/Dsdt.asl create mode 100644 ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c create mode 100644 ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.h create mode 100644 ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManagerDxe.i= nf --=20 2.25.1