Interrupt Completion
The PLIC signals it has completed executing an interrupt handler by writing the
interrupt ID it received from the claim to the claim/complete register. The
PLIC does not check whether the completion ID is the same as the last claim ID
for that target. If the completion ID does not match an interrupt source that
is currently enabled for the target, the completion is silently ignored.
After a handler has completed service of an interrupt, the associated gateway
must be sent an interrupt completion message, usually as a write to a
non-idempotent memory-mapped I/O control register. The gateway will only forward
additional interrupts to the PLIC core after receiving the completion message.
The Interrupt Completion registers are context based and located at the same address
with Interrupt Claim Process register, which is at (4K alignment + 4) starts from
offset 0x200000.
PLIC Register Block Name |
Registers |
Register Block Size in Byte |
Description |
Interrupt Completion Register |
Interrupt Completion for 15872 contexts |
4096 * 15872 = 65011712(0x3e00000) bytes |
This is register to write to complete Interrupt process |
PLIC Interrupt Completion Memory Map
0x200004: Interrupt Completion for context 0 0x201004: Interrupt Completion for context 1 0x202004: Interrupt Completion for context 2 0x203004: Interrupt Completion for context 3 ... ... ... 0x3FFF004: Interrupt Completion for context 15871