Commit b891538e authored by Thomas Huth's avatar Thomas Huth Committed by David Gibson
Browse files

hw/ppc/prep: Fix implicit creation of "-drive if=scsi" devices



The global hack for creating SCSI devices has recently been removed,
but this apparently broke SCSI devices on some boards that were not
ready for this change yet. For the 40p machine you now get:

$ ppc64-softmmu/qemu-system-ppc64 -M 40p -cdrom x.iso
qemu-system-ppc64: -cdrom x.iso: machine type does not support if=scsi,bus=0,unit=2

Fix it by providing a lsi53c810_create() function that takes care
of calling scsi_bus_legacy_handle_cmdline() after creating the
corresponding SCSI controller.

Fixes: 14545097
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent d7d15a6e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -787,7 +787,7 @@ static void ibm_40p_init(MachineState *machine)
        qdev_prop_set_uint32(dev, "equipment", 0xc0);
        qdev_init_nofail(dev);

        pci_create_simple(pci_bus, PCI_DEVFN(1, 0), "lsi53c810");
        lsi53c810_create(pci_bus, PCI_DEVFN(1, 0));

        /* XXX: s3-trio at PCI_DEVFN(2, 0) */
        pci_vga_init(pci_bus);
+7 −0
Original line number Diff line number Diff line
@@ -2279,3 +2279,10 @@ void lsi53c895a_create(PCIBus *bus)

    scsi_bus_legacy_handle_cmdline(&s->bus);
}

void lsi53c810_create(PCIBus *bus, int devfn)
{
    LSIState *s = LSI53C895A(pci_create_simple(bus, devfn, "lsi53c810"));

    scsi_bus_legacy_handle_cmdline(&s->bus);
}
+1 −0
Original line number Diff line number Diff line
@@ -708,6 +708,7 @@ PCIDevice *pci_create(PCIBus *bus, int devfn, const char *name);
PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name);

void lsi53c895a_create(PCIBus *bus);
void lsi53c810_create(PCIBus *bus, int devfn);

qemu_irq pci_allocate_irq(PCIDevice *pci_dev);
void pci_set_irq(PCIDevice *pci_dev, int level);