On Fri, 14 Oct 2016 10:54:55 +0200 Eric Auger <eric.au...@redhat.com> wrote:
> From: Prem Mallappa <prem.malla...@broadcom.com> > > This patch builds an IORT table that features a root complex node and > an ITS node. This complements the ITS description in the ACPI MADT > table and allows vhost-net on ACPI guest. > > Signed-off-by: Prem Mallappa <prem.malla...@broadcom.com> > Signed-off-by: Eric Auger <eric.au...@redhat.com> > > --- > > v1 -> v2: > - its_class_name() || !guest_info->no_its now wraps acpi_add_table > and build_iort > - add cpu_to_le* > - CCA = CPM = DACS = 1 > - cleanup according to Drew's comments > - remove comments listing tables and spec revisions > --- > hw/arm/virt-acpi-build.c | 73 > ++++++++++++++++++++++++++++++++++++++++-------- > 1 file changed, 62 insertions(+), 11 deletions(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index fa0655a..5fc0fd7 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c [...] > +static void > build_spcr(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > { > AcpiSerialPortConsoleRedirection *spcr; > @@ -667,17 +724,6 @@ void virt_acpi_build(VirtGuestInfo *guest_info, > AcpiBuildTables *tables) > ACPI_BUILD_TABLE_FILE, tables_blob, > 64, false /* high memory */); > > - /* > - * The ACPI v5.1 tables for Hardware-reduced ACPI platform are: > - * RSDP > - * RSDT > - * FADT > - * GTDT > - * MADT > - * MCFG > - * DSDT > - */ deleting unrelated hunk? > - > /* DSDT is pointed to by FADT */ > dsdt = tables_blob->len; > build_dsdt(tables_blob, tables->linker, guest_info); > @@ -703,6 +749,11 @@ void virt_acpi_build(VirtGuestInfo *guest_info, > AcpiBuildTables *tables) > build_srat(tables_blob, tables->linker, guest_info); > } > > + if (its_class_name() && !guest_info->no_its) { > + acpi_add_table(table_offsets, tables_blob); > + build_iort(tables_blob, tables->linker, guest_info); > + } > + > /* RSDT is pointed to by RSDP */ > rsdt = tables_blob->len; > build_rsdt(tables_blob, tables->linker, table_offsets, NULL, NULL);