57ba843628
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> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Message-ID: <20231218150247.466427-3-sunilvl@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* virtio ACPI Support
|
|
*
|
|
*/
|
|
|
|
#include "hw/virtio/virtio-acpi.h"
|
|
#include "hw/acpi/aml-build.h"
|
|
|
|
void virtio_acpi_dsdt_add(Aml *scope, const hwaddr base, const hwaddr size,
|
|
uint32_t mmio_irq, long int start_index, int num)
|
|
{
|
|
hwaddr virtio_base = base;
|
|
uint32_t irq = mmio_irq;
|
|
long int i;
|
|
|
|
for (i = start_index; i < start_index + num; i++) {
|
|
Aml *dev = aml_device("VR%02u", (unsigned)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(virtio_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);
|
|
virtio_base += size;
|
|
irq++;
|
|
}
|
|
}
|