Lines Matching refs:gic
36 gic_state gic;
88 IRQ is #16. The internal GIC routines use #32 as the first IRQ. */
94 gic_set_pending_private(&s->gic, 0, irq);
103 irq = gic_acknowledge_irq(&s->gic, 0);
116 gic_complete_irq(&s->gic, 0, irq);
156 val = s->gic.running_irq[0];
163 if (s->gic.running_irq[0] == 1023
164 || s->gic.last_active[s->gic.running_irq[0]][0] == 1023) {
168 if (s->gic.current_pending[0] != 1023)
169 val |= (s->gic.current_pending[0] << 12);
172 if (s->gic.irq_state[irq].pending) {
178 if (s->gic.irq_state[ARMV7M_EXCP_SYSTICK].pending)
181 if (s->gic.irq_state[ARMV7M_EXCP_PENDSV].pending)
184 if (s->gic.irq_state[ARMV7M_EXCP_NMI].pending)
200 val = s->gic.priority1[irq++][0];
201 val = s->gic.priority1[irq++][0] << 8;
202 val = s->gic.priority1[irq++][0] << 16;
203 val = s->gic.priority1[irq][0] << 24;
207 if (s->gic.irq_state[ARMV7M_EXCP_MEM].active) val |= (1 << 0);
208 if (s->gic.irq_state[ARMV7M_EXCP_BUS].active) val |= (1 << 1);
209 if (s->gic.irq_state[ARMV7M_EXCP_USAGE].active) val |= (1 << 3);
210 if (s->gic.irq_state[ARMV7M_EXCP_SVC].active) val |= (1 << 7);
211 if (s->gic.irq_state[ARMV7M_EXCP_DEBUG].active) val |= (1 << 8);
212 if (s->gic.irq_state[ARMV7M_EXCP_PENDSV].active) val |= (1 << 10);
213 if (s->gic.irq_state[ARMV7M_EXCP_SYSTICK].active) val |= (1 << 11);
214 if (s->gic.irq_state[ARMV7M_EXCP_USAGE].pending) val |= (1 << 12);
215 if (s->gic.irq_state[ARMV7M_EXCP_MEM].pending) val |= (1 << 13);
216 if (s->gic.irq_state[ARMV7M_EXCP_BUS].pending) val |= (1 << 14);
217 if (s->gic.irq_state[ARMV7M_EXCP_SVC].pending) val |= (1 << 15);
218 if (s->gic.irq_state[ARMV7M_EXCP_MEM].enabled) val |= (1 << 16);
219 if (s->gic.irq_state[ARMV7M_EXCP_BUS].enabled) val |= (1 << 17);
220 if (s->gic.irq_state[ARMV7M_EXCP_USAGE].enabled) val |= (1 << 18);
310 s->gic.irq_state[ARMV7M_EXCP_PENDSV].pending = 0;
311 gic_update(&s->gic);
316 s->gic.irq_state[ARMV7M_EXCP_SYSTICK].pending = 0;
317 gic_update(&s->gic);
341 s->gic.priority1[irq++][0] = value & 0xff;
342 s->gic.priority1[irq++][0] = (value >> 8) & 0xff;
343 s->gic.priority1[irq++][0] = (value >> 16) & 0xff;
344 s->gic.priority1[irq][0] = (value >> 24) & 0xff;
345 gic_update(&s->gic);
351 s->gic.irq_state[ARMV7M_EXCP_MEM].enabled = (value & (1 << 16)) != 0;
352 s->gic.irq_state[ARMV7M_EXCP_BUS].enabled = (value & (1 << 17)) != 0;
353 s->gic.irq_state[ARMV7M_EXCP_USAGE].enabled = (value & (1 << 18)) != 0;
397 gic_init(&s->gic);
398 cpu_register_physical_memory(0xe000e000, 0x1000, s->gic.iomemtype);