mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
arm: gic: Remove references to NVIC
Now that the NVIC is its own separate implementation, we can clean up the GIC code by removing REV_NVIC and conditionals which use it. Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
7ecdaa4a96
commit
7c14b3ac07
3 changed files with 15 additions and 46 deletions
|
@ -156,17 +156,6 @@ static void gic_set_irq_11mpcore(GICState *s, int irq, int level,
|
|||
}
|
||||
}
|
||||
|
||||
static void gic_set_irq_nvic(GICState *s, int irq, int level,
|
||||
int cm, int target)
|
||||
{
|
||||
if (level) {
|
||||
GIC_SET_LEVEL(irq, cm);
|
||||
GIC_SET_PENDING(irq, target);
|
||||
} else {
|
||||
GIC_CLEAR_LEVEL(irq, cm);
|
||||
}
|
||||
}
|
||||
|
||||
static void gic_set_irq_generic(GICState *s, int irq, int level,
|
||||
int cm, int target)
|
||||
{
|
||||
|
@ -214,8 +203,6 @@ static void gic_set_irq(void *opaque, int irq, int level)
|
|||
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
gic_set_irq_11mpcore(s, irq, level, cm, target);
|
||||
} else if (s->revision == REV_NVIC) {
|
||||
gic_set_irq_nvic(s, irq, level, cm, target);
|
||||
} else {
|
||||
gic_set_irq_generic(s, irq, level, cm, target);
|
||||
}
|
||||
|
@ -367,7 +354,7 @@ uint32_t gic_acknowledge_irq(GICState *s, int cpu, MemTxAttrs attrs)
|
|||
return 1023;
|
||||
}
|
||||
|
||||
if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
/* Clear pending flags for both level and edge triggered interrupts.
|
||||
* Level triggered IRQs will be reasserted once they become inactive.
|
||||
*/
|
||||
|
@ -589,11 +576,6 @@ void gic_complete_irq(GICState *s, int cpu, int irq, MemTxAttrs attrs)
|
|||
DPRINTF("Set %d pending mask %x\n", irq, cm);
|
||||
GIC_SET_PENDING(irq, cm);
|
||||
}
|
||||
} else if (s->revision == REV_NVIC) {
|
||||
if (GIC_TEST_LEVEL(irq, cm)) {
|
||||
DPRINTF("Set nvic %d pending mask %x\n", irq, cm);
|
||||
GIC_SET_PENDING(irq, cm);
|
||||
}
|
||||
}
|
||||
|
||||
group = gic_has_groups(s) && GIC_TEST_GROUP(irq, cm);
|
||||
|
@ -768,7 +750,7 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
|
|||
} else if (offset < 0xf10) {
|
||||
goto bad_reg;
|
||||
} else if (offset < 0xf30) {
|
||||
if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
goto bad_reg;
|
||||
}
|
||||
|
||||
|
@ -802,9 +784,6 @@ static uint32_t gic_dist_readb(void *opaque, hwaddr offset, MemTxAttrs attrs)
|
|||
case 2:
|
||||
res = gic_id_gicv2[(offset - 0xfd0) >> 2];
|
||||
break;
|
||||
case REV_NVIC:
|
||||
/* Shouldn't be able to get here */
|
||||
abort();
|
||||
default:
|
||||
res = 0;
|
||||
}
|
||||
|
@ -1028,7 +1007,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
|
|||
continue; /* Ignore Non-secure access of Group0 IRQ */
|
||||
}
|
||||
|
||||
if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
if (value & (1 << (i * 2))) {
|
||||
GIC_SET_MODEL(irq + i);
|
||||
} else {
|
||||
|
@ -1046,7 +1025,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
|
|||
goto bad_reg;
|
||||
} else if (offset < 0xf20) {
|
||||
/* GICD_CPENDSGIRn */
|
||||
if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
goto bad_reg;
|
||||
}
|
||||
irq = (offset - 0xf10);
|
||||
|
@ -1060,7 +1039,7 @@ static void gic_dist_writeb(void *opaque, hwaddr offset,
|
|||
}
|
||||
} else if (offset < 0xf30) {
|
||||
/* GICD_SPENDSGIRn */
|
||||
if (s->revision == REV_11MPCORE || s->revision == REV_NVIC) {
|
||||
if (s->revision == REV_11MPCORE) {
|
||||
goto bad_reg;
|
||||
}
|
||||
irq = (offset - 0xf20);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue