[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 19/46] hw/sparc64/sun4u: use pci_init_nic_devices()
From: |
David Woodhouse |
Subject: |
[PATCH v3 19/46] hw/sparc64/sun4u: use pci_init_nic_devices() |
Date: |
Mon, 8 Jan 2024 20:26:48 +0000 |
From: David Woodhouse <dwmw@amazon.co.uk>
The first sunhme NIC gets placed a function 1 on slot 1 of PCI bus A,
and the rest are dynamically assigned on PCI bus B.
Previously, any PCI NIC would get the special treatment purely by
virtue of being first in the list.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
hw/sparc64/sun4u.c | 27 ++++++++-------------------
1 file changed, 8 insertions(+), 19 deletions(-)
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 24d53bf5fd..eda9b58a21 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -639,29 +639,18 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
memset(&macaddr, 0, sizeof(MACAddr));
onboard_nic = false;
- for (i = 0; i < nb_nics; i++) {
- PCIBus *bus;
- nd = &nd_table[i];
-
- if (!nd->model || strcmp(nd->model, mc->default_nic) == 0) {
- if (!onboard_nic) {
- pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1),
mc->default_nic);
- bus = pci_busA;
- memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr));
- onboard_nic = true;
- } else {
- pci_dev = pci_new(-1, mc->default_nic);
- bus = pci_busB;
- }
- } else {
- pci_dev = pci_new(-1, nd->model);
- bus = pci_busB;
- }
+ nd = qemu_find_nic_info(mc->default_nic, true, NULL);
+ if (nd) {
+ pci_dev = pci_new_multifunction(PCI_DEVFN(1, 1), mc->default_nic);
dev = &pci_dev->qdev;
qdev_set_nic_properties(dev, nd);
- pci_realize_and_unref(pci_dev, bus, &error_fatal);
+ pci_realize_and_unref(pci_dev, pci_busA, &error_fatal);
+
+ memcpy(&macaddr, &nd->macaddr.a, sizeof(MACAddr));
+ onboard_nic = true;
}
+ pci_init_nic_devices(pci_busB, mc->default_nic);
/* If we don't have an onboard NIC, grab a default MAC address so that
* we have a valid machine id */
--
2.41.0
- Re: [PATCH v3 01/46] net: add qemu_{configure, create}_nic_device(), qemu_find_nic_info(), (continued)
- Re: [PATCH v3 01/46] net: add qemu_{configure, create}_nic_device(), qemu_find_nic_info(), Peter Maydell, 2024/01/26
- Re: [PATCH v3 01/46] net: add qemu_{configure,create}_nic_device(), qemu_find_nic_info(), David Woodhouse, 2024/01/26
- Re: [PATCH v3 01/46] net: add qemu_{configure, create}_nic_device(), qemu_find_nic_info(), Peter Maydell, 2024/01/26
- Re: [PATCH v3 01/46] net: add qemu_{configure,create}_nic_device(), qemu_find_nic_info(), David Woodhouse, 2024/01/26
[PATCH v3 28/46] hw/arm/npcm7xx: use qemu_configure_nic_device, allow emc0/emc1 as aliases, David Woodhouse, 2024/01/08
[PATCH v3 31/46] hw/net/etraxfs-eth: use qemu_configure_nic_device(), David Woodhouse, 2024/01/08
[PATCH v3 06/46] hw/xen: use qemu_create_nic_bus_devices() to instantiate Xen NICs, David Woodhouse, 2024/01/08
[PATCH v3 40/46] hw/s390x/s390-virtio-ccw: use qemu_create_nic_device(), David Woodhouse, 2024/01/08
[PATCH v3 19/46] hw/sparc64/sun4u: use pci_init_nic_devices(),
David Woodhouse <=
Re: [PATCH v3 00/46] Rework matching of network devices to -nic options, David Woodhouse, 2024/01/24