hw/arm/bcm2836: Wire up CPU timer interrupts correctly
Wire up the CPU timer interrupts in the right order, with the nonsecure physical timer on cntpnsirq, the hyp timer on cnthpirq, and the secure physical timer on cntpsirq. (We did get the virt timer right, at least.) Reported-by: Antonio Huete Jiménez <tuxillo@quantumachine.net> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Andrew Baumann <Andrew.Baumann@microsoft.com> Message-id: 1458210790-6621-1-git-send-email-peter.maydell@linaro.org
This commit is contained in:
parent
c40e13e106
commit
0dc1982312
@ -139,9 +139,13 @@ static void bcm2836_realize(DeviceState *dev, Error **errp)
|
||||
|
||||
/* Connect timers from the CPU to the interrupt controller */
|
||||
qdev_connect_gpio_out(DEVICE(&s->cpus[n]), GTIMER_PHYS,
|
||||
qdev_get_gpio_in_named(DEVICE(&s->control), "cntpsirq", n));
|
||||
qdev_get_gpio_in_named(DEVICE(&s->control), "cntpnsirq", n));
|
||||
qdev_connect_gpio_out(DEVICE(&s->cpus[n]), GTIMER_VIRT,
|
||||
qdev_get_gpio_in_named(DEVICE(&s->control), "cntvirq", n));
|
||||
qdev_connect_gpio_out(DEVICE(&s->cpus[n]), GTIMER_HYP,
|
||||
qdev_get_gpio_in_named(DEVICE(&s->control), "cnthpirq", n));
|
||||
qdev_connect_gpio_out(DEVICE(&s->cpus[n]), GTIMER_SEC,
|
||||
qdev_get_gpio_in_named(DEVICE(&s->control), "cntpsirq", n));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user