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