Message ID | 20231218150247.466427-1-sunilvl@ventanamicro.com |
---|---|
Headers | show |
Series | RISC-V: ACPI: Enable AIA, PLIC and update RHCT | expand |
On Tue, Dec 19, 2023 at 1:03 AM Sunil V L <sunilvl@ventanamicro.com> wrote: > > 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_v8 branch at: > https://github.com/vlsunil/qemu/ > > Changes since v7: > 1) Prefixed gpex property names with "x-" as per feedback from Michael Tsirkin. > 2) Rebased to latest riscv-to-apply.next. > > Changes since v6: > 1) Fixed the qtest failure issue reported by Daniel in PATCH 2. > > 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 Thanks! Applied to riscv-to-apply.next Alistair > > 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 | 33 ++++ > 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, 499 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 > >