mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
m68k: QOMify the MCF Fast Ethernet Controller device
When running qemu-system-m68k with the "-net" parameter (for example simply "-net nic -net user"), there is currently a confusing warning message saying: Warning: requested NIC (anonymous, model mcf_fec) was not created (not supported by this machine?) This seems to happen because the MCF NIC has never been adapted to the currently expected QEMU device behavior. Thus let's QOMify the NIC now to get rid of the warning message. Signed-off-by: Thomas Huth <huth@tuxfamily.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
d5aa3e6e0c
commit
6ac38ed42b
4 changed files with 94 additions and 27 deletions
|
|
@ -11,6 +11,7 @@
|
|||
#include "cpu.h"
|
||||
#include "hw/hw.h"
|
||||
#include "hw/m68k/mcf.h"
|
||||
#include "hw/m68k/mcf_fec.h"
|
||||
#include "qemu/timer.h"
|
||||
#include "hw/ptimer.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
|
|
@ -18,6 +19,7 @@
|
|||
#include "net/net.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/loader.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "elf.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
|
|
@ -192,6 +194,26 @@ static void mcf5208_sys_init(MemoryRegion *address_space, qemu_irq *pic)
|
|||
}
|
||||
}
|
||||
|
||||
static void mcf_fec_init(MemoryRegion *sysmem, NICInfo *nd, hwaddr base,
|
||||
qemu_irq *irqs)
|
||||
{
|
||||
DeviceState *dev;
|
||||
SysBusDevice *s;
|
||||
int i;
|
||||
|
||||
qemu_check_nic_model(nd, TYPE_MCF_FEC_NET);
|
||||
dev = qdev_create(NULL, TYPE_MCF_FEC_NET);
|
||||
qdev_set_nic_properties(dev, nd);
|
||||
qdev_init_nofail(dev);
|
||||
|
||||
s = SYS_BUS_DEVICE(dev);
|
||||
for (i = 0; i < FEC_NUM_IRQ; i++) {
|
||||
sysbus_connect_irq(s, i, irqs[i]);
|
||||
}
|
||||
|
||||
memory_region_add_subregion(sysmem, base, sysbus_mmio_get_region(s, 0));
|
||||
}
|
||||
|
||||
static void mcf5208evb_init(MachineState *machine)
|
||||
{
|
||||
ram_addr_t ram_size = machine->ram_size;
|
||||
|
|
@ -243,9 +265,10 @@ static void mcf5208evb_init(MachineState *machine)
|
|||
fprintf(stderr, "Too many NICs\n");
|
||||
exit(1);
|
||||
}
|
||||
if (nd_table[0].used)
|
||||
if (nd_table[0].used) {
|
||||
mcf_fec_init(address_space_mem, &nd_table[0],
|
||||
0xfc030000, pic + 36);
|
||||
}
|
||||
|
||||
/* 0xfc000000 SCM. */
|
||||
/* 0xfc004000 XBS. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue