hw/intc/arm_gicv3: Add external IRQ lines for VIRQ and VFIQ

Augment the GICv3's QOM device interface by adding two
new sets of sysbus IRQ lines, to signal VIRQ and VFIQ to
each CPU.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Message-id: 1483977924-14522-2-git-send-email-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2017-01-20 11:15:08 +00:00
parent ebfcc03bf7
commit b53db42bc0
2 changed files with 8 additions and 0 deletions

View File

@ -126,6 +126,12 @@ void gicv3_init_irqs_and_mmio(GICv3State *s, qemu_irq_handler handler,
for (i = 0; i < s->num_cpu; i++) { for (i = 0; i < s->num_cpu; i++) {
sysbus_init_irq(sbd, &s->cpu[i].parent_fiq); sysbus_init_irq(sbd, &s->cpu[i].parent_fiq);
} }
for (i = 0; i < s->num_cpu; i++) {
sysbus_init_irq(sbd, &s->cpu[i].parent_virq);
}
for (i = 0; i < s->num_cpu; i++) {
sysbus_init_irq(sbd, &s->cpu[i].parent_vfiq);
}
memory_region_init_io(&s->iomem_dist, OBJECT(s), ops, s, memory_region_init_io(&s->iomem_dist, OBJECT(s), ops, s,
"gicv3_dist", 0x10000); "gicv3_dist", 0x10000);

View File

@ -145,6 +145,8 @@ struct GICv3CPUState {
CPUState *cpu; CPUState *cpu;
qemu_irq parent_irq; qemu_irq parent_irq;
qemu_irq parent_fiq; qemu_irq parent_fiq;
qemu_irq parent_virq;
qemu_irq parent_vfiq;
/* Redistributor */ /* Redistributor */
uint32_t level; /* Current IRQ level */ uint32_t level; /* Current IRQ level */