diff options
author | Thomas Huth <thuth@redhat.com> | 2023-05-11 18:14:37 +0200 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2023-05-22 09:44:48 +0200 |
commit | e8273b0c456a26aad046f48424861ecd26bd16c7 (patch) | |
tree | 033a18eb157fa0473a3a1a7703b4fc6758f682d9 /hw/sparc64 | |
parent | 545d8574bafbfe308908f10b4027010f6a12a441 (diff) |
hw/sparc64/sun4u: Use MachineClass->default_nic and MachineClass->no_parallel
Announce the default NIC via MachineClass->default_nic and set up
MachineClass->no_parallel according to the availability of the
"isa-parallel" device, so that the Sun machines also work when
QEMU has been configured with "--without-default-devices".
Message-Id: <20230512124033.502654-11-thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'hw/sparc64')
-rw-r--r-- | hw/sparc64/sun4u.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index eae7589462..e2858a0331 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -553,6 +553,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem, MachineState *machine, const struct hwdef *hwdef) { + MachineClass *mc = MACHINE_GET_CLASS(machine); SPARCCPU *cpu; Nvram *nvram; unsigned int i; @@ -645,15 +646,15 @@ static void sun4uv_init(MemoryRegion *address_space_mem, PCIBus *bus; nd = &nd_table[i]; - if (!nd->model || strcmp(nd->model, "sunhme") == 0) { + if (!nd->model || strcmp(nd->model, mc->default_nic) == 0) { if (!onboard_nic) { pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1), - true, "sunhme"); + true, mc->default_nic); bus = pci_busA; memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr)); onboard_nic = true; } else { - pci_dev = pci_new(-1, "sunhme"); + pci_dev = pci_new(-1, mc->default_nic); bus = pci_busB; } } else { @@ -816,6 +817,8 @@ static void sun4u_class_init(ObjectClass *oc, void *data) mc->default_cpu_type = SPARC_CPU_TYPE_NAME("TI-UltraSparc-IIi"); mc->ignore_boot_device_suffixes = true; mc->default_display = "std"; + mc->default_nic = "sunhme"; + mc->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL); fwc->get_dev_path = sun4u_fw_dev_path; } @@ -840,6 +843,8 @@ static void sun4v_class_init(ObjectClass *oc, void *data) mc->default_boot_order = "c"; mc->default_cpu_type = SPARC_CPU_TYPE_NAME("Sun-UltraSparc-T1"); mc->default_display = "std"; + mc->default_nic = "sunhme"; + mc->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL); } static const TypeInfo sun4v_type = { |