hw/arm/virt: Rename highmem IO regions

In preparation for a split of the memory map into a static
part and a dynamic part floating after the RAM, let's rename the
regions located after the RAM

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-id: 20190304101339.25970-3-eric.auger@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Eric Auger 2019-03-04 11:13:31 +01:00 committed by Peter Maydell
parent f08ced69d3
commit bf424a1216
3 changed files with 28 additions and 23 deletions

View File

@ -229,8 +229,8 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap,
size_pio)); size_pio));
if (use_highmem) { if (use_highmem) {
hwaddr base_mmio_high = memmap[VIRT_PCIE_MMIO_HIGH].base; hwaddr base_mmio_high = memmap[VIRT_HIGH_PCIE_MMIO].base;
hwaddr size_mmio_high = memmap[VIRT_PCIE_MMIO_HIGH].size; hwaddr size_mmio_high = memmap[VIRT_HIGH_PCIE_MMIO].size;
aml_append(rbuf, aml_append(rbuf,
aml_qword_memory(AML_POS_DECODE, AML_MIN_FIXED, AML_MAX_FIXED, aml_qword_memory(AML_POS_DECODE, AML_MIN_FIXED, AML_MAX_FIXED,
@ -663,8 +663,10 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms)
gicr = acpi_data_push(table_data, sizeof(*gicr)); gicr = acpi_data_push(table_data, sizeof(*gicr));
gicr->type = ACPI_APIC_GENERIC_REDISTRIBUTOR; gicr->type = ACPI_APIC_GENERIC_REDISTRIBUTOR;
gicr->length = sizeof(*gicr); gicr->length = sizeof(*gicr);
gicr->base_address = cpu_to_le64(memmap[VIRT_GIC_REDIST2].base); gicr->base_address =
gicr->range_length = cpu_to_le32(memmap[VIRT_GIC_REDIST2].size); cpu_to_le64(memmap[VIRT_HIGH_GIC_REDIST2].base);
gicr->range_length =
cpu_to_le32(memmap[VIRT_HIGH_GIC_REDIST2].size);
} }
if (its_class_name() && !vmc->no_its) { if (its_class_name() && !vmc->no_its) {

View File

@ -150,10 +150,10 @@ static const MemMapEntry a15memmap[] = {
[VIRT_PCIE_ECAM] = { 0x3f000000, 0x01000000 }, [VIRT_PCIE_ECAM] = { 0x3f000000, 0x01000000 },
[VIRT_MEM] = { 0x40000000, RAMLIMIT_BYTES }, [VIRT_MEM] = { 0x40000000, RAMLIMIT_BYTES },
/* Additional 64 MB redist region (can contain up to 512 redistributors) */ /* Additional 64 MB redist region (can contain up to 512 redistributors) */
[VIRT_GIC_REDIST2] = { 0x4000000000ULL, 0x4000000 }, [VIRT_HIGH_GIC_REDIST2] = { 0x4000000000ULL, 0x4000000 },
[VIRT_PCIE_ECAM_HIGH] = { 0x4010000000ULL, 0x10000000 }, [VIRT_HIGH_PCIE_ECAM] = { 0x4010000000ULL, 0x10000000 },
/* Second PCIe window, 512GB wide at the 512GB boundary */ /* Second PCIe window, 512GB wide at the 512GB boundary */
[VIRT_PCIE_MMIO_HIGH] = { 0x8000000000ULL, 0x8000000000ULL }, [VIRT_HIGH_PCIE_MMIO] = { 0x8000000000ULL, 0x8000000000ULL },
}; };
static const int a15irqmap[] = { static const int a15irqmap[] = {
@ -435,8 +435,8 @@ static void fdt_add_gic_node(VirtMachineState *vms)
2, vms->memmap[VIRT_GIC_DIST].size, 2, vms->memmap[VIRT_GIC_DIST].size,
2, vms->memmap[VIRT_GIC_REDIST].base, 2, vms->memmap[VIRT_GIC_REDIST].base,
2, vms->memmap[VIRT_GIC_REDIST].size, 2, vms->memmap[VIRT_GIC_REDIST].size,
2, vms->memmap[VIRT_GIC_REDIST2].base, 2, vms->memmap[VIRT_HIGH_GIC_REDIST2].base,
2, vms->memmap[VIRT_GIC_REDIST2].size); 2, vms->memmap[VIRT_HIGH_GIC_REDIST2].size);
} }
if (vms->virt) { if (vms->virt) {
@ -584,7 +584,7 @@ static void create_gic(VirtMachineState *vms, qemu_irq *pic)
if (nb_redist_regions == 2) { if (nb_redist_regions == 2) {
uint32_t redist1_capacity = uint32_t redist1_capacity =
vms->memmap[VIRT_GIC_REDIST2].size / GICV3_REDIST_SIZE; vms->memmap[VIRT_HIGH_GIC_REDIST2].size / GICV3_REDIST_SIZE;
qdev_prop_set_uint32(gicdev, "redist-region-count[1]", qdev_prop_set_uint32(gicdev, "redist-region-count[1]",
MIN(smp_cpus - redist0_count, redist1_capacity)); MIN(smp_cpus - redist0_count, redist1_capacity));
@ -601,7 +601,8 @@ static void create_gic(VirtMachineState *vms, qemu_irq *pic)
if (type == 3) { if (type == 3) {
sysbus_mmio_map(gicbusdev, 1, vms->memmap[VIRT_GIC_REDIST].base); sysbus_mmio_map(gicbusdev, 1, vms->memmap[VIRT_GIC_REDIST].base);
if (nb_redist_regions == 2) { if (nb_redist_regions == 2) {
sysbus_mmio_map(gicbusdev, 2, vms->memmap[VIRT_GIC_REDIST2].base); sysbus_mmio_map(gicbusdev, 2,
vms->memmap[VIRT_HIGH_GIC_REDIST2].base);
} }
} else { } else {
sysbus_mmio_map(gicbusdev, 1, vms->memmap[VIRT_GIC_CPU].base); sysbus_mmio_map(gicbusdev, 1, vms->memmap[VIRT_GIC_CPU].base);
@ -1088,8 +1089,8 @@ static void create_pcie(VirtMachineState *vms, qemu_irq *pic)
{ {
hwaddr base_mmio = vms->memmap[VIRT_PCIE_MMIO].base; hwaddr base_mmio = vms->memmap[VIRT_PCIE_MMIO].base;
hwaddr size_mmio = vms->memmap[VIRT_PCIE_MMIO].size; hwaddr size_mmio = vms->memmap[VIRT_PCIE_MMIO].size;
hwaddr base_mmio_high = vms->memmap[VIRT_PCIE_MMIO_HIGH].base; hwaddr base_mmio_high = vms->memmap[VIRT_HIGH_PCIE_MMIO].base;
hwaddr size_mmio_high = vms->memmap[VIRT_PCIE_MMIO_HIGH].size; hwaddr size_mmio_high = vms->memmap[VIRT_HIGH_PCIE_MMIO].size;
hwaddr base_pio = vms->memmap[VIRT_PCIE_PIO].base; hwaddr base_pio = vms->memmap[VIRT_PCIE_PIO].base;
hwaddr size_pio = vms->memmap[VIRT_PCIE_PIO].size; hwaddr size_pio = vms->memmap[VIRT_PCIE_PIO].size;
hwaddr base_ecam, size_ecam; hwaddr base_ecam, size_ecam;
@ -1417,8 +1418,10 @@ static void machvirt_init(MachineState *machine)
* many redistributors we can fit into the memory map. * many redistributors we can fit into the memory map.
*/ */
if (vms->gic_version == 3) { if (vms->gic_version == 3) {
virt_max_cpus = vms->memmap[VIRT_GIC_REDIST].size / GICV3_REDIST_SIZE; virt_max_cpus =
virt_max_cpus += vms->memmap[VIRT_GIC_REDIST2].size / GICV3_REDIST_SIZE; vms->memmap[VIRT_GIC_REDIST].size / GICV3_REDIST_SIZE;
virt_max_cpus +=
vms->memmap[VIRT_HIGH_GIC_REDIST2].size / GICV3_REDIST_SIZE;
} else { } else {
virt_max_cpus = GIC_NCPU; virt_max_cpus = GIC_NCPU;
} }

View File

@ -64,7 +64,7 @@ enum {
VIRT_GIC_VCPU, VIRT_GIC_VCPU,
VIRT_GIC_ITS, VIRT_GIC_ITS,
VIRT_GIC_REDIST, VIRT_GIC_REDIST,
VIRT_GIC_REDIST2, VIRT_HIGH_GIC_REDIST2,
VIRT_SMMU, VIRT_SMMU,
VIRT_UART, VIRT_UART,
VIRT_MMIO, VIRT_MMIO,
@ -74,9 +74,9 @@ enum {
VIRT_PCIE_MMIO, VIRT_PCIE_MMIO,
VIRT_PCIE_PIO, VIRT_PCIE_PIO,
VIRT_PCIE_ECAM, VIRT_PCIE_ECAM,
VIRT_PCIE_ECAM_HIGH, VIRT_HIGH_PCIE_ECAM,
VIRT_PLATFORM_BUS, VIRT_PLATFORM_BUS,
VIRT_PCIE_MMIO_HIGH, VIRT_HIGH_PCIE_MMIO,
VIRT_GPIO, VIRT_GPIO,
VIRT_SECURE_UART, VIRT_SECURE_UART,
VIRT_SECURE_MEM, VIRT_SECURE_MEM,
@ -128,7 +128,7 @@ typedef struct {
int psci_conduit; int psci_conduit;
} VirtMachineState; } VirtMachineState;
#define VIRT_ECAM_ID(high) (high ? VIRT_PCIE_ECAM_HIGH : VIRT_PCIE_ECAM) #define VIRT_ECAM_ID(high) (high ? VIRT_HIGH_PCIE_ECAM : VIRT_PCIE_ECAM)
#define TYPE_VIRT_MACHINE MACHINE_TYPE_NAME("virt") #define TYPE_VIRT_MACHINE MACHINE_TYPE_NAME("virt")
#define VIRT_MACHINE(obj) \ #define VIRT_MACHINE(obj) \