1 // See LICENSE for license details.
2 
3 #ifndef PLIC_H
4 #define PLIC_H
5 
6 #include <sifive/const.h>
7 
8 // 32 bits per source
9 #define PLIC_PRIORITY_OFFSET            _AC(0x0000,UL)
10 #define PLIC_PRIORITY_SHIFT_PER_SOURCE  2
11 // 1 bit per source (1 address)
12 #define PLIC_PENDING_OFFSET             _AC(0x1000,UL)
13 #define PLIC_PENDING_SHIFT_PER_SOURCE   0
14 
15 //0x80 per target
16 #define PLIC_ENABLE_OFFSET              _AC(0x2000,UL)
17 #define PLIC_ENABLE_SHIFT_PER_TARGET    7
18 
19 
20 #define PLIC_THRESHOLD_OFFSET           _AC(0x200000,UL)
21 #define PLIC_CLAIM_OFFSET               _AC(0x200004,UL)
22 #define PLIC_THRESHOLD_SHIFT_PER_TARGET 12
23 #define PLIC_CLAIM_SHIFT_PER_TARGET     12
24 
25 #define PLIC_MAX_SOURCE                 1023
26 #define PLIC_SOURCE_MASK                0x3FF
27 
28 #define PLIC_MAX_TARGET                 15871
29 #define PLIC_TARGET_MASK                0x3FFF
30 
31 #endif /* PLIC_H */
32