Re: [PATCH v5 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT

2023-11-01 Thread Alistair Francis
On Mon, Oct 30, 2023 at 11:23 PM Sunil V L  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_v5 branch at:
> https://github.com/vlsunil/qemu/
>
> 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 |  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
>
>



Re: [PATCH v5 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT

2023-10-30 Thread Michael S. Tsirkin
On Mon, Oct 30, 2023 at 06:50:45PM +0530, Sunil V L 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.


pci, acpi things look ok

Acked-by: Michael S. Tsirkin 

> 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_v5 branch at:
> https://github.com/vlsunil/qemu/
> 
> 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 v5 00/13] RISC-V: ACPI: Enable AIA, PLIC and update RHCT

2023-10-30 Thread Sunil V L
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_v5 branch at:
https://github.com/vlsunil/qemu/

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