[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 3/5] hw/arm/virt: Move post cpu realize check into its own
From: |
Auger Eric |
Subject: |
Re: [PATCH v2 3/5] hw/arm/virt: Move post cpu realize check into its own function |
Date: |
Wed, 12 Aug 2020 12:16:37 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
Hi Drew,
On 8/5/20 11:16 AM, Andrew Jones wrote:
> 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.
>
> Signed-off-by: Andrew Jones <drjones@redhat.com>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
> ---
> hw/arm/virt.c | 43 +++++++++++++++++++++++++++----------------
> 1 file changed, 27 insertions(+), 16 deletions(-)
>
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index acf9bfbeceaf..2cba21fe3ad9 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -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));
>
- [PATCH v2 0/5] hw/arm/virt: Introduce kvm-steal-time, Andrew Jones, 2020/08/05
- [PATCH v2 4/5] hw/arm/virt: Move kvm pmu setup to virt_cpu_post_init, Andrew Jones, 2020/08/05
- [PATCH v2 1/5] hw: add compat machines for 5.2, Andrew Jones, 2020/08/05
- [PATCH v2 3/5] hw/arm/virt: Move post cpu realize check into its own function, Andrew Jones, 2020/08/05
- Re: [PATCH v2 3/5] hw/arm/virt: Move post cpu realize check into its own function,
Auger Eric <=
- [PATCH v2 5/5] hw/arm/virt: Implement kvm-steal-time, Andrew Jones, 2020/08/05
- [PATCH v2 2/5] target/arm/kvm: Make uncalled stubs explicitly unreachable, Andrew Jones, 2020/08/05