diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/axis_dev88.c | 5 | ||||
-rw-r--r-- | hw/etraxfs.c | 5 | ||||
-rw-r--r-- | hw/etraxfs_eth.c | 2 | ||||
-rw-r--r-- | hw/integratorcp.c | 14 | ||||
-rw-r--r-- | hw/mcf5208.c | 14 | ||||
-rw-r--r-- | hw/mcf_fec.c | 2 | ||||
-rw-r--r-- | hw/mips_mipssim.c | 16 | ||||
-rw-r--r-- | hw/mips_r4k.c | 16 | ||||
-rw-r--r-- | hw/mipsnet.c | 2 | ||||
-rw-r--r-- | hw/musicpal.c | 2 | ||||
-rw-r--r-- | hw/ne2000.c | 2 | ||||
-rw-r--r-- | hw/pcnet.c | 2 | ||||
-rw-r--r-- | hw/realview.c | 8 | ||||
-rw-r--r-- | hw/smc91c111.c | 2 | ||||
-rw-r--r-- | hw/stellaris.c | 4 | ||||
-rw-r--r-- | hw/stellaris_enet.c | 2 | ||||
-rw-r--r-- | hw/sun4m.c | 36 | ||||
-rw-r--r-- | hw/versatilepb.c | 8 |
18 files changed, 41 insertions, 101 deletions
diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c index c20524bd8c..066b96944c 100644 --- a/hw/axis_dev88.c +++ b/hw/axis_dev88.c @@ -303,13 +303,10 @@ void axisdev88_init (ram_addr_t ram_size, int vga_ram_size, } /* Add the two ethernet blocks. */ - nd_table[0].model = nd_table[0].model ? nd_table[0].model : "fseth"; eth[0] = etraxfs_eth_init(&nd_table[0], env, pic->irq + 25, 0x30034000, 1); - if (nb_nics > 1) { - nd_table[1].model = nd_table[1].model ? nd_table[1].model : "fseth"; + if (nb_nics > 1) eth[1] = etraxfs_eth_init(&nd_table[1], env, pic->irq + 26, 0x30036000, 2); - } /* The DMA Connector block is missing, hardwire things for now. */ etraxfs_dmac_connect_client(etraxfs_dmac, 0, eth[0]); diff --git a/hw/etraxfs.c b/hw/etraxfs.c index 01569bc1b9..e409a94e25 100644 --- a/hw/etraxfs.c +++ b/hw/etraxfs.c @@ -94,13 +94,10 @@ void bareetraxfs_init (ram_addr_t ram_size, int vga_ram_size, } /* Add the two ethernet blocks. */ - nd_table[0].model = nd_table[0].model ? nd_table[0].model : "fseth"; eth[0] = etraxfs_eth_init(&nd_table[0], env, pic->irq + 25, 0x30034000, 1); - if (nb_nics > 1) { - nd_table[1].model = nd_table[1].model ? nd_table[1].model : "fseth"; + if (nb_nics > 1) eth[1] = etraxfs_eth_init(&nd_table[1], env, pic->irq + 26, 0x30036000, 2); - } /* The DMA Connector block is missing, hardwire things for now. */ etraxfs_dmac_connect_client(etraxfs_dmac, 0, eth[0]); diff --git a/hw/etraxfs_eth.c b/hw/etraxfs_eth.c index 4ae97b11eb..cce89178a5 100644 --- a/hw/etraxfs_eth.c +++ b/hw/etraxfs_eth.c @@ -561,6 +561,8 @@ void *etraxfs_eth_init(NICInfo *nd, CPUState *env, struct etraxfs_dma_client *dma = NULL; struct fs_eth *eth = NULL; + qemu_check_nic_model(nd, "fseth"); + dma = qemu_mallocz(sizeof *dma * 2); if (!dma) return NULL; diff --git a/hw/integratorcp.c b/hw/integratorcp.c index a2d3d4306c..fdbfe202fd 100644 --- a/hw/integratorcp.c +++ b/hw/integratorcp.c @@ -497,18 +497,8 @@ static void integratorcp_init(ram_addr_t ram_size, int vga_ram_size, exit(1); } pl181_init(0x1c000000, drives_table[sd].bdrv, pic[23], pic[24]); - if (nd_table[0].vlan) { - if (nd_table[0].model == NULL - || strcmp(nd_table[0].model, "smc91c111") == 0) { - smc91c111_init(&nd_table[0], 0xc8000000, pic[27]); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: smc91c111\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } - } + if (nd_table[0].vlan) + smc91c111_init(&nd_table[0], 0xc8000000, pic[27]); pl110_init(ds, 0xc0000000, pic[22], 0); integrator_binfo.ram_size = ram_size; diff --git a/hw/mcf5208.c b/hw/mcf5208.c index 71ba3fb0a2..f06c25a54c 100644 --- a/hw/mcf5208.c +++ b/hw/mcf5208.c @@ -241,18 +241,8 @@ static void mcf5208evb_init(ram_addr_t ram_size, int vga_ram_size, fprintf(stderr, "Too many NICs\n"); exit(1); } - if (nd_table[0].vlan) { - if (nd_table[0].model == NULL - || strcmp(nd_table[0].model, "mcf_fec") == 0) { - mcf_fec_init(&nd_table[0], 0xfc030000, pic + 36); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: mcf_fec\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } - } + if (nd_table[0].vlan) + mcf_fec_init(&nd_table[0], 0xfc030000, pic + 36); /* 0xfc000000 SCM. */ /* 0xfc004000 XBS. */ diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c index 49ae69bd5e..413c5694db 100644 --- a/hw/mcf_fec.c +++ b/hw/mcf_fec.c @@ -446,6 +446,8 @@ void mcf_fec_init(NICInfo *nd, target_phys_addr_t base, qemu_irq *irq) mcf_fec_state *s; int iomemtype; + qemu_check_nic_model(nd, "mcf_fec"); + s = (mcf_fec_state *)qemu_mallocz(sizeof(mcf_fec_state)); s->irq = irq; iomemtype = cpu_register_io_memory(0, mcf_fec_readfn, diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c index dc62f696a0..83f1a63e5c 100644 --- a/hw/mips_mipssim.c +++ b/hw/mips_mipssim.c @@ -175,19 +175,9 @@ mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size, if (serial_hds[0]) serial_init(0x3f8, env->irq[4], 115200, serial_hds[0]); - if (nd_table[0].vlan) { - if (nd_table[0].model == NULL - || strcmp(nd_table[0].model, "mipsnet") == 0) { - /* MIPSnet uses the MIPS CPU INT0, which is interrupt 2. */ - mipsnet_init(0x4200, env->irq[2], &nd_table[0]); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: mipsnet\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } - } + if (nd_table[0].vlan) + /* MIPSnet uses the MIPS CPU INT0, which is interrupt 2. */ + mipsnet_init(0x4200, env->irq[2], &nd_table[0]); } QEMUMachine mips_mipssim_machine = { diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c index 56a1719af0..c12ab54b09 100644 --- a/hw/mips_r4k.c +++ b/hw/mips_r4k.c @@ -247,20 +247,8 @@ void mips_r4k_init (ram_addr_t ram_size, int vga_ram_size, isa_vga_init(ds, phys_ram_base + ram_size, ram_size, vga_ram_size); - if (nd_table[0].vlan) { - if (nd_table[i].model == NULL) { - nd_table[i].model = "ne2k_isa"; - } - if (strcmp(nd_table[0].model, "ne2k_isa") == 0) { - isa_ne2000_init(0x300, i8259[9], &nd_table[0]); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: ne2k_isa\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } - } + if (nd_table[0].vlan) + isa_ne2000_init(0x300, i8259[9], &nd_table[0]); if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) { fprintf(stderr, "qemu: too many IDE bus\n"); diff --git a/hw/mipsnet.c b/hw/mipsnet.c index 0eb4c1ed1a..04ce322870 100644 --- a/hw/mipsnet.c +++ b/hw/mipsnet.c @@ -236,6 +236,8 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd) { MIPSnetState *s; + qemu_check_nic_model(nd, "mipsnet"); + s = qemu_mallocz(sizeof(MIPSnetState)); if (!s) return; diff --git a/hw/musicpal.c b/hw/musicpal.c index 1c932ec3f7..f64bb1c89f 100644 --- a/hw/musicpal.c +++ b/hw/musicpal.c @@ -714,6 +714,8 @@ static void mv88w8618_eth_init(NICInfo *nd, uint32_t base, qemu_irq irq) mv88w8618_eth_state *s; int iomemtype; + qemu_check_nic_model(nd, "mv88w8618"); + s = qemu_mallocz(sizeof(mv88w8618_eth_state)); if (!s) return; diff --git a/hw/ne2000.c b/hw/ne2000.c index 200db90b9e..a85730f8c7 100644 --- a/hw/ne2000.c +++ b/hw/ne2000.c @@ -722,6 +722,8 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd) { NE2000State *s; + qemu_check_nic_model(nd, "ne2k_isa"); + s = qemu_mallocz(sizeof(NE2000State)); if (!s) return; diff --git a/hw/pcnet.c b/hw/pcnet.c index 102166ed22..61989685bb 100644 --- a/hw/pcnet.c +++ b/hw/pcnet.c @@ -2087,6 +2087,8 @@ void lance_init(NICInfo *nd, target_phys_addr_t leaddr, void *dma_opaque, PCNetState *d; int lance_io_memory; + qemu_check_nic_model(nd, "lance"); + d = qemu_mallocz(sizeof(PCNetState)); if (!d) return; diff --git a/hw/realview.c b/hw/realview.c index a9d20edc52..5abbc16d9d 100644 --- a/hw/realview.c +++ b/hw/realview.c @@ -121,11 +121,13 @@ static void realview_init(ram_addr_t ram_size, int vga_ram_size, } for(n = 0; n < nb_nics; n++) { nd = &nd_table[n]; - if (!nd->model) - nd->model = done_smc ? "rtl8139" : "smc91c111"; - if (strcmp(nd->model, "smc91c111") == 0) { + + if ((!nd->model && !done_smc) || strcmp(nd->model, "smc91c111") == 0) { smc91c111_init(nd, 0x4e000000, pic[28]); + done_smc = 1; } else { + if (!nd->model) + nd->model = "rtl8139"; pci_nic_init(pci_bus, nd, -1); } } diff --git a/hw/smc91c111.c b/hw/smc91c111.c index 27a3158f97..f5b29a7049 100644 --- a/hw/smc91c111.c +++ b/hw/smc91c111.c @@ -695,6 +695,8 @@ void smc91c111_init(NICInfo *nd, uint32_t base, qemu_irq irq) smc91c111_state *s; int iomemtype; + qemu_check_nic_model(nd, "smc91c111"); + s = (smc91c111_state *)qemu_mallocz(sizeof(smc91c111_state)); iomemtype = cpu_register_io_memory(0, smc91c111_readfn, smc91c111_writefn, s); diff --git a/hw/stellaris.c b/hw/stellaris.c index 703ef7e42c..7069518bd7 100644 --- a/hw/stellaris.c +++ b/hw/stellaris.c @@ -1361,10 +1361,8 @@ static void stellaris_init(const char *kernel_filename, const char *cpu_model, pl022_init(0x40008000, pic[7], NULL, NULL); } } - if (board->dc4 & (1 << 28)) { - /* FIXME: Obey network model. */ + if (board->dc4 & (1 << 28)) stellaris_enet_init(&nd_table[0], 0x40048000, pic[42]); - } if (board->peripherals & BP_GAMEPAD) { qemu_irq gpad_irq[5]; static const int gpad_keycode[5] = { 0xc8, 0xd0, 0xcb, 0xcd, 0x1d }; diff --git a/hw/stellaris_enet.c b/hw/stellaris_enet.c index a5cd16389e..88c56204e3 100644 --- a/hw/stellaris_enet.c +++ b/hw/stellaris_enet.c @@ -389,6 +389,8 @@ void stellaris_enet_init(NICInfo *nd, uint32_t base, qemu_irq irq) stellaris_enet_state *s; int iomemtype; + qemu_check_nic_model(nd, "stellaris"); + s = (stellaris_enet_state *)qemu_mallocz(sizeof(stellaris_enet_state)); iomemtype = cpu_register_io_memory(0, stellaris_enet_readfn, stellaris_enet_writefn, s); diff --git a/hw/sun4m.c b/hw/sun4m.c index fffd173ab7..1679a1d266 100644 --- a/hw/sun4m.c +++ b/hw/sun4m.c @@ -536,17 +536,7 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset, hwdef->vram_size, graphic_width, graphic_height, graphic_depth); - if (nd_table[0].model == NULL) - nd_table[0].model = "lance"; - if (strcmp(nd_table[0].model, "lance") == 0) { - lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: lance\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } + lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); nvram = m48t59_init(slavio_irq[0], hwdef->nvram_base, 0, hwdef->nvram_size, 8); @@ -1329,17 +1319,7 @@ static void sun4d_hw_init(const struct sun4d_hwdef *hwdef, ram_addr_t RAM_size, tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset, hwdef->vram_size, graphic_width, graphic_height, graphic_depth); - if (nd_table[0].model == NULL) - nd_table[0].model = "lance"; - if (strcmp(nd_table[0].model, "lance") == 0) { - lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: lance\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } + lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); nvram = m48t59_init(sbi_irq[0], hwdef->nvram_base, 0, hwdef->nvram_size, 8); @@ -1545,17 +1525,7 @@ static void sun4c_hw_init(const struct sun4c_hwdef *hwdef, ram_addr_t RAM_size, tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset, hwdef->vram_size, graphic_width, graphic_height, graphic_depth); - if (nd_table[0].model == NULL) - nd_table[0].model = "lance"; - if (strcmp(nd_table[0].model, "lance") == 0) { - lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); - } else if (strcmp(nd_table[0].model, "?") == 0) { - fprintf(stderr, "qemu: Supported NICs: lance\n"); - exit (1); - } else { - fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd_table[0].model); - exit (1); - } + lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset); nvram = m48t59_init(slavio_irq[0], hwdef->nvram_base, 0, hwdef->nvram_size, 2); diff --git a/hw/versatilepb.c b/hw/versatilepb.c index e5d02f2bb9..38c040da70 100644 --- a/hw/versatilepb.c +++ b/hw/versatilepb.c @@ -194,11 +194,13 @@ static void versatile_init(ram_addr_t ram_size, int vga_ram_size, so many of the qemu PCI devices are not useable. */ for(n = 0; n < nb_nics; n++) { nd = &nd_table[n]; - if (!nd->model) - nd->model = done_smc ? "rtl8139" : "smc91c111"; - if (strcmp(nd->model, "smc91c111") == 0) { + + if ((!nd->model && !done_smc) || strcmp(nd->model, "smc91c111") == 0) { smc91c111_init(nd, 0x10010000, sic[25]); + done_smc = 1; } else { + if (!nd->model) + nd->model = "rtl8139"; pci_nic_init(pci_bus, nd, -1); } } |