[edk2-devel] [PATCH v5 0/9] Add ACPI support for Kvmtool

PierreGondois posted 9 patches 2 years, 2 months ago
Failed in applying to current master (apply log)
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.inf
[edk2-devel] [PATCH v5 0/9] Add ACPI support for Kvmtool
Posted by PierreGondois 2 years, 2 months ago
From: Pierre Gondois <Pierre.Gondois@arm.com>

Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3742
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.inf

-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86303): https://edk2.groups.io/g/devel/message/86303
Mute This Topic: https://groups.io/mt/88838048/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v5 0/9] Add ACPI support for Kvmtool
Posted by Ard Biesheuvel 2 years, 2 months ago
On Tue, 1 Feb 2022 at 18:23, <Pierre.Gondois@arm.com> wrote:
>
> From: Pierre Gondois <Pierre.Gondois@arm.com>
>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3742
> 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
>

Merged as #2477

Thanks!

Btw, my patch 'ArmVirtPkg/ArmVirtMemoryInitPeiLib: avoid redundant
cache invalidation' reduces the startup time of the firmware
substantially when running on an actual KVM host.


> 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.inf
>
> --
> 2.25.1
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86314): https://edk2.groups.io/g/devel/message/86314
Mute This Topic: https://groups.io/mt/88838048/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-