[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT
From: |
Sunil V L |
Subject: |
[PATCH v6 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT |
Date: |
Thu, 2 Nov 2023 22:32:10 +0530 |
This series primarily enables external interrupt controllers (AIA and PLIC)
in ACPI tables for RISC-V virt platform. It also updates RHCT with CMO and
MMU related information.
Below ECRs for these changes are approved by ASWG and will be
available in next ACPI spec release.
1) MADT (AIA) -
https://drive.google.com/file/d/1oMGPyOD58JaPgMl1pKasT-VKsIKia7zR/view?usp=sharing
2) RHCT -
https://drive.google.com/file/d/1sKbOa8m1UZw1JkquZYe3F1zQBN1xXsaf/view?usp=sharing
First two patches in this series are to migrate a couple of functions from
ARM architecture to common code so that RISC-V doesn't need to duplicate
the same.
The patch set is based on Alistair's riscv-to-apply.next branch.
These changes are also available in riscv_acpi_b2_v6 branch at:
https://github.com/vlsunil/qemu/
Changes since v5:
1) Fixed the issue in PATCH 2 reported by Daniel found when built with
clang + --enable-debug.
Changes since v4:
1) Updated copyright for new files as per SPDX format suggested by Drew.
2) Updated RINTC patch to avoid code duplication as suggested by Drew.
3) Moved mmu offset below cmo in MMU patch as suggested by Drew.
4) Updated tags.
Changes since v3:
1) Addressed comments from Daniel and Drew.
2) Added a new patch in microvm to use common function for virtio in
DSDT.
3) Rebased to latest riscv-to-apply.next branch and added tags.
Changes since v2:
1) Rebased to latest riscv-to-apply.next branch which needed
changing ext_icboz to ext_zicboz in CMO patch.
2) Fixed node type in MMU node.
3) Added latest tags.
Changes since v1:
1) As per Igor's suggestion, migrated fw_cfg and virtio creation
functions to device specific file instead of generic aml-build.c.
Since ACPI is optional, new files are created and enabled for
build only when CONFIG_ACPI is enabled.
2) As per Igor's suggestion, properties are added to the GPEX PCI
host to indicate MMIO ranges. The platform fw can initialize
these to appropriate values and the DSDT generator can fetch
the information from the host bus itself. This makes the code
generic instead of machine specific.
3) Added PLIC patch from Haibo.
4) Rebased to latest riscv-to-apply.next and added RB tags as
appropriate.
Sunil V L (13):
hw/arm/virt-acpi-build.c: Migrate fw_cfg creation to common location
hw/arm/virt-acpi-build.c: Migrate virtio creation to common location
hw/i386/acpi-microvm.c: Use common function to add virtio in DSDT
hw/riscv: virt: Make few IMSIC macros and functions public
hw/riscv/virt-acpi-build.c: Add AIA support in RINTC
hw/riscv/virt-acpi-build.c: Add IMSIC in the MADT
hw/riscv/virt-acpi-build.c: Add APLIC in the MADT
hw/riscv/virt-acpi-build.c: Add CMO information in RHCT
hw/riscv/virt-acpi-build.c: Add MMU node in RHCT
hw/pci-host/gpex: Define properties for MMIO ranges
hw/riscv/virt: Update GPEX MMIO related properties
hw/riscv/virt-acpi-build.c: Add IO controllers and devices
hw/riscv/virt-acpi-build.c: Add PLIC in MADT
hw/arm/virt-acpi-build.c | 51 +----
hw/i386/acpi-microvm.c | 15 +-
hw/nvram/fw_cfg-acpi.c | 23 +++
hw/nvram/meson.build | 1 +
hw/pci-host/gpex-acpi.c | 13 ++
hw/pci-host/gpex.c | 12 ++
hw/riscv/Kconfig | 1 +
hw/riscv/virt-acpi-build.c | 323 +++++++++++++++++++++++++++++---
hw/riscv/virt.c | 72 ++++---
hw/virtio/meson.build | 1 +
hw/virtio/virtio-acpi.c | 32 ++++
include/hw/nvram/fw_cfg_acpi.h | 15 ++
include/hw/pci-host/gpex.h | 28 ++-
include/hw/riscv/virt.h | 26 +++
include/hw/virtio/virtio-acpi.h | 16 ++
15 files changed, 498 insertions(+), 131 deletions(-)
create mode 100644 hw/nvram/fw_cfg-acpi.c
create mode 100644 hw/virtio/virtio-acpi.c
create mode 100644 include/hw/nvram/fw_cfg_acpi.h
create mode 100644 include/hw/virtio/virtio-acpi.h
--
2.39.2
- [PATCH v6 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT,
Sunil V L <=
- [PATCH v6 01/13] hw/arm/virt-acpi-build.c: Migrate fw_cfg creation to common location, Sunil V L, 2023/11/02
- [PATCH v6 02/13] hw/arm/virt-acpi-build.c: Migrate virtio creation to common location, Sunil V L, 2023/11/02
- [PATCH v6 03/13] hw/i386/acpi-microvm.c: Use common function to add virtio in DSDT, Sunil V L, 2023/11/02
- [PATCH v6 04/13] hw/riscv: virt: Make few IMSIC macros and functions public, Sunil V L, 2023/11/02
- [PATCH v6 05/13] hw/riscv/virt-acpi-build.c: Add AIA support in RINTC, Sunil V L, 2023/11/02
- [PATCH v6 06/13] hw/riscv/virt-acpi-build.c: Add IMSIC in the MADT, Sunil V L, 2023/11/02
- [PATCH v6 07/13] hw/riscv/virt-acpi-build.c: Add APLIC in the MADT, Sunil V L, 2023/11/02
- [PATCH v6 08/13] hw/riscv/virt-acpi-build.c: Add CMO information in RHCT, Sunil V L, 2023/11/02
- [PATCH v6 09/13] hw/riscv/virt-acpi-build.c: Add MMU node in RHCT, Sunil V L, 2023/11/02
- [PATCH v6 10/13] hw/pci-host/gpex: Define properties for MMIO ranges, Sunil V L, 2023/11/02