[PATCH RFC 16/16] hw/arm: Introduce the microvm machine type

2020-02-16 Thread Xu Yandong
It's a minimalist machine type without PCI nor ACPI support, designed for short-lived guests. microvm also establishes a baseline for benchmarking and optimizing both QEMU and guest operating systems, since it is optimized for both boot time and footprint. Signed-off-by: Xu Yandong --- de

[PATCH RFC 02/16] hw/arm: move shared fdt member to ArmMachine

2020-02-16 Thread Xu Yandong
Move fdt and fdt_size member from VirtMachineState to ArmMachineState. Signed-off-by: Xu Yandong --- hw/arm/virt.c | 303 ++ include/hw/arm/arm.h | 2 + include/hw/arm/virt.h | 2 - 3 files changed, 163 insertions(+), 144 deletions(-) diff

[PATCH RFC 01/16] hw/arm/arm: Introduce ArmMachineState and ArmMachineClass

2020-02-16 Thread Xu Yandong
In the following patches, VirtMachineState and VirtMachineClass will splited to and deriving ArmMachineState and ArmMachineClass. This allows sharing code with other arm machine types. Signed-off-by: Xu Yandong --- hw/arm/Makefile.objs | 2 +- hw/arm/arm.c | 77

[PATCH RFC 13/16] hw/arm: move shared fdt related functions to arm.c and export them

2020-02-16 Thread Xu Yandong
Move fdt related functions that will be shared between VIRT and non-VIRT machine types to arm.c. Signed-off-by: Xu Yandong --- hw/arm/arm.c | 226 hw/arm/virt.c| 238 +-- include/hw/arm/arm.h | 8

[PATCH RFC 03/16] hw/arm: move shared memmap member to ArmMachine

2020-02-16 Thread Xu Yandong
Move memmap member from VirtMachineState to ArmMachineState. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Shannon Zhao Signed-off-by: Xu Yandong --- hw/arm/virt-acpi-build.c | 21 +++-- hw/arm/virt.c| 178 --- include/hw/arm/arm.h | 1

[PATCH RFC 09/16] hw/arm: move shared gic member to ArmMachine

2020-02-16 Thread Xu Yandong
Move gic member from VirtMachineState to ArmMachineState. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Shannon Zhao Signed-off-by: Xu Yandong --- hw/arm/arm.c | 35 ++ hw/arm/virt-acpi-build.c | 8 +-- hw/arm/virt.c| 139

[PATCH RFC 12/16] hw/arm: move shared devices related functions to arm.c and export them

2020-02-16 Thread Xu Yandong
Move device related functions to arm.c, include RTC(pl031), UART(pl011), virtio devices. Signed-off-by: Xu Yandong --- hw/arm/arm.c | 137 + hw/arm/virt.c | 156 +++--- include/hw/arm/arm.h | 8

[PATCH RFC 14/16] hw/arm: move shared bootinfo member to ArmMachine

2020-02-16 Thread Xu Yandong
Move bootinfo member from VirtMachineState to ArmMachineState. Signed-off-by: Xu Yandong --- hw/arm/arm.c | 9 + hw/arm/virt.c | 28 +--- include/hw/arm/arm.h | 3 +++ include/hw/arm/virt.h | 1 - 4 files changed, 21 insertions(+), 20

[PATCH RFC 15/16] hw/arm: move shared cpu related functions to arm.c and export them

2020-02-16 Thread Xu Yandong
Move cpu related functions that will be shared between VIRT and non-VIRT machine types to arm.c. Signed-off-by: Xu Yandong --- hw/arm/arm.c | 89 ++ hw/arm/virt.c | 91 +-- include/hw/arm/arm.h

[PATCH RFC 04/16] hw/arm: move shared irqmap member to ArmMachine

2020-02-16 Thread Xu Yandong
Move irqmap member from VirtMachineState to ArmMachineState. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Shannon Zhao Signed-off-by: Xu Yandong --- hw/arm/virt-acpi-build.c | 8 hw/arm/virt.c| 25 + include/hw/arm/arm.h | 1 + include/hw

[PATCH RFC 00/16] Implement Microvm for aarch64 architecture

2020-02-16 Thread Xu Yandong
003fff (prio 0, i/o): virtio-mmio 4000-7fff (prio 0, ram): mach-virt.ram Please review this series. Thinks, Xu Yandong. Xu Yandong (16): hw/arm/arm: Introduce ArmMachineState and ArmMachineClass hw/arm: move shared fdt member to ArmMachine hw/arm: move shared memmap member to

[PATCH RFC 11/16] hw/arm: move shared psci_enable and claim_edge_triggered_timers member to ArmMachine

2020-02-16 Thread Xu Yandong
Move psci_enable member from VirtMachineState to ArmMachineState. Move claim_edge_triggered_timers member from VirtMachineClass to ArmMachineClass. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Shannon Zhao Signed-off-by: Xu Yandong --- hw/arm/virt-acpi-build.c | 7 --- hw/arm/virt.c

[PATCH RFC 10/16] hw/arm: split create_gic function

2020-02-16 Thread Xu Yandong
Split sharable GIC qdev create and sysbus initiatea codes as independent function. Signed-off-by: Xu Yandong --- hw/arm/arm.c | 106 +++ hw/arm/virt.c| 93 + include/hw/arm/arm.h | 4 ++ 3 files

[PATCH RFC 07/16] hw/arm/virt: split virt extension related codes from create_gic

2020-02-16 Thread Xu Yandong
EL2 extension is not always needed. Signed-off-by: Xu Yandong --- hw/arm/virt.c | 116 +- 1 file changed, 77 insertions(+), 39 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 32c3977e32..afaf143888 100644 --- a/hw/arm/virt.c +++ b

[PATCH RFC 06/16] hw/arm/virt: split MSI related codes from create_gic

2020-02-16 Thread Xu Yandong
GICv2m and GICits is not always needed. Signed-off-by: Xu Yandong --- hw/arm/virt.c | 16 ++-- 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 9031fd6757..32c3977e32 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -605,6 +605,15

[PATCH RFC 08/16] hw/arm/virt: split secure extension related codes from create_gic

2020-02-16 Thread Xu Yandong
EL3 extension is not always needed. Signed-off-by: Xu Yandong --- hw/arm/virt.c | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index afaf143888..087616190e 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -627,6 +627,14 @@ static

[PATCH RFC 05/16] hw/arm: move shared smp_cpus member to ArmMachine

2020-02-16 Thread Xu Yandong
Move smp_cpus member from VirtMachineState to ArmMachineState. Cc: Michael S. Tsirkin Cc: Igor Mammedov Cc: Shannon Zhao Signed-off-by: Xu Yandong --- hw/arm/virt-acpi-build.c | 4 ++-- hw/arm/virt.c| 12 ++-- include/hw/arm/arm.h | 1 + include/hw/arm/virt.h