Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
hw/ppc: Use MachineClass->default_nic in the ppc machines
Mark the default NIC via the new MachineClass->default_nic setting
so that the machine-defaults code in vl.c can decide whether the
default NIC is usable or not (for example when compiling with the
"--without-default-devices" configure switch).

Message-Id: <20230512124033.502654-6-thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
  • Loading branch information
huth committed May 22, 2023
1 parent 26a0802 commit 053b708
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 5 deletions.
3 changes: 2 additions & 1 deletion hw/ppc/e500.c
Expand Up @@ -898,6 +898,7 @@ void ppce500_init(MachineState *machine)
MemoryRegion *address_space_mem = get_system_memory();
PPCE500MachineState *pms = PPCE500_MACHINE(machine);
const PPCE500MachineClass *pmc = PPCE500_MACHINE_GET_CLASS(machine);
MachineClass *mc = MACHINE_CLASS(pmc);
PCIBus *pci_bus;
CPUPPCState *env = NULL;
uint64_t loadaddr;
Expand Down Expand Up @@ -1073,7 +1074,7 @@ void ppce500_init(MachineState *machine)
if (pci_bus) {
/* Register network interfaces. */
for (i = 0; i < nb_nics; i++) {
pci_nic_init_nofail(&nd_table[i], pci_bus, "virtio-net-pci", NULL);
pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
}
}

Expand Down
1 change: 1 addition & 0 deletions hw/ppc/e500plat.c
Expand Up @@ -99,6 +99,7 @@ static void e500plat_machine_class_init(ObjectClass *oc, void *data)
mc->max_cpus = 32;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("e500v2_v30");
mc->default_ram_id = "mpc8544ds.ram";
mc->default_nic = "virtio-net-pci";
machine_class_allow_dynamic_sysbus_dev(mc, TYPE_ETSEC_COMMON);
}

Expand Down
4 changes: 3 additions & 1 deletion hw/ppc/mac_newworld.c
Expand Up @@ -132,6 +132,7 @@ static void ppc_core99_reset(void *opaque)
static void ppc_core99_init(MachineState *machine)
{
Core99MachineState *core99_machine = CORE99_MACHINE(machine);
MachineClass *mc = MACHINE_GET_CLASS(machine);
PowerPCCPU *cpu = NULL;
CPUPPCState *env = NULL;
char *filename;
Expand Down Expand Up @@ -444,7 +445,7 @@ static void ppc_core99_init(MachineState *machine)
}

for (i = 0; i < nb_nics; i++) {
pci_nic_init_nofail(&nd_table[i], pci_bus, "sungem", NULL);
pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
}

/* The NewWorld NVRAM is not located in the MacIO device */
Expand Down Expand Up @@ -577,6 +578,7 @@ static void core99_machine_class_init(ObjectClass *oc, void *data)
mc->max_cpus = 1;
mc->default_boot_order = "cd";
mc->default_display = "std";
mc->default_nic = "sungem";
mc->kvm_type = core99_kvm_type;
#ifdef TARGET_PPC64
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("970fx_v3.1");
Expand Down
4 changes: 3 additions & 1 deletion hw/ppc/mac_oldworld.c
Expand Up @@ -87,6 +87,7 @@ static void ppc_heathrow_reset(void *opaque)
static void ppc_heathrow_init(MachineState *machine)
{
const char *bios_name = machine->firmware ?: PROM_FILENAME;
MachineClass *mc = MACHINE_GET_CLASS(machine);
PowerPCCPU *cpu = NULL;
CPUPPCState *env = NULL;
char *filename;
Expand Down Expand Up @@ -276,7 +277,7 @@ static void ppc_heathrow_init(MachineState *machine)
pci_vga_init(pci_bus);

for (i = 0; i < nb_nics; i++) {
pci_nic_init_nofail(&nd_table[i], pci_bus, "ne2k_pci", NULL);
pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic, NULL);
}

/* MacIO IDE */
Expand Down Expand Up @@ -424,6 +425,7 @@ static void heathrow_class_init(ObjectClass *oc, void *data)
mc->kvm_type = heathrow_kvm_type;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("750_v3.1");
mc->default_display = "std";
mc->default_nic = "ne2k_pci";
mc->ignore_boot_device_suffixes = true;
mc->default_ram_id = "ppc_heathrow.ram";
fwc->get_dev_path = heathrow_fw_dev_path;
Expand Down
1 change: 1 addition & 0 deletions hw/ppc/mpc8544ds.c
Expand Up @@ -61,6 +61,7 @@ static void mpc8544ds_machine_class_init(ObjectClass *oc, void *data)
mc->max_cpus = 15;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("e500v2_v30");
mc->default_ram_id = "mpc8544ds.ram";
mc->default_nic = "virtio-net-pci";
}

#define TYPE_MPC8544DS_MACHINE MACHINE_TYPE_NAME("mpc8544ds")
Expand Down
4 changes: 3 additions & 1 deletion hw/ppc/ppc440_bamboo.c
Expand Up @@ -161,6 +161,7 @@ static void bamboo_init(MachineState *machine)
{
const char *kernel_filename = machine->kernel_filename;
const char *initrd_filename = machine->initrd_filename;
MachineClass *mc = MACHINE_GET_CLASS(machine);
unsigned int pci_irq_nrs[4] = { 28, 27, 26, 25 };
MemoryRegion *address_space_mem = get_system_memory();
MemoryRegion *isa = g_new(MemoryRegion, 1);
Expand Down Expand Up @@ -246,7 +247,7 @@ static void bamboo_init(MachineState *machine)
* There are no PCI NICs on the Bamboo board, but there are
* PCI slots, so we can pick whatever default model we want.
*/
pci_nic_init_nofail(&nd_table[i], pcibus, "e1000", NULL);
pci_nic_init_nofail(&nd_table[i], pcibus, mc->default_nic, NULL);
}
}

Expand Down Expand Up @@ -296,6 +297,7 @@ static void bamboo_machine_init(MachineClass *mc)
mc->init = bamboo_init;
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("440epb");
mc->default_ram_id = "ppc4xx.sdram";
mc->default_nic = "e1000";
}

DEFINE_MACHINE("bamboo", bamboo_machine_init)
4 changes: 3 additions & 1 deletion hw/ppc/prep.c
Expand Up @@ -229,6 +229,7 @@ static int prep_set_cmos_checksum(DeviceState *dev, void *opaque)
static void ibm_40p_init(MachineState *machine)
{
const char *bios_name = machine->firmware ?: "openbios-ppc";
MachineClass *mc = MACHINE_GET_CLASS(machine);
CPUPPCState *env = NULL;
uint16_t cmos_checksum;
PowerPCCPU *cpu;
Expand Down Expand Up @@ -323,7 +324,7 @@ static void ibm_40p_init(MachineState *machine)
pci_vga_init(pci_bus);

for (i = 0; i < nb_nics; i++) {
pci_nic_init_nofail(&nd_table[i], pci_bus, "pcnet",
pci_nic_init_nofail(&nd_table[i], pci_bus, mc->default_nic,
i == 0 ? "3" : NULL);
}
}
Expand Down Expand Up @@ -427,6 +428,7 @@ static void ibm_40p_machine_init(MachineClass *mc)
mc->default_boot_order = "c";
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("604");
mc->default_display = "std";
mc->default_nic = "pcnet";
}

DEFINE_MACHINE("40p", ibm_40p_machine_init)

0 comments on commit 053b708

Please sign in to comment.