2. • Discussion at LCU13
• Trying to answer main question:
How do distribution vendors package and ship ARM
VMs so that they can be expected to run on the
ARM hypervisors out there?
Background
3. • RFC sent to:
• cross-distro@lists.linaro.org
• kvmarm@lists.cs.columbia.edu
• kvm@vger.kernel.org
• linux-arm-kernel@lists.infradead.org
• xen-devel@lists.xen.org
Proposed ARM VM Image Spec
4. • Build single image, run everywhere
• Valid recommendations for both aarch32 and aarch64
• The SBSA doesn’t cover it
• Mandated EL2
• Mandates pl011
• aarch32 not supported
Goal
5. • Must be well-defined
• Must be GPT with EFI application in EFI System
Partition (ESP)
• Must use removable path (no preexisting UEFI config)
• Supports both KVM and Xen
• Example: Grub2 as EFI application loads Linux
Image Format
6. • Required: Must be able to boot EFI application in ESP
• Obvious recommendation is UEFI implementation
• Linaro is already working on this
• Recommended to support persistent environment
storage:
• Supports adding disks later
• Supports running installers later
• Firmware distributed as part of distribution, not with VM
image
Virtual Firmware
7. • The Linux kernel boot protocol requires an FDT
• Even when using ACPI and UEFI
• FDT -> UEFI System Table -> ACPI root pointer
• Therefore:
• ACPI is discoverable through FDT, or
• the FDT describes the system directly
Hardware Description
8. • Must support at least one of:
• (1) aarch32 on aarch32
• (2) aarch32 on aarch64
• (3) aarch64 on aarch64
• Mandatory peripherals:
• Serial console (pl011, virtio-console, or Xen PV console)
• GICv2 or newer
• Architected Timer
• Hotpluggable bus (virtual PCIe or Xen PV bus)
VM Platform
9. • Must support GICv2 and newer. Maintaining backwards
compatibility.
• Strongly recommended to support all of:
• block, network, console, balloon drivers, e.g.
• virtio-pci
• virtio-mmio
• Xen PV drivers
• Will leverage mach-virt kernel facilities, but these are loosely coupled concepts.
Guest OS Recommendations
10. • Mandate serial port (reduced pl011)
• Use cases for ACPI (device assignment, verification,
unification)
• Fixed memory map (UEFI)
• Issue concerning kernel comand line (console=?)
Open Questions
12. More about Linaro Connect: http://connect.linaro.org
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
Linaro members: www.linaro.org/members