6.1. Interrupt Enables
Each global interrupt can be enabled by setting the corresponding bit in the
enables register. The enables registers are accessed as a contiguous array
of 32-bit registers, packed the same way as the pending bits. Bit 0 of enable
register 0 represents the non-existent interrupt ID 0 and is hardwired to 0.
PLIC has 15872 Interrupt Enable blocks for the contexts.
How PLIC organizes interrupts for the contexts (Hart and privilege mode)
is out of RISC-V PLIC specification scope, however it must be spec-out in vendor’s
PLIC specification.
(A large number of potential IE bits might be hardwired to zero in cases where
some interrupt sources can only be routed to a subset of targets. A larger number
of bits might be wired to 1 for an embedded device with fixed interrupt routing.
Interrupt priorities, thresholds, and hart-internal interrupt masking provide
considerable flexibility in ignoring external interrupts even if a global interrupt
source is always enabled.)
The base address of Interrupt Enable Bits block within PLIC Memory Map region is
fixed at 0x002000.
PLIC Register Block Name |
Function |
Register Block Size in Byte |
Description |
Interrupt Enable Bits |
Interrupt Enable Bit of Interrupt Source #0 to #1023 for 15872 contexts |
(1024 / 8) * 15872 = 2031616(0x1f0000) bytes |
This is a continuously memory block contains PLIC Interrupt Enable Bits of 15872 contexts. Each Interrupt Enable Bit occupies 1-bit from this register block and total 15872 Interrupt Enable Bit blocks |
PLIC Interrupt Enable Bits Memory Map
0x002000: Interrupt Source #0 to #31 Enable Bits on context 0 ... 0x00207C: Interrupt Source #992 to #1023 Enable Bits on context 0 0x002080: Interrupt Source #0 to #31 Enable Bits on context 1 ... 0x0020FC: Interrupt Source #992 to #1023 Enable Bits on context 1 0x002100: Interrupt Source #0 to #31 Enable Bits on context 2 ... 0x00217C: Interrupt Source #992 to #1023 Enable Bits on context 2 0x002180: Interrupt Source #0 to #31 Enable Bits on context 3 ... 0x0021FC: Interrupt Source #992 to #1023 Enable Bits on context 3 ... ... ... 0x1F1F80: Interrupt Source #0 to #31 on context 15871 ... 0x1F1FFC: Interrupt Source #992 to #1023 on context 15871