Re: [PATCH v3 21/46] hw/arm/allwinner: use qemu_configure_nic_device()

2024-01-26 Thread Thomas Huth

On 08/01/2024 21.26, David Woodhouse wrote:

From: David Woodhouse 

Signed-off-by: David Woodhouse 
---
  hw/arm/allwinner-a10.c |  6 +-
  hw/arm/allwinner-h3.c  |  6 +-
  hw/arm/allwinner-r40.c | 27 ++-
  3 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
index b0ea3f7f66..57f52871ec 100644
--- a/hw/arm/allwinner-a10.c
+++ b/hw/arm/allwinner-a10.c
@@ -142,11 +142,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
  sysbus_realize(SYS_BUS_DEVICE(&s->dramc), &error_fatal);
  sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 0, AW_A10_DRAMC_BASE);
  
-/* FIXME use qdev NIC properties instead of nd_table[] */

-if (nd_table[0].used) {
-qemu_check_nic_model(&nd_table[0], TYPE_AW_EMAC);
-qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
-}
+qemu_configure_nic_device(DEVICE(&s->emac), true, NULL);
  if (!sysbus_realize(SYS_BUS_DEVICE(&s->emac), errp)) {
  return;
  }
diff --git a/hw/arm/allwinner-h3.c b/hw/arm/allwinner-h3.c
index f05afddf7e..4f102ad082 100644
--- a/hw/arm/allwinner-h3.c
+++ b/hw/arm/allwinner-h3.c
@@ -369,11 +369,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error 
**errp)
"sd-bus");
  
  /* EMAC */

-/* FIXME use qdev NIC properties instead of nd_table[] */
-if (nd_table[0].used) {
-qemu_check_nic_model(&nd_table[0], TYPE_AW_SUN8I_EMAC);
-qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
-}
+qemu_configure_nic_device(DEVICE(&s->emac), true, NULL);
  object_property_set_link(OBJECT(&s->emac), "dma-memory",
   OBJECT(get_system_memory()), &error_fatal);
  sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal);
diff --git a/hw/arm/allwinner-r40.c b/hw/arm/allwinner-r40.c
index a0d367c60d..4d5661b014 100644
--- a/hw/arm/allwinner-r40.c
+++ b/hw/arm/allwinner-r40.c
@@ -294,7 +294,6 @@ static void allwinner_r40_init(Object *obj)
  
  static void allwinner_r40_realize(DeviceState *dev, Error **errp)

  {
-const char *r40_nic_models[] = { "gmac", "emac", NULL };
  AwR40State *s = AW_R40(dev);
  
  /* CPUs */

@@ -454,31 +453,8 @@ static void allwinner_r40_realize(DeviceState *dev, Error 
**errp)
  sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 2,
  s->memmap[AW_R40_DEV_DRAMPHY]);
  
-/* nic support gmac and emac */

-for (int i = 0; i < ARRAY_SIZE(r40_nic_models) - 1; i++) {
-NICInfo *nic = &nd_table[i];
-
-if (!nic->used) {
-continue;
-}
-if (qemu_show_nic_models(nic->model, r40_nic_models)) {
-exit(0);
-}
-
-switch (qemu_find_nic_model(nic, r40_nic_models, r40_nic_models[0])) {
-case 0: /* gmac */
-qdev_set_nic_properties(DEVICE(&s->gmac), nic);
-break;
-case 1: /* emac */
-qdev_set_nic_properties(DEVICE(&s->emac), nic);
-break;
-default:
-exit(1);
-break;
-}
-}
-
  /* GMAC */
+qemu_configure_nic_device(DEVICE(&s->gmac), true, "gmac");
  object_property_set_link(OBJECT(&s->gmac), "dma-memory",
   OBJECT(get_system_memory()), 
&error_fatal);
  sysbus_realize(SYS_BUS_DEVICE(&s->gmac), &error_fatal);
@@ -487,6 +463,7 @@ static void allwinner_r40_realize(DeviceState *dev, Error 
**errp)
 qdev_get_gpio_in(DEVICE(&s->gic), 
AW_R40_GIC_SPI_GMAC));
  
  /* EMAC */

