This patchset is against commit 585fcd4 (Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging) on master branch. I also put it on github:
https://github.com/chao-p/qemu pc-lite-v1 Although we have run the patchset internally for a while but it is still considered as RFC. Any comments (coding style or design issue) are welcome. Introduction ============ The patch series introduces a new platform pc-lite, which is designed to be a virtual and light weight x86 PC platform. It is not designed to be compatible with old hardware and system. Instead, It removes the burden of legacy devices and emulates new fast hardware as much as possible. It is expected to be used together with optimized guest (though unoptimized guest works as well) to gain fast booting and small footprint benefits that are difficult to achieve for traditional hardware-emulated platform. Basically: - it removes old ISA devices and support only PCI devices; - it removes 8259, instead use MSI as much as possible. IOAPIC and PCI PIN are still kept to support ACPI SCI; - it supports PCIE ( you can use MMFG instead of 0xcf8/0xcfc port access); - it gets rid of legacy firmware interfaces and supports ACPI tables; - it loads guest kernel directly, no BIOS, no bootloader, no realmode code; - it supports CPU/memory/PCI hotplug; - it is FAST; However: - it supports KVM-host only at present; - it supports Linux-guest only at present; - You may need carefully configure guest kernel; - You are forced to use virtio-serial-pci, old 8250/16550 is not there; Want to have a try? =================== Please follow https://github.com/chao-p/qemu-lite-tools. Thanks, Chao Chao Peng (6): acpi: introduce light weight ACPI PM emulation pm-lite pci: introduce light weight PCIE Host emulation pci-lite acpi: add support for pc-lite platform pc: skip setting CMOS data when RTC device is unavailable pc: support direct loading protected/long mode kernel pc: introduce light weight PC board pc-lite Haozhong Zhang (3): acpi: expose data structurs and functions of BIOS linker loader acpi: expose acpi_checksum() acpi: patch guest ACPI for pc-lite default-configs/i386-softmmu.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + docs/specs/acpi_cpu_hotplug.txt | 1 + hw/acpi/Makefile.objs | 2 +- hw/acpi/bios-linker-loader.c | 83 +------ hw/acpi/core.c | 2 +- hw/acpi/nvdimm.c | 6 +- hw/acpi/pm_lite.c | 446 +++++++++++++++++++++++++++++++++++ hw/i386/Makefile.objs | 2 +- hw/i386/acpi-build.c | 180 +++++++++----- hw/i386/pc.c | 263 ++++++++++++++++++--- hw/i386/pc_lite.c | 205 ++++++++++++++++ hw/i386/pc_lite_acpi.c | 299 +++++++++++++++++++++++ hw/i386/pc_piix.c | 2 + hw/i386/pc_q35.c | 2 + hw/pci-host/Makefile.objs | 1 + hw/pci-host/pci_lite.c | 259 ++++++++++++++++++++ include/hw/acpi/acpi.h | 2 + include/hw/acpi/bios-linker-loader.h | 85 +++++++ include/hw/acpi/pc-hotplug.h | 1 + include/hw/acpi/pm_lite.h | 6 + include/hw/i386/pc.h | 17 ++ include/hw/i386/pc_lite_acpi.h | 10 + 23 files changed, 1697 insertions(+), 179 deletions(-) create mode 100644 hw/acpi/pm_lite.c create mode 100644 hw/i386/pc_lite.c create mode 100644 hw/i386/pc_lite_acpi.c create mode 100644 hw/pci-host/pci_lite.c create mode 100644 include/hw/acpi/pm_lite.h create mode 100644 include/hw/i386/pc_lite_acpi.h -- 1.8.3.1