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: 1454509726
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
d7d15a6e34
commit
b891538e81
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user