[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-8.3 v2 19/46] hw/sparc64/sun4u: use pci_init_nic_devices()
From: |
David Woodhouse |
Subject: |
[PATCH for-8.3 v2 19/46] hw/sparc64/sun4u: use pci_init_nic_devices() |
Date: |
Mon, 6 Nov 2023 19:49:24 +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 c871170378..be06278f7d 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -642,29 +642,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 for-8.3 v2 04/46] hw/pci: add pci_init_nic_devices(), pci_init_nic_in_slot(), (continued)
- [PATCH for-8.3 v2 14/46] hw/mips/loongson3_virt: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 17/46] hw/ppc: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 05/46] hw/i386/pc: use qemu_get_nic_info() and pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 39/46] hw/riscv: use qemu_configure_nic_device(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 11/46] hw/loongarch: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 36/46] hw/mips/jazz: use qemu_find_nic_info(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 22/46] hw/arm/aspeed: use qemu_configure_nic_device(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 19/46] hw/sparc64/sun4u: use pci_init_nic_devices(),
David Woodhouse <=
- [PATCH for-8.3 v2 08/46] hw/arm/sbsa-ref: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 02/46] net: report list of available models according to platform, David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 40/46] hw/s390x/s390-virtio-ccw: use qemu_create_nic_device(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 09/46] hw/arm/virt: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 38/46] hw/openrisc/openrisc_sim: use qemu_create_nic_device(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 28/46] hw/arm/npcm7xx: use qemu_configure_nic_device, allow emc0/emc1 as aliases, David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 45/46] net: remove qemu_show_nic_models(), qemu_find_nic_model(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 07/46] hw/alpha/dp264: use pci_init_nic_devices(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 27/46] hw/arm/highbank: use qemu_create_nic_device(), David Woodhouse, 2023/11/06
- [PATCH for-8.3 v2 44/46] hw/pci: remove pci_nic_init_nofail(), David Woodhouse, 2023/11/06