Architecture.loongarch64 : "loongarch64",
}.get(self)
-
def to_qemu(self) -> str:
a = {
Architecture.alpha : "alpha",
def supports_fw_cfg(self) -> bool:
return self in (Architecture.x86, Architecture.x86_64, Architecture.arm, Architecture.arm64)
+ def default_qemu_machine(self) -> str:
+ m = {
+ Architecture.x86 : "q35",
+ Architecture.x86_64 : "q35",
+ Architecture.arm : "virt",
+ Architecture.arm64 : "virt",
+ Architecture.s390 : "s390-ccw-virtio",
+ Architecture.s390x : "s390-ccw-virtio",
+ Architecture.ppc : "pseries",
+ Architecture.ppc64 : "pseries",
+ Architecture.ppc64_le : "pseries",
+ }
+
+ if self not in m:
+ die(f"No qemu machine defined for architecture {self}")
+
+ return m[self]
+
+ def default_qemu_nic_model(self) -> str:
+ return {
+ Architecture.s390 : "virtio",
+ Architecture.s390x : "virtio",
+ }.get(self, "virtio-net-pci")
+
def is_native(self) -> bool:
return self == self.native()
]
if not any(s.startswith("ip=") for s in args.kernel_command_line_extra):
- cmdline += ["ip=enp0s1:any", "ip=enp0s2:any", "ip=host0:any", "ip=none"]
+ cmdline += ["ip=enc0:any", "ip=enp0s1:any", "ip=enp0s2:any", "ip=host0:any", "ip=none"]
if not any(s.startswith("loglevel=") for s in args.kernel_command_line_extra):
cmdline += ["loglevel=4"]
if config.runtime_trees or config.output_format == OutputFormat.directory:
shm = ["-object", f"memory-backend-memfd,id=mem,size={config.qemu_mem},share=on"]
- if config.architecture == Architecture.arm64:
- machine = "type=virt"
- elif config.architecture == Architecture.s390x:
- machine = "type=s390-ccw-virtio"
- elif config.architecture == Architecture.ppc64_le:
- machine = "type=pseries"
- else:
- machine = f"type=q35,smm={'on' if ovmf_supports_sb else 'off'}"
-
+ machine = f"type={config.architecture.default_qemu_machine()}"
+ if firmware == QemuFirmware.uefi:
+ machine += f",smm={'on' if ovmf_supports_sb else 'off'}"
if shm:
machine += ",memory-backend=mem"
*shm,
]
- if config.architecture not in (Architecture.s390, Architecture.s390x):
- cmdline += ["-nic", "user,model=virtio-net-pci"]
+ cmdline += ["-nic", f"user,model={config.architecture.default_qemu_nic_model()}"]
if config.qemu_kvm != ConfigFeature.disabled and have_kvm and config.architecture.is_native():
accel = "kvm"