On Wed, Jun 13, 2018 at 10:48:40AM +0200, Eric Auger wrote: > Depending on the number of smp_cpus we now register one or two > GICR structures. > > Signed-off-by: Eric Auger <eric.au...@redhat.com> > --- > hw/arm/virt-acpi-build.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index 74f5744..eefd1d4 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -670,6 +670,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > > if (vms->gic_version == 3) { > AcpiMadtGenericTranslator *gic_its; > + int nb_redist_regions = virt_gicv3_redist_region_count(vms); > AcpiMadtGenericRedistributor *gicr = acpi_data_push(table_data, > sizeof *gicr); > > @@ -678,6 +679,14 @@ build_madt(GArray *table_data, BIOSLinker *linker, > VirtMachineState *vms) > gicr->base_address = cpu_to_le64(memmap[VIRT_GIC_REDIST].base); > gicr->range_length = cpu_to_le32(memmap[VIRT_GIC_REDIST].size); > > + if (nb_redist_regions == 2) { > + gicr = acpi_data_push(table_data, sizeof(*gicr)); > + gicr->type = ACPI_APIC_GENERIC_REDISTRIBUTOR; > + gicr->length = sizeof(*gicr); > + gicr->base_address = cpu_to_le64(memmap[VIRT_GIC_REDIST2].base); > + gicr->range_length = cpu_to_le32(memmap[VIRT_GIC_REDIST2].size); > + } > + > if (its_class_name() && !vmc->no_its) { > gic_its = acpi_data_push(table_data, sizeof *gic_its); > gic_its->type = ACPI_APIC_GENERIC_TRANSLATOR; > -- > 2.5.5 > >
Reviewed-by: Andrew Jones <drjo...@redhat.com>