[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 33/45] hw/m68k/q800: use qemu_configure_nic_device()
From: |
David Woodhouse |
Subject: |
[PATCH 33/45] hw/m68k/q800: use qemu_configure_nic_device() |
Date: |
Sun, 22 Oct 2023 16:51:48 +0100 |
From: David Woodhouse <dwmw@amazon.co.uk>
Then fetch the MAC that was assigned, if any. And assign one if not,
ensuring that it uses the Apple OUI.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
hw/m68k/q800.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
index 1d7cd5ff1c..94e7c0dd60 100644
--- a/hw/m68k/q800.c
+++ b/hw/m68k/q800.c
@@ -271,6 +271,7 @@ static void q800_machine_init(MachineState *machine)
BusState *adb_bus;
NubusBus *nubus;
DriveInfo *dinfo;
+ MACAddr mac;
uint8_t rng_seed[32];
linux_boot = (kernel_filename != NULL);
@@ -371,13 +372,6 @@ static void q800_machine_init(MachineState *machine)
/* MACSONIC */
- if (nb_nics > 1) {
- error_report("q800 can only have one ethernet interface");
- exit(1);
- }
-
- qemu_check_nic_model(&nd_table[0], "dp83932");
-
/*
* MacSonic driver needs an Apple MAC address
* Valid prefix are:
@@ -387,14 +381,22 @@ static void q800_machine_init(MachineState *machine)
* 08:00:07 Apple
* (Q800 use the last one)
*/
- nd_table[0].macaddr.a[0] = 0x08;
- nd_table[0].macaddr.a[1] = 0x00;
- nd_table[0].macaddr.a[2] = 0x07;
-
object_initialize_child(OBJECT(machine), "dp8393x", &m->dp8393x,
TYPE_DP8393X);
dev = DEVICE(&m->dp8393x);
- qdev_set_nic_properties(dev, &nd_table[0]);
+ if (qemu_configure_nic_device(dev, TYPE_DP8393X, true, "dp83932")) {
+ gchar *macstr = object_property_get_str(OBJECT(dev));
+ if (macstr) {
+ net_parse_macaddr(mac.a, macstr);
+ g_free(macstr);
+ }
+ }
+ qemu_macaddr_default_if_unset(&mac);
+ mac.a[0] = 0x08;
+ mac.a[1] = 0x00;
+ mac.a[2] = 0x07;
+ qemu_prop_set_macaddr(dev, "mac", &mac.a);
+
qdev_prop_set_uint8(dev, "it_shift", 2);
qdev_prop_set_bit(dev, "big_endian", true);
object_property_set_link(OBJECT(dev), "dma_mr",
@@ -415,7 +417,7 @@ static void q800_machine_init(MachineState *machine)
prom = memory_region_get_ram_ptr(dp8393x_prom);
checksum = 0;
for (i = 0; i < 6; i++) {
- prom[i] = revbit8(nd_table[0].macaddr.a[i]);
+ prom[i] = revbit8(mac.a[i]);
checksum ^= prom[i];
}
prom[7] = 0xff - checksum;
--
2.40.1
- [PATCH 44/45] net: remove qemu_show_nic_models(), qemu_find_nic_model(), (continued)
- [PATCH 44/45] net: remove qemu_show_nic_models(), qemu_find_nic_model(), David Woodhouse, 2023/10/22
- [PATCH 05/45] hw/i386/pc: use qemu_get_nic_info() and pci_init_nic_devices(), David Woodhouse, 2023/10/22
- [PATCH 26/45] hw/net/lan9118: use qemu_configure_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 10/45] hw/hppa: use pci_init_nic_devices(), David Woodhouse, 2023/10/22
- [PATCH 43/45] hw/pci: remove pci_nic_init_nofail(), David Woodhouse, 2023/10/22
- [PATCH 03/45] net: add qemu_create_nic_bus_devices(), David Woodhouse, 2023/10/22
- [PATCH 35/45] hw/mips: use qemu_create_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 34/45] hw/microblaze: use qemu_configure_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 27/45] hw/arm/highbank: use qemu_create_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 07/45] hw/alpha/dp264: use pci_init_nic_devices(), David Woodhouse, 2023/10/22
- [PATCH 33/45] hw/m68k/q800: use qemu_configure_nic_device(),
David Woodhouse <=
- [PATCH 04/45] hw/pci: add pci_init_nic_devices(), pci_init_nic_in_slot(), David Woodhouse, 2023/10/22
- [PATCH 28/45] hw/arm/npcm7xx: use qemu_configure_nic_device, allow emc0/emc1 as aliases, David Woodhouse, 2023/10/22
- [PATCH 22/45] hw/arm/aspeed: use qemu_configure_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 29/45] hw/arm/stellaris: use qemu_find_nic_info(), David Woodhouse, 2023/10/22
- [PATCH 36/45] hw/net/lasi_i82596: use qemu_configure_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 21/45] hw/arm/allwinner: use qemu_configure_nic_device(), David Woodhouse, 2023/10/22
- [PATCH 06/45] hw/xen: use qemu_create_nic_bus_devices() to instantiate Xen NICs, David Woodhouse, 2023/10/22
- [PATCH 14/45] hw/mips/loongson3_virt: use pci_init_nic_devices(), David Woodhouse, 2023/10/22
- [PATCH 01/45] net: add qemu_{configure, create}_nic_device(), qemu_find_nic_info(), David Woodhouse, 2023/10/22
- [PATCH 39/45] hw/s390x/s390-virtio-ccw: use qemu_create_nic_device(), David Woodhouse, 2023/10/22