[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 5/5] 40p: add fixed IRQ routing for LSI SCSI device
From: |
Mark Cave-Ayland |
Subject: |
[Qemu-ppc] [PATCH 5/5] 40p: add fixed IRQ routing for LSI SCSI device |
Date: |
Wed, 19 Sep 2018 18:21:01 +0100 |
Whilst the PReP specification describes how all PCI IRQs are routed via IRQ
15 on the interrupt controller, the real 40p machine has a routing quirk in
that the LSI SCSI device is routed directly to IRQ 13.
Enable the external IRQ for the LSI SCSI device by wiring up the IRQ with
qdev to the relevant interrupt controller gpio.
Signed-off-by: Mark Cave-Ayland <address@hidden>
Acked-by: David Gibson <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
Tested-by: Hervé Poussineau <address@hidden>
---
hw/ppc/prep.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 7e2c70b92a..2afb7f437e 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -621,7 +621,7 @@ static void ibm_40p_init(MachineState *machine)
CPUPPCState *env = NULL;
uint16_t cmos_checksum;
PowerPCCPU *cpu;
- DeviceState *dev;
+ DeviceState *dev, *i82378_dev;
SysBusDevice *pcihost, *s;
Nvram *m48t59 = NULL;
PCIBus *pci_bus;
@@ -666,11 +666,11 @@ static void ibm_40p_init(MachineState *machine)
}
/* PCI -> ISA bridge */
- dev = DEVICE(pci_create_simple(pci_bus, PCI_DEVFN(11, 0), "i82378"));
- qdev_connect_gpio_out(dev, 0,
+ i82378_dev = DEVICE(pci_create_simple(pci_bus, PCI_DEVFN(11, 0),
"i82378"));
+ qdev_connect_gpio_out(i82378_dev, 0,
cpu->env.irq_inputs[PPC6xx_INPUT_INT]);
- sysbus_connect_irq(pcihost, 0, qdev_get_gpio_in(dev, 15));
- isa_bus = ISA_BUS(qdev_get_child_bus(dev, "isa.0"));
+ sysbus_connect_irq(pcihost, 0, qdev_get_gpio_in(i82378_dev, 15));
+ isa_bus = ISA_BUS(qdev_get_child_bus(i82378_dev, "isa.0"));
/* Memory controller */
dev = DEVICE(isa_create(isa_bus, "rs6000-mc"));
@@ -703,6 +703,7 @@ static void ibm_40p_init(MachineState *machine)
dev = DEVICE(pci_create_simple(pci_bus, PCI_DEVFN(1, 0),
"lsi53c810"));
lsi53c8xx_handle_legacy_cmdline(dev);
+ qdev_connect_gpio_out(dev, 0, qdev_get_gpio_in(i82378_dev, 13));
/* XXX: s3-trio at PCI_DEVFN(2, 0) */
pci_vga_init(pci_bus);
--
2.11.0
- [Qemu-ppc] [PATCH 0/5] 40p: LSI SCSI IRQ routing patch roll-up, Mark Cave-Ayland, 2018/09/19
- [Qemu-ppc] [PATCH 1/5] scsi: add lsi53c8xx_handle_legacy_cmdline() function, Mark Cave-Ayland, 2018/09/19
- [Qemu-ppc] [PATCH 3/5] scsi: remove unused lsi53c895a_create() and lsi53c810_create() functions, Mark Cave-Ayland, 2018/09/19
- [Qemu-ppc] [PATCH 4/5] lsi53c895a: add optional external IRQ via qdev, Mark Cave-Ayland, 2018/09/19
- [Qemu-ppc] [PATCH 2/5] scsi: move lsi53c8xx_create() callers to lsi53c8xx_handle_legacy_cmdline(), Mark Cave-Ayland, 2018/09/19
- [Qemu-ppc] [PATCH 5/5] 40p: add fixed IRQ routing for LSI SCSI device,
Mark Cave-Ayland <=
- Re: [Qemu-ppc] [PATCH 0/5] 40p: LSI SCSI IRQ routing patch roll-up, David Gibson, 2018/09/19