On 13/06/2018 18:54, Samuel Ortiz wrote:
This is going to be a simplified, emulation free and virtual hardware based machine type for running modern cloud and container workloads. We believe that this new machine type will allow us to reduce even further the number of devices that QEMU needs to support in order to run this kind of workloads.
We will start by implementing this new machine type on top of an upstream QEMU code base, as we hope that this could become upstream acceptable material. Then we will re-run our automatic code reduction tooling on top of a QEMU code base that would only support this machine type and the ARM virt one. This will become the new NEMU master branch.
Some notes: - the ARM virt machine type is not a "virtual hardware platform". It has PL011 serial, PL031 RTC, PL061 GPIO controller, a generic PCIe bridge, fw_cfg for the firmware to get data from QEMU, and emulated flash. The idea behind the ARM virt machine type is simply to make everything discoverable via device tree; the "virtualness" of it is simply that the device tree is provided by QEMU and not embedded into something like U-Boot or Linux. - support for legacy BIOS is irrelevant to QEMU; if any developer wants to port SeaBIOS to this new machine, why not? SeaBIOS is already very modular (and qboot is not particularly faster than a properly configured SeaBIOS). - UEFI runtime services need to provide an RTC, so you need to emulate one. - without MCH, you'll have to find a different way to handle SMRAM. - no ISA means no serial port for early boot messages, no debug port for firmware logs, and more painful debugging in general. I'm not sure that's a good idea. Of course you don't want any IDE or floppy crap, but that's orthogonal to having ISA. - no LPC also means no hotplug (on q35; on PIIX hotplug was part of the SMBus controller, which you probably don't want anyway). So you'd have to reinvent something very similar to a PCH anyway in order to provide hotplug. IMNSHO, a more interesting starting point would be to upstream the patches to remove legacy devices from the binary (e.g. the infamous floppy). Paolo