Message ID | 20231019132648.23703-3-sunilvl@ventanamicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | RISC-V: ACPI: Enable AIA, PLIC and update RHCT | expand |
Nit: this will give a whitespace error when applying: Applying: hw/arm/virt-acpi-build.c: Migrate virtio creation to common location .git/rebase-apply/patch:123: new blank line at EOF. + warning: 1 line adds whitespace errors. Thanks, Daniel On 10/19/23 10:26, Sunil V L wrote: > RISC-V also needs to create the virtio in DSDT in the same way as ARM. So, > instead of duplicating the code, move this function to the device specific > file which is common across architectures. > > Suggested-by: Igor Mammedov <imammedo@redhat.com> > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > --- > hw/arm/virt-acpi-build.c | 29 ++--------------------------- > hw/virtio/meson.build | 1 + > hw/virtio/virtio-acpi.c | 28 ++++++++++++++++++++++++++++ > include/hw/virtio/virtio-acpi.h | 11 +++++++++++ > 4 files changed, 42 insertions(+), 27 deletions(-) > create mode 100644 hw/virtio/virtio-acpi.c > create mode 100644 include/hw/virtio/virtio-acpi.h > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index b8e725d953..69733f6663 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -58,6 +58,7 @@ > #include "migration/vmstate.h" > #include "hw/acpi/ghes.h" > #include "hw/acpi/viot.h" > +#include "hw/virtio/virtio-acpi.h" > > #define ARM_SPI_BASE 32 > > @@ -118,32 +119,6 @@ static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap) > aml_append(scope, dev); > } > > -static void acpi_dsdt_add_virtio(Aml *scope, > - const MemMapEntry *virtio_mmio_memmap, > - uint32_t mmio_irq, int num) > -{ > - hwaddr base = virtio_mmio_memmap->base; > - hwaddr size = virtio_mmio_memmap->size; > - int i; > - > - for (i = 0; i < num; i++) { > - uint32_t irq = mmio_irq + i; > - Aml *dev = aml_device("VR%02u", i); > - aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > - aml_append(dev, aml_name_decl("_UID", aml_int(i))); > - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > - > - Aml *crs = aml_resource_template(); > - aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > - aml_append(crs, > - aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > - AML_EXCLUSIVE, &irq, 1)); > - aml_append(dev, aml_name_decl("_CRS", crs)); > - aml_append(scope, dev); > - base += size; > - } > -} > - > static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, > uint32_t irq, VirtMachineState *vms) > { > @@ -850,7 +825,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); > } > fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); > - acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], > + virtio_acpi_dsdt_add(scope, &memmap[VIRT_MMIO], > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); > acpi_dsdt_add_pci(scope, memmap, irqmap[VIRT_PCIE] + ARM_SPI_BASE, vms); > if (vms->acpi_dev) { > diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build > index c0055a7832..9d62097a21 100644 > --- a/hw/virtio/meson.build > +++ b/hw/virtio/meson.build > @@ -79,3 +79,4 @@ system_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c')) > system_ss.add(files('virtio-hmp-cmds.c')) > > specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss) > +system_ss.add(when: 'CONFIG_ACPI', if_true: files('virtio-acpi.c')) > diff --git a/hw/virtio/virtio-acpi.c b/hw/virtio/virtio-acpi.c > new file mode 100644 > index 0000000000..977499defd > --- /dev/null > +++ b/hw/virtio/virtio-acpi.c > @@ -0,0 +1,28 @@ > +#include "hw/virtio/virtio-acpi.h" > +#include "hw/acpi/aml-build.h" > + > +void virtio_acpi_dsdt_add(Aml *scope, > + const MemMapEntry *virtio_mmio_memmap, > + uint32_t mmio_irq, int num) > +{ > + hwaddr base = virtio_mmio_memmap->base; > + hwaddr size = virtio_mmio_memmap->size; > + int i; > + > + for (i = 0; i < num; i++) { > + uint32_t irq = mmio_irq + i; > + Aml *dev = aml_device("VR%02u", i); > + aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > + aml_append(dev, aml_name_decl("_UID", aml_int(i))); > + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > + > + Aml *crs = aml_resource_template(); > + aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > + aml_append(crs, > + aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > + AML_EXCLUSIVE, &irq, 1)); > + aml_append(dev, aml_name_decl("_CRS", crs)); > + aml_append(scope, dev); > + base += size; > + } > +} > diff --git a/include/hw/virtio/virtio-acpi.h b/include/hw/virtio/virtio-acpi.h > new file mode 100644 > index 0000000000..b8687b1b42 > --- /dev/null > +++ b/include/hw/virtio/virtio-acpi.h > @@ -0,0 +1,11 @@ > +#ifndef VIRTIO_ACPI_H > +#define VIRTIO_ACPI_H > + > +#include "qemu/osdep.h" > +#include "exec/hwaddr.h" > + > +void virtio_acpi_dsdt_add(Aml *scope, const MemMapEntry *virtio_mmio_memmap, > + uint32_t mmio_irq, int num); > + > +#endif > +
On Thu, Oct 19, 2023 at 06:56:38PM +0530, Sunil V L wrote: > RISC-V also needs to create the virtio in DSDT in the same way as ARM. So, > instead of duplicating the code, move this function to the device specific > file which is common across architectures. > > Suggested-by: Igor Mammedov <imammedo@redhat.com> > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > --- > hw/arm/virt-acpi-build.c | 29 ++--------------------------- > hw/virtio/meson.build | 1 + > hw/virtio/virtio-acpi.c | 28 ++++++++++++++++++++++++++++ > include/hw/virtio/virtio-acpi.h | 11 +++++++++++ Need SPDX for these new files as well. > 4 files changed, 42 insertions(+), 27 deletions(-) > create mode 100644 hw/virtio/virtio-acpi.c > create mode 100644 include/hw/virtio/virtio-acpi.h > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index b8e725d953..69733f6663 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -58,6 +58,7 @@ > #include "migration/vmstate.h" > #include "hw/acpi/ghes.h" > #include "hw/acpi/viot.h" > +#include "hw/virtio/virtio-acpi.h" > > #define ARM_SPI_BASE 32 > > @@ -118,32 +119,6 @@ static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap) > aml_append(scope, dev); > } > > -static void acpi_dsdt_add_virtio(Aml *scope, > - const MemMapEntry *virtio_mmio_memmap, > - uint32_t mmio_irq, int num) > -{ > - hwaddr base = virtio_mmio_memmap->base; > - hwaddr size = virtio_mmio_memmap->size; > - int i; > - > - for (i = 0; i < num; i++) { > - uint32_t irq = mmio_irq + i; > - Aml *dev = aml_device("VR%02u", i); > - aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > - aml_append(dev, aml_name_decl("_UID", aml_int(i))); > - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > - > - Aml *crs = aml_resource_template(); > - aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > - aml_append(crs, > - aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > - AML_EXCLUSIVE, &irq, 1)); > - aml_append(dev, aml_name_decl("_CRS", crs)); > - aml_append(scope, dev); > - base += size; > - } > -} > - > static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, > uint32_t irq, VirtMachineState *vms) > { > @@ -850,7 +825,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); > } > fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); > - acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], > + virtio_acpi_dsdt_add(scope, &memmap[VIRT_MMIO], > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); > acpi_dsdt_add_pci(scope, memmap, irqmap[VIRT_PCIE] + ARM_SPI_BASE, vms); > if (vms->acpi_dev) { > diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build > index c0055a7832..9d62097a21 100644 > --- a/hw/virtio/meson.build > +++ b/hw/virtio/meson.build > @@ -79,3 +79,4 @@ system_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c')) > system_ss.add(files('virtio-hmp-cmds.c')) > > specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss) > +system_ss.add(when: 'CONFIG_ACPI', if_true: files('virtio-acpi.c')) > diff --git a/hw/virtio/virtio-acpi.c b/hw/virtio/virtio-acpi.c > new file mode 100644 > index 0000000000..977499defd > --- /dev/null > +++ b/hw/virtio/virtio-acpi.c > @@ -0,0 +1,28 @@ > +#include "hw/virtio/virtio-acpi.h" > +#include "hw/acpi/aml-build.h" > + > +void virtio_acpi_dsdt_add(Aml *scope, > + const MemMapEntry *virtio_mmio_memmap, > + uint32_t mmio_irq, int num) > +{ > + hwaddr base = virtio_mmio_memmap->base; > + hwaddr size = virtio_mmio_memmap->size; > + int i; > + > + for (i = 0; i < num; i++) { > + uint32_t irq = mmio_irq + i; > + Aml *dev = aml_device("VR%02u", i); > + aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > + aml_append(dev, aml_name_decl("_UID", aml_int(i))); > + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > + > + Aml *crs = aml_resource_template(); > + aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > + aml_append(crs, > + aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > + AML_EXCLUSIVE, &irq, 1)); > + aml_append(dev, aml_name_decl("_CRS", crs)); > + aml_append(scope, dev); > + base += size; > + } > +} > diff --git a/include/hw/virtio/virtio-acpi.h b/include/hw/virtio/virtio-acpi.h > new file mode 100644 > index 0000000000..b8687b1b42 > --- /dev/null > +++ b/include/hw/virtio/virtio-acpi.h > @@ -0,0 +1,11 @@ > +#ifndef VIRTIO_ACPI_H > +#define VIRTIO_ACPI_H > + > +#include "qemu/osdep.h" > +#include "exec/hwaddr.h" > + > +void virtio_acpi_dsdt_add(Aml *scope, const MemMapEntry *virtio_mmio_memmap, > + uint32_t mmio_irq, int num); > + > +#endif > + > -- > 2.34.1 > Shouldn't we also try to apply this to microvm which has nearly the same code? Otherwise, Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
On Mon, Oct 23, 2023 at 02:28:22PM +0200, Andrew Jones wrote: > On Thu, Oct 19, 2023 at 06:56:38PM +0530, Sunil V L wrote: > > RISC-V also needs to create the virtio in DSDT in the same way as ARM. So, > > instead of duplicating the code, move this function to the device specific > > file which is common across architectures. > > > > Suggested-by: Igor Mammedov <imammedo@redhat.com> > > Signed-off-by: Sunil V L <sunilvl@ventanamicro.com> > > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > > --- > > hw/arm/virt-acpi-build.c | 29 ++--------------------------- > > hw/virtio/meson.build | 1 + > > hw/virtio/virtio-acpi.c | 28 ++++++++++++++++++++++++++++ > > include/hw/virtio/virtio-acpi.h | 11 +++++++++++ > > Need SPDX for these new files as well. > > > 4 files changed, 42 insertions(+), 27 deletions(-) > > create mode 100644 hw/virtio/virtio-acpi.c > > create mode 100644 include/hw/virtio/virtio-acpi.h > > > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > > index b8e725d953..69733f6663 100644 > > --- a/hw/arm/virt-acpi-build.c > > +++ b/hw/arm/virt-acpi-build.c > > @@ -58,6 +58,7 @@ > > #include "migration/vmstate.h" > > #include "hw/acpi/ghes.h" > > #include "hw/acpi/viot.h" > > +#include "hw/virtio/virtio-acpi.h" > > > > #define ARM_SPI_BASE 32 > > > > @@ -118,32 +119,6 @@ static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap) > > aml_append(scope, dev); > > } > > > > -static void acpi_dsdt_add_virtio(Aml *scope, > > - const MemMapEntry *virtio_mmio_memmap, > > - uint32_t mmio_irq, int num) > > -{ > > - hwaddr base = virtio_mmio_memmap->base; > > - hwaddr size = virtio_mmio_memmap->size; > > - int i; > > - > > - for (i = 0; i < num; i++) { > > - uint32_t irq = mmio_irq + i; > > - Aml *dev = aml_device("VR%02u", i); > > - aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > > - aml_append(dev, aml_name_decl("_UID", aml_int(i))); > > - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > > - > > - Aml *crs = aml_resource_template(); > > - aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > > - aml_append(crs, > > - aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > > - AML_EXCLUSIVE, &irq, 1)); > > - aml_append(dev, aml_name_decl("_CRS", crs)); > > - aml_append(scope, dev); > > - base += size; > > - } > > -} > > - > > static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, > > uint32_t irq, VirtMachineState *vms) > > { > > @@ -850,7 +825,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > > acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); > > } > > fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); > > - acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], > > + virtio_acpi_dsdt_add(scope, &memmap[VIRT_MMIO], > > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); > > acpi_dsdt_add_pci(scope, memmap, irqmap[VIRT_PCIE] + ARM_SPI_BASE, vms); > > if (vms->acpi_dev) { > > diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build > > index c0055a7832..9d62097a21 100644 > > --- a/hw/virtio/meson.build > > +++ b/hw/virtio/meson.build > > @@ -79,3 +79,4 @@ system_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c')) > > system_ss.add(files('virtio-hmp-cmds.c')) > > > > specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss) > > +system_ss.add(when: 'CONFIG_ACPI', if_true: files('virtio-acpi.c')) > > diff --git a/hw/virtio/virtio-acpi.c b/hw/virtio/virtio-acpi.c > > new file mode 100644 > > index 0000000000..977499defd > > --- /dev/null > > +++ b/hw/virtio/virtio-acpi.c > > @@ -0,0 +1,28 @@ > > +#include "hw/virtio/virtio-acpi.h" > > +#include "hw/acpi/aml-build.h" > > + > > +void virtio_acpi_dsdt_add(Aml *scope, > > + const MemMapEntry *virtio_mmio_memmap, > > + uint32_t mmio_irq, int num) > > +{ > > + hwaddr base = virtio_mmio_memmap->base; > > + hwaddr size = virtio_mmio_memmap->size; > > + int i; > > + > > + for (i = 0; i < num; i++) { > > + uint32_t irq = mmio_irq + i; > > + Aml *dev = aml_device("VR%02u", i); > > + aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); > > + aml_append(dev, aml_name_decl("_UID", aml_int(i))); > > + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); > > + > > + Aml *crs = aml_resource_template(); > > + aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); > > + aml_append(crs, > > + aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, > > + AML_EXCLUSIVE, &irq, 1)); > > + aml_append(dev, aml_name_decl("_CRS", crs)); > > + aml_append(scope, dev); > > + base += size; > > + } > > +} > > diff --git a/include/hw/virtio/virtio-acpi.h b/include/hw/virtio/virtio-acpi.h > > new file mode 100644 > > index 0000000000..b8687b1b42 > > --- /dev/null > > +++ b/include/hw/virtio/virtio-acpi.h > > @@ -0,0 +1,11 @@ > > +#ifndef VIRTIO_ACPI_H > > +#define VIRTIO_ACPI_H > > + > > +#include "qemu/osdep.h" > > +#include "exec/hwaddr.h" > > + > > +void virtio_acpi_dsdt_add(Aml *scope, const MemMapEntry *virtio_mmio_memmap, > > + uint32_t mmio_irq, int num); > > + > > +#endif > > + > > -- > > 2.34.1 > > > > Shouldn't we also try to apply this to microvm which has nearly the same > code? > Okay. Let me add a patch to update microvm code also. Let me send next revision with your and Daniel's comments addressed. Thanks! Sunil > Otherwise, > > Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index b8e725d953..69733f6663 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -58,6 +58,7 @@ #include "migration/vmstate.h" #include "hw/acpi/ghes.h" #include "hw/acpi/viot.h" +#include "hw/virtio/virtio-acpi.h" #define ARM_SPI_BASE 32 @@ -118,32 +119,6 @@ static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memmap) aml_append(scope, dev); } -static void acpi_dsdt_add_virtio(Aml *scope, - const MemMapEntry *virtio_mmio_memmap, - uint32_t mmio_irq, int num) -{ - hwaddr base = virtio_mmio_memmap->base; - hwaddr size = virtio_mmio_memmap->size; - int i; - - for (i = 0; i < num; i++) { - uint32_t irq = mmio_irq + i; - Aml *dev = aml_device("VR%02u", i); - aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); - aml_append(dev, aml_name_decl("_UID", aml_int(i))); - aml_append(dev, aml_name_decl("_CCA", aml_int(1))); - - Aml *crs = aml_resource_template(); - aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); - aml_append(crs, - aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, - AML_EXCLUSIVE, &irq, 1)); - aml_append(dev, aml_name_decl("_CRS", crs)); - aml_append(scope, dev); - base += size; - } -} - static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap, uint32_t irq, VirtMachineState *vms) { @@ -850,7 +825,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); } fw_cfg_acpi_dsdt_add(scope, &memmap[VIRT_FW_CFG]); - acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], + virtio_acpi_dsdt_add(scope, &memmap[VIRT_MMIO], (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); acpi_dsdt_add_pci(scope, memmap, irqmap[VIRT_PCIE] + ARM_SPI_BASE, vms); if (vms->acpi_dev) { diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build index c0055a7832..9d62097a21 100644 --- a/hw/virtio/meson.build +++ b/hw/virtio/meson.build @@ -79,3 +79,4 @@ system_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c')) system_ss.add(files('virtio-hmp-cmds.c')) specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss) +system_ss.add(when: 'CONFIG_ACPI', if_true: files('virtio-acpi.c')) diff --git a/hw/virtio/virtio-acpi.c b/hw/virtio/virtio-acpi.c new file mode 100644 index 0000000000..977499defd --- /dev/null +++ b/hw/virtio/virtio-acpi.c @@ -0,0 +1,28 @@ +#include "hw/virtio/virtio-acpi.h" +#include "hw/acpi/aml-build.h" + +void virtio_acpi_dsdt_add(Aml *scope, + const MemMapEntry *virtio_mmio_memmap, + uint32_t mmio_irq, int num) +{ + hwaddr base = virtio_mmio_memmap->base; + hwaddr size = virtio_mmio_memmap->size; + int i; + + for (i = 0; i < num; i++) { + uint32_t irq = mmio_irq + i; + Aml *dev = aml_device("VR%02u", i); + aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0005"))); + aml_append(dev, aml_name_decl("_UID", aml_int(i))); + aml_append(dev, aml_name_decl("_CCA", aml_int(1))); + + Aml *crs = aml_resource_template(); + aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); + aml_append(crs, + aml_interrupt(AML_CONSUMER, AML_LEVEL, AML_ACTIVE_HIGH, + AML_EXCLUSIVE, &irq, 1)); + aml_append(dev, aml_name_decl("_CRS", crs)); + aml_append(scope, dev); + base += size; + } +} diff --git a/include/hw/virtio/virtio-acpi.h b/include/hw/virtio/virtio-acpi.h new file mode 100644 index 0000000000..b8687b1b42 --- /dev/null +++ b/include/hw/virtio/virtio-acpi.h @@ -0,0 +1,11 @@ +#ifndef VIRTIO_ACPI_H +#define VIRTIO_ACPI_H + +#include "qemu/osdep.h" +#include "exec/hwaddr.h" + +void virtio_acpi_dsdt_add(Aml *scope, const MemMapEntry *virtio_mmio_memmap, + uint32_t mmio_irq, int num); + +#endif +