hw/arm/virt: Move post cpu realize check into its own function
We'll add more to this new function in coming patches so we also state the gic must be created and call it below create_gic(). No functional change intended. Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrew Jones <drjones@redhat.com> Message-id: 20201001061718.101915-4-drjones@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
281a3c330e
commit
fe11f058c5
@ -1672,6 +1672,31 @@ static void finalize_gic_version(VirtMachineState *vms)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* virt_cpu_post_init() must be called after the CPUs have
|
||||
* been realized and the GIC has been created.
|
||||
*/
|
||||
static void virt_cpu_post_init(VirtMachineState *vms)
|
||||
{
|
||||
bool aarch64;
|
||||
|
||||
aarch64 = object_property_get_bool(OBJECT(first_cpu), "aarch64", NULL);
|
||||
|
||||
if (!kvm_enabled()) {
|
||||
if (aarch64 && vms->highmem) {
|
||||
int requested_pa_size = 64 - clz64(vms->highest_gpa);
|
||||
int pamax = arm_pamax(ARM_CPU(first_cpu));
|
||||
|
||||
if (pamax < requested_pa_size) {
|
||||
error_report("VCPU supports less PA bits (%d) than "
|
||||
"requested by the memory map (%d)",
|
||||
pamax, requested_pa_size);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void machvirt_init(MachineState *machine)
|
||||
{
|
||||
VirtMachineState *vms = VIRT_MACHINE(machine);
|
||||
@ -1886,22 +1911,6 @@ static void machvirt_init(MachineState *machine)
|
||||
fdt_add_timer_nodes(vms);
|
||||
fdt_add_cpu_nodes(vms);
|
||||
|
||||
if (!kvm_enabled()) {
|
||||
ARMCPU *cpu = ARM_CPU(first_cpu);
|
||||
bool aarch64 = object_property_get_bool(OBJECT(cpu), "aarch64", NULL);
|
||||
|
||||
if (aarch64 && vms->highmem) {
|
||||
int requested_pa_size, pamax = arm_pamax(cpu);
|
||||
|
||||
requested_pa_size = 64 - clz64(vms->highest_gpa);
|
||||
if (pamax < requested_pa_size) {
|
||||
error_report("VCPU supports less PA bits (%d) than requested "
|
||||
"by the memory map (%d)", pamax, requested_pa_size);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base,
|
||||
machine->ram);
|
||||
if (machine->device_memory) {
|
||||
@ -1913,6 +1922,8 @@ static void machvirt_init(MachineState *machine)
|
||||
|
||||
create_gic(vms);
|
||||
|
||||
virt_cpu_post_init(vms);
|
||||
|
||||
fdt_add_pmu_nodes(vms);
|
||||
|
||||
create_uart(vms, VIRT_UART, sysmem, serial_hd(0));
|
||||
|
Loading…
x
Reference in New Issue
Block a user