hw/hppa: PCI devices depend on availability of PCI bus

Only create the PCI serial ports (DIVA) and PCI network cards when there is
actually a PCI bus. The shortly added 715 machine will not have a PCI bus, so
avoid creating further PCI devices.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Helge Deller
2025-10-25 11:22:45 +02:00
parent 70cb0f51ca
commit 557bc5260c

View File

@@ -387,20 +387,22 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus,
enable_lasi_lan());
}
pci_init_nic_devices(pci_bus, mc->default_nic);
if (pci_bus) {
pci_init_nic_devices(pci_bus, mc->default_nic);
/* BMC board: HP Diva GSP */
dev = qdev_new("diva-gsp");
if (!object_property_get_bool(OBJECT(dev), "disable", NULL)) {
pci_dev = pci_new_multifunction(PCI_DEVFN(2, 0), "diva-gsp");
if (!lasi_dev) {
/* bind default keyboard/serial to Diva card */
qdev_prop_set_chr(DEVICE(pci_dev), "chardev1", serial_hd(0));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev2", serial_hd(1));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev3", serial_hd(2));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev4", serial_hd(3));
/* BMC board: HP Diva GSP PCI card */
dev = qdev_new("diva-gsp");
if (dev && !object_property_get_bool(OBJECT(dev), "disable", NULL)) {
pci_dev = pci_new_multifunction(PCI_DEVFN(2, 0), "diva-gsp");
if (!lasi_dev) {
/* bind default keyboard/serial to Diva card */
qdev_prop_set_chr(DEVICE(pci_dev), "chardev1", serial_hd(0));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev2", serial_hd(1));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev3", serial_hd(2));
qdev_prop_set_chr(DEVICE(pci_dev), "chardev4", serial_hd(3));
}
pci_realize_and_unref(pci_dev, pci_bus, &error_fatal);
}
pci_realize_and_unref(pci_dev, pci_bus, &error_fatal);
}
/* create USB OHCI controller for USB keyboard & mouse on Astro machines */