Back to Eliza

Interrupt map

packages/chip/docs/arch/interrupts.md

2.0.11.4 KB
Original Source

Interrupt map

The e1 chip exposes level-style interrupt outputs. The CPU/interconnect scaffold adds a small PLIC-style interrupt controller contract at 0x0C00_0000.

SignalSourceMeaning
irq_timerPeripheral blockTimer count reached compare
irq_dmaDMA blockDMA command finished
irq_npuNPU blockNPU command finished
irq_vsyncDisplay blockDisplay vsync pulse/level placeholder

Interrupt controller source IDs

Source ID 0 is reserved, matching PLIC-style claim semantics. Current source IDs are:

Source IDSourceNotes
1TimerFuture machine/supervisor timer gateway
2DMADMA completion
3NPUNPU command completion
4DisplayVsync or display event

The current e1_interrupt_controller latches asserted source bits into PENDING, gates CPU external interrupt with ENABLE, returns the lowest enabled pending source ID on claim, and clears a pending source when software writes that source ID to complete. If the physical source remains asserted, it may re-pend after completion.

The controller target accepts independently arriving AXI-Lite write address and write data channels, then updates registers only after both halves of a write have been captured.

The full-chip interrupt map must preserve stable source IDs as PLIC/IMSIC integration is added.