On 21/09/2020 10:57, Philippe Mathieu-Daudé wrote: > Hi Mark, > > On 9/20/20 10:20 AM, Mark Cave-Ayland wrote: >> Instead use qdev_set_nic_properties() to configure the on-board NIC at the >> sun4m machine level. >> >> Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> >> --- >> hw/dma/sparc32_dma.c | 5 ----- >> hw/sparc/sun4m.c | 21 +++++++++++++-------- >> 2 files changed, 13 insertions(+), 13 deletions(-) >> >> diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c >> index 2cbe331959..b643b413c5 100644 >> --- a/hw/dma/sparc32_dma.c >> +++ b/hw/dma/sparc32_dma.c >> @@ -342,12 +342,7 @@ static void sparc32_ledma_device_realize(DeviceState >> *dev, Error **errp) >> { >> LEDMADeviceState *s = SPARC32_LEDMA_DEVICE(dev); >> SysBusPCNetState *lance = SYSBUS_PCNET(&s->lance); >> - NICInfo *nd = &nd_table[0]; >> >> - /* FIXME use qdev NIC properties instead of nd_table[] */ >> - qemu_check_nic_model(nd, TYPE_LANCE); >> - >> - qdev_set_nic_properties(DEVICE(lance), nd); >> object_property_set_link(OBJECT(lance), "dma", OBJECT(dev), >> &error_abort); >> sysbus_realize(SYS_BUS_DEVICE(lance), &error_fatal); >> } >> diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c >> index 947b69d159..ed5f3ccd9f 100644 >> --- a/hw/sparc/sun4m.c >> +++ b/hw/sparc/sun4m.c >> @@ -319,7 +319,7 @@ static void *iommu_init(hwaddr addr, uint32_t version, >> qemu_irq irq) >> >> static void *sparc32_dma_init(hwaddr dma_base, >> hwaddr esp_base, qemu_irq espdma_irq, >> - hwaddr le_base, qemu_irq ledma_irq) >> + hwaddr le_base, qemu_irq ledma_irq, NICInfo >> *nd) > > Instead of passing NICInfo to sparc32_dma_init, > shouldn't you extract the lance code from it?
Hi Philippe, I'm not sure I understand what you mean here? The sparc32-dma device is realised within the sparc32_dma_init() function and qdev_set_nic_properties() must be called before realise happens. If you can explain a bit more about how you think it can be separated out then I can take a look. ATB, Mark.