Re: [PATCH v4 30/47] hw/arm: use qemu_configure_nic_device()

2024-01-31 Thread Thomas Huth

On 26/01/2024 18.25, David Woodhouse wrote:

From: David Woodhouse 

Signed-off-by: David Woodhouse 
---
  hw/arm/mps2-tz.c |  8 ++--
  hw/arm/msf2-soc.c|  6 +-
  hw/arm/musicpal.c|  3 +--
  hw/arm/xilinx_zynq.c | 11 ---
  hw/arm/xlnx-versal.c |  7 +--
  hw/arm/xlnx-zynqmp.c |  8 +---
  6 files changed, 10 insertions(+), 33 deletions(-)


Reviewed-by: Thomas Huth 




[PATCH v4 30/47] hw/arm: use qemu_configure_nic_device()

2024-01-26 Thread David Woodhouse
From: David Woodhouse 

Signed-off-by: David Woodhouse 
---
 hw/arm/mps2-tz.c |  8 ++--
 hw/arm/msf2-soc.c|  6 +-
 hw/arm/musicpal.c|  3 +--
 hw/arm/xilinx_zynq.c | 11 ---
 hw/arm/xlnx-versal.c |  7 +--
 hw/arm/xlnx-zynqmp.c |  8 +---
 6 files changed, 10 insertions(+), 33 deletions(-)

diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index 5d8cdc1a4c..a2d18afd79 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -503,14 +503,12 @@ static MemoryRegion *make_eth_dev(MPS2TZMachineState 
*mms, void *opaque,
   const PPCExtraData *extradata)
 {
 SysBusDevice *s;
-NICInfo *nd = &nd_table[0];
 
 /* In hardware this is a LAN9220; the LAN9118 is software compatible
  * except that it doesn't support the checksum-offload feature.
  */
-qemu_check_nic_model(nd, "lan9118");
 mms->lan9118 = qdev_new(TYPE_LAN9118);
-qdev_set_nic_properties(mms->lan9118, nd);
+qemu_configure_nic_device(mms->lan9118, true, NULL);
 
 s = SYS_BUS_DEVICE(mms->lan9118);
 sysbus_realize_and_unref(s, &error_fatal);
@@ -528,7 +526,6 @@ static MemoryRegion *make_eth_usb(MPS2TZMachineState *mms, 
void *opaque,
  * irqs[] is the ethernet IRQ.
  */
 SysBusDevice *s;
-NICInfo *nd = &nd_table[0];
 
 memory_region_init(&mms->eth_usb_container, OBJECT(mms),
"mps2-tz-eth-usb-container", 0x20);
@@ -537,9 +534,8 @@ static MemoryRegion *make_eth_usb(MPS2TZMachineState *mms, 
void *opaque,
  * In hardware this is a LAN9220; the LAN9118 is software compatible
  * except that it doesn't support the checksum-offload feature.
  */
-qemu_check_nic_model(nd, "lan9118");
 mms->lan9118 = qdev_new(TYPE_LAN9118);
-qdev_set_nic_properties(mms->lan9118, nd);
+qemu_configure_nic_device(mms->lan9118, true, NULL);
 
 s = SYS_BUS_DEVICE(mms->lan9118);
 sysbus_realize_and_unref(s, &error_fatal);
diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c
index b5fe9f364d..35bf1d64e1 100644
--- a/hw/arm/msf2-soc.c
+++ b/hw/arm/msf2-soc.c
@@ -197,12 +197,8 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Error 
**errp)
 g_free(bus_name);
 }
 
-/* FIXME use qdev NIC properties instead of nd_table[] */
-if (nd_table[0].used) {
-qemu_check_nic_model(&nd_table[0], TYPE_MSS_EMAC);
-qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
-}
 dev = DEVICE(&s->emac);
+qemu_configure_nic_device(dev, true, NULL);
 object_property_set_link(OBJECT(&s->emac), "ahb-bus",
  OBJECT(get_system_memory()), &error_abort);
 if (!sysbus_realize(SYS_BUS_DEVICE(&s->emac), errp)) {
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
index 3200c9f68a..8781e99d27 100644
--- a/hw/arm/musicpal.c
+++ b/hw/arm/musicpal.c
@@ -1286,9 +1286,8 @@ static void musicpal_init(MachineState *machine)
 }
 sysbus_create_simple(TYPE_MV88W8618_FLASHCFG, MP_FLASHCFG_BASE, NULL);
 
-qemu_check_nic_model(&nd_table[0], "mv88w8618");
 dev = qdev_new(TYPE_MV88W8618_ETH);
-qdev_set_nic_properties(dev, &nd_table[0]);
+qemu_configure_nic_device(dev, true, "mv88w8618");
 object_property_set_link(OBJECT(dev), "dma-memory",
  OBJECT(get_system_memory()), &error_fatal);
 sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index dbb9793aa1..73a6472b91 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -108,16 +108,13 @@ static void zynq_write_board_setup(ARMCPU *cpu,
 
 static struct arm_boot_info zynq_binfo = {};
 
-static void gem_init(NICInfo *nd, uint32_t base, qemu_irq irq)
+static void gem_init(uint32_t base, qemu_irq irq)
 {
 DeviceState *dev;
 SysBusDevice *s;
 
 dev = qdev_new(TYPE_CADENCE_GEM);
-if (nd->used) {
-qemu_check_nic_model(nd, TYPE_CADENCE_GEM);
-qdev_set_nic_properties(dev, nd);
-}
+qemu_configure_nic_device(dev, true, NULL);
 object_property_set_int(OBJECT(dev), "phy-addr", 7, &error_abort);
 s = SYS_BUS_DEVICE(dev);
 sysbus_realize_and_unref(s, &error_fatal);
@@ -279,8 +276,8 @@ static void zynq_init(MachineState *machine)
 sysbus_create_varargs("cadence_ttc", 0xF8002000,
 pic[69-IRQ_OFFSET], pic[70-IRQ_OFFSET], pic[71-IRQ_OFFSET], NULL);
 
-gem_init(&nd_table[0], 0xE000B000, pic[54-IRQ_OFFSET]);
-gem_init(&nd_table[1], 0xE000C000, pic[77-IRQ_OFFSET]);
+gem_init(0xE000B000, pic[54 - IRQ_OFFSET]);
+gem_init(0xE000C000, pic[77 - IRQ_OFFSET]);
 
 for (n = 0; n < 2; n++) {
 int hci_irq = n ? 79 : 56;
diff --git a/hw/arm/xlnx-versal.c b/hw/arm/xlnx-versal.c
index 9600551c44..01965ddf99 100644
--- a/hw/arm/xlnx-versal.c
+++ b/hw/arm/xlnx-versal.c
@@ -254,18 +254,13 @@ static void versal_create_gems(Versal *s, qemu_irq *pic)
 static const int irqs[] = { VERSAL_GEM0_IRQ_0, VERSAL_GEM1_IRQ_0};
 s