+qemu_configure_nic_device(DEVICE(&s->emac), true, "emac");
  sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal);
  sysbus_mmio_map(SYS_BUS_DEVICE(&s->emac), 0, s->memmap[AW_R40_DEV_EMAC]);
  sysbus_connect_irq(SYS_BUS_DEVICE(&s->emac), 0,


Reviewed-by: Thomas Huth 




[PATCH v3 21/46] hw/arm/allwinner: use qemu_configure_nic_device()

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

Signed-off-by: David Woodhouse 
---
 hw/arm/allwinner-a10.c |  6 +-
 hw/arm/allwinner-h3.c  |  6 +-
 hw/arm/allwinner-r40.c | 27 ++-
 3 files changed, 4 insertions(+), 35 deletions(-)

diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
index b0ea3f7f66..57f52871ec 100644
--- a/hw/arm/allwinner-a10.c
+++ b/hw/arm/allwinner-a10.c
@@ -142,11 +142,7 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
 sysbus_realize(SYS_BUS_DEVICE(&s->dramc), &error_fatal);
 sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 0, AW_A10_DRAMC_BASE);
 
-/* FIXME use qdev NIC properties instead of nd_table[] */
-if (nd_table[0].used) {
-qemu_check_nic_model(&nd_table[0], TYPE_AW_EMAC);
-qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
-}
+qemu_configure_nic_device(DEVICE(&s->emac), true, NULL);
 if (!sysbus_realize(SYS_BUS_DEVICE(&s->emac), errp)) {
 return;
 }
diff --git a/hw/arm/allwinner-h3.c b/hw/arm/allwinner-h3.c
index f05afddf7e..4f102ad082 100644
--- a/hw/arm/allwinner-h3.c
+++ b/hw/arm/allwinner-h3.c
@@ -369,11 +369,7 @@ static void allwinner_h3_realize(DeviceState *dev, Error 
**errp)
   "sd-bus");
 
 /* EMAC */
-/* FIXME use qdev NIC properties instead of nd_table[] */
-if (nd_table[0].used) {
-qemu_check_nic_model(&nd_table[0], TYPE_AW_SUN8I_EMAC);
-qdev_set_nic_properties(DEVICE(&s->emac), &nd_table[0]);
-}
+qemu_configure_nic_device(DEVICE(&s->emac), true, NULL);
 object_property_set_link(OBJECT(&s->emac), "dma-memory",
  OBJECT(get_system_memory()), &error_fatal);
 sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal);
diff --git a/hw/arm/allwinner-r40.c b/hw/arm/allwinner-r40.c
index a0d367c60d..4d5661b014 100644
--- a/hw/arm/allwinner-r40.c
+++ b/hw/arm/allwinner-r40.c
@@ -294,7 +294,6 @@ static void allwinner_r40_init(Object *obj)
 
 static void allwinner_r40_realize(DeviceState *dev, Error **errp)
 {
-const char *r40_nic_models[] = { "gmac", "emac", NULL };
 AwR40State *s = AW_R40(dev);
 
 /* CPUs */
@@ -454,31 +453,8 @@ static void allwinner_r40_realize(DeviceState *dev, Error 
**errp)
 sysbus_mmio_map(SYS_BUS_DEVICE(&s->dramc), 2,
 s->memmap[AW_R40_DEV_DRAMPHY]);
 
-/* nic support gmac and emac */
-for (int i = 0; i < ARRAY_SIZE(r40_nic_models) - 1; i++) {
-NICInfo *nic = &nd_table[i];
-
-if (!nic->used) {
-continue;
-}
-if (qemu_show_nic_models(nic->model, r40_nic_models)) {
-exit(0);
-}
-
-switch (qemu_find_nic_model(nic, r40_nic_models, r40_nic_models[0])) {
-case 0: /* gmac */
-qdev_set_nic_properties(DEVICE(&s->gmac), nic);
-break;
-case 1: /* emac */
-qdev_set_nic_properties(DEVICE(&s->emac), nic);
-break;
-default:
-exit(1);
-break;
-}
-}
-
 /* GMAC */
+qemu_configure_nic_device(DEVICE(&s->gmac), true, "gmac");
 object_property_set_link(OBJECT(&s->gmac), "dma-memory",
  OBJECT(get_system_memory()), 
&error_fatal);
 sysbus_realize(SYS_BUS_DEVICE(&s->gmac), &error_fatal);
@@ -487,6 +463,7 @@ static void allwinner_r40_realize(DeviceState *dev, Error 
**errp)
qdev_get_gpio_in(DEVICE(&s->gic), AW_R40_GIC_SPI_GMAC));
 
 /* EMAC */
+qemu_configure_nic_device(DEVICE(&s->emac), true, "emac");
 sysbus_realize(SYS_BUS_DEVICE(&s->emac), &error_fatal);
 sysbus_mmio_map(SYS_BUS_DEVICE(&s->emac), 0, s->memmap[AW_R40_DEV_EMAC]);
 sysbus_connect_irq(SYS_BUS_DEVICE(&s->emac), 0,
-- 
2.41.0