mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
hw/intc/arm_gic: Make ICCICR/GICC_CTLR banked
ICCICR/GICC_CTLR is banked in GICv1 implementations with Security Extensions or in GICv2 in independent from Security Extensions. This makes it possible to enable forwarding of interrupts from the CPU interfaces to the connected processors for Group0 and Group1. We also allow to set additional bits like AckCtl and FIQEn by changing the type from bool to uint32. Since the field does not only store the enable bit anymore and since we are touching the vmstate, we use the opportunity to rename the field to cpu_ctlr. Signed-off-by: Fabian Aggeler <aggelerf@ethz.ch> Signed-off-by: Greg Bellows <greg.bellows@linaro.org> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1430502643-25909-9-git-send-email-peter.maydell@linaro.org Message-id: 1429113742-8371-9-git-send-email-greg.bellows@linaro.org [PMM: rewrote to store state in a single uint32_t rather than keeping the NS and S banked variants separate; this considerably simplifies the get/set functions] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
822e9cc310
commit
3295186083
6 changed files with 76 additions and 14 deletions
|
@ -59,7 +59,10 @@ typedef struct GICState {
|
|||
* of this register is just an alias of bit 1 of the S banked version.
|
||||
*/
|
||||
uint32_t ctlr;
|
||||
bool cpu_enabled[GIC_NCPU];
|
||||
/* GICC_CTLR; again, the NS banked version is just aliases of bits of
|
||||
* the S banked register, so our state only needs to store the S version.
|
||||
*/
|
||||
uint32_t cpu_ctlr[GIC_NCPU];
|
||||
|
||||
gic_irq_state irq_state[GIC_MAXIRQ];
|
||||
uint8_t irq_target[GIC_MAXIRQ];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue