mirror of https://gitee.com/openkylin/qemu.git
mac_oldworld: remove pics IRQ array and wire up macio to heathrow directly
Introduce constants for the pre-defined Old World IRQs to help keep things readable. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
a94e5f998b
commit
ab1244b53d
|
@ -47,6 +47,14 @@
|
||||||
|
|
||||||
#define ESCC_CLOCK 3686400
|
#define ESCC_CLOCK 3686400
|
||||||
|
|
||||||
|
/* Old World IRQs */
|
||||||
|
#define OLDWORLD_CUDA_IRQ 0x12
|
||||||
|
#define OLDWORLD_ESCCB_IRQ 0x10
|
||||||
|
#define OLDWORLD_ESCCA_IRQ 0xf
|
||||||
|
#define OLDWORLD_IDE0_IRQ 0xd
|
||||||
|
#define OLDWORLD_IDE0_DMA_IRQ 0x2
|
||||||
|
#define OLDWORLD_IDE1_IRQ 0xe
|
||||||
|
#define OLDWORLD_IDE1_DMA_IRQ 0x3
|
||||||
|
|
||||||
/* MacIO */
|
/* MacIO */
|
||||||
#define TYPE_MACIO_IDE "macio-ide"
|
#define TYPE_MACIO_IDE "macio-ide"
|
||||||
|
|
|
@ -87,7 +87,6 @@ static void ppc_heathrow_init(MachineState *machine)
|
||||||
PowerPCCPU *cpu = NULL;
|
PowerPCCPU *cpu = NULL;
|
||||||
CPUPPCState *env = NULL;
|
CPUPPCState *env = NULL;
|
||||||
char *filename;
|
char *filename;
|
||||||
qemu_irq *pic;
|
|
||||||
int linux_boot, i;
|
int linux_boot, i;
|
||||||
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
MemoryRegion *ram = g_new(MemoryRegion, 1);
|
||||||
MemoryRegion *bios = g_new(MemoryRegion, 1);
|
MemoryRegion *bios = g_new(MemoryRegion, 1);
|
||||||
|
@ -241,11 +240,6 @@ static void ppc_heathrow_init(MachineState *machine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pic = g_new0(qemu_irq, HEATHROW_NUM_IRQS);
|
|
||||||
for (i = 0; i < HEATHROW_NUM_IRQS; i++) {
|
|
||||||
pic[i] = qdev_get_gpio_in(pic_dev, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Timebase Frequency */
|
/* Timebase Frequency */
|
||||||
if (kvm_enabled()) {
|
if (kvm_enabled()) {
|
||||||
tbfreq = kvmppc_get_tbfreq();
|
tbfreq = kvmppc_get_tbfreq();
|
||||||
|
@ -287,13 +281,20 @@ static void ppc_heathrow_init(MachineState *machine)
|
||||||
/* MacIO */
|
/* MacIO */
|
||||||
macio = OLDWORLD_MACIO(pci_create(pci_bus, -1, TYPE_OLDWORLD_MACIO));
|
macio = OLDWORLD_MACIO(pci_create(pci_bus, -1, TYPE_OLDWORLD_MACIO));
|
||||||
dev = DEVICE(macio);
|
dev = DEVICE(macio);
|
||||||
qdev_connect_gpio_out(dev, 0, pic[0x12]); /* CUDA */
|
qdev_connect_gpio_out(dev, 0,
|
||||||
qdev_connect_gpio_out(dev, 1, pic[0x10]); /* ESCC-B */
|
qdev_get_gpio_in(pic_dev, OLDWORLD_CUDA_IRQ));
|
||||||
qdev_connect_gpio_out(dev, 2, pic[0x0F]); /* ESCC-A */
|
qdev_connect_gpio_out(dev, 1,
|
||||||
qdev_connect_gpio_out(dev, 3, pic[0x0D]); /* IDE-0 */
|
qdev_get_gpio_in(pic_dev, OLDWORLD_ESCCB_IRQ));
|
||||||
qdev_connect_gpio_out(dev, 4, pic[0x02]); /* IDE-0 DMA */
|
qdev_connect_gpio_out(dev, 2,
|
||||||
qdev_connect_gpio_out(dev, 5, pic[0x0E]); /* IDE-1 */
|
qdev_get_gpio_in(pic_dev, OLDWORLD_ESCCA_IRQ));
|
||||||
qdev_connect_gpio_out(dev, 6, pic[0x03]); /* IDE-1 DMA */
|
qdev_connect_gpio_out(dev, 3,
|
||||||
|
qdev_get_gpio_in(pic_dev, OLDWORLD_IDE0_IRQ));
|
||||||
|
qdev_connect_gpio_out(dev, 4,
|
||||||
|
qdev_get_gpio_in(pic_dev, OLDWORLD_IDE0_DMA_IRQ));
|
||||||
|
qdev_connect_gpio_out(dev, 5,
|
||||||
|
qdev_get_gpio_in(pic_dev, OLDWORLD_IDE1_IRQ));
|
||||||
|
qdev_connect_gpio_out(dev, 6,
|
||||||
|
qdev_get_gpio_in(pic_dev, OLDWORLD_IDE1_DMA_IRQ));
|
||||||
qdev_prop_set_uint64(dev, "frequency", tbfreq);
|
qdev_prop_set_uint64(dev, "frequency", tbfreq);
|
||||||
object_property_set_link(OBJECT(macio), OBJECT(pic_dev), "pic",
|
object_property_set_link(OBJECT(macio), OBJECT(pic_dev), "pic",
|
||||||
&error_abort);
|
&error_abort);
|
||||||
|
|
Loading…
Reference in New Issue