mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-22 07:38:08 +00:00
02a266c236
guest_arch_profile() in the kvm plugin has an arm for riscv64 and an arm for POWER, and none for aarch64. A node whose nodetype.arch is aarch64 therefore keeps the x86 defaults, and mkvm defines a domain with os/type/@arch x86_64 and machine pc-i440fx. The compute node gets its lease, loads the x86 iPXE ROM, fetches the grub2.aarch64 image that nodeset staged, and answers "Could not boot image: Exec format error". It then falls through to the empty disk. guest_arch_profile() now returns an aarch64 profile: domain type qemu, os arch aarch64, machine virt, UEFI firmware, no x86 features and no SeaBIOS serial option, no USB tablet, and scsi disks with the sd prefix. machine is the unversioned alias, so libvirt resolves the version the hypervisor has. The video model stays vga, unlike riscv64: the aarch64 virt machine offers no virtio video model, and libvirt refuses the domain that asks for one. The profile also names a CPU model, which riscv64 did not need. With no <cpu> element libvirt passes -cpu max, which under TCG turns on SVE, and the guest stays in its firmware. build_xmldesc writes the model only when nothing else built a cpu element, so vm.cpumode and a pseries guest keep theirs. kvm_guest_arch.t covers the new arm. Eleven of its assertions fail without this change. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>