![]() |
NMSIS-Core
Version 1.4.0
NMSIS-Core support for Nuclei processor-based devices
|
Type definitions and defines for plic registers. More...
Macros | |
#define | PLIC_PRIORITY_OFFSET _AC(0x0000,UL) |
PLIC Priority register offset. More... | |
#define | PLIC_PRIORITY_SHIFT_PER_SOURCE 2 |
PLIC Priority register offset shift per source. More... | |
#define | PLIC_PENDING_OFFSET _AC(0x1000,UL) |
PLIC Pending register offset. More... | |
#define | PLIC_PENDING_SHIFT_PER_SOURCE 0 |
PLIC Pending register offset shift per source. More... | |
#define | PLIC_ENABLE_OFFSET _AC(0x2000,UL) |
PLIC Enable register offset. More... | |
#define | PLIC_ENABLE_SHIFT_PER_CONTEXT 7 |
PLIC Enable register offset shift per context. More... | |
#define | PLIC_THRESHOLD_OFFSET _AC(0x200000,UL) |
PLIC Threshold register offset. More... | |
#define | PLIC_CLAIM_OFFSET _AC(0x200004,UL) |
PLIC Claim register offset. More... | |
#define | PLIC_THRESHOLD_SHIFT_PER_CONTEXT 12 |
PLIC Threshold register offset shift per context. More... | |
#define | PLIC_CLAIM_SHIFT_PER_CONTEXT 12 |
PLIC Claim register offset shift per context. More... | |
#define | PLIC_BASE __PLIC_BASEADDR |
PLIC Base Address. More... | |
#define | PLIC_GetHartID() (__get_hart_index()) |
PLIC_GetHartID() is used to get plic hartid which might not be the same as cpu hart id, for example, cpu hartid may be 1, but plic hartid may be 0, then plic hartid offset is 1. More... | |
#define | PLIC_GetHartID_S() (__get_hart_index_s()) |
#define | PLIC_GetHartMContextID() (PLIC_GetHartID() << 1) |
#define | PLIC_GetHartSContextID() ((PLIC_GetHartID_S() << 1) + 1) |
#define | PLIC_PRIORITY_REGADDR(source) ((PLIC_BASE) + (PLIC_PRIORITY_OFFSET) + ((source) << PLIC_PRIORITY_SHIFT_PER_SOURCE)) |
#define | PLIC_PENDING_REGADDR(source) ((PLIC_BASE) + (PLIC_PENDING_OFFSET) + (((source) >> 5) * 4)) |
#define | PLIC_ENABLE_REGADDR(ctxid, source) ((PLIC_BASE) + (PLIC_ENABLE_OFFSET) + ((ctxid) << PLIC_ENABLE_SHIFT_PER_CONTEXT) + ((source) >> 5) * 4) |
#define | PLIC_THRESHOLD_REGADDR(ctxid) ((PLIC_BASE) + (PLIC_THRESHOLD_OFFSET) + ((ctxid) << PLIC_THRESHOLD_SHIFT_PER_CONTEXT)) |
#define | PLIC_CLAIM_REGADDR(ctxid) ((PLIC_BASE) + (PLIC_CLAIM_OFFSET) + ((ctxid) << PLIC_CLAIM_SHIFT_PER_CONTEXT)) |
#define | PLIC_COMPLETE_REGADDR(ctxid) (PLIC_CLAIM_REGADDR(ctxid)) |
Type definitions and defines for plic registers.
#define PLIC_BASE __PLIC_BASEADDR |
PLIC Base Address.
Definition at line 70 of file core_feature_plic.h.
#define PLIC_CLAIM_OFFSET _AC(0x200004,UL) |
PLIC Claim register offset.
Definition at line 60 of file core_feature_plic.h.
#define PLIC_CLAIM_REGADDR | ( | ctxid | ) | ((PLIC_BASE) + (PLIC_CLAIM_OFFSET) + ((ctxid) << PLIC_CLAIM_SHIFT_PER_CONTEXT)) |
Definition at line 95 of file core_feature_plic.h.
#define PLIC_CLAIM_SHIFT_PER_CONTEXT 12 |
PLIC Claim register offset shift per context.
Definition at line 62 of file core_feature_plic.h.
#define PLIC_COMPLETE_REGADDR | ( | ctxid | ) | (PLIC_CLAIM_REGADDR(ctxid)) |
Definition at line 96 of file core_feature_plic.h.
#define PLIC_ENABLE_OFFSET _AC(0x2000,UL) |
PLIC Enable register offset.
Definition at line 56 of file core_feature_plic.h.
#define PLIC_ENABLE_REGADDR | ( | ctxid, | |
source | |||
) | ((PLIC_BASE) + (PLIC_ENABLE_OFFSET) + ((ctxid) << PLIC_ENABLE_SHIFT_PER_CONTEXT) + ((source) >> 5) * 4) |
Definition at line 93 of file core_feature_plic.h.
#define PLIC_ENABLE_SHIFT_PER_CONTEXT 7 |
PLIC Enable register offset shift per context.
Definition at line 57 of file core_feature_plic.h.
#define PLIC_GetHartID | ( | ) | (__get_hart_index()) |
PLIC_GetHartID() is used to get plic hartid which might not be the same as cpu hart id, for example, cpu hartid may be 1, but plic hartid may be 0, then plic hartid offset is 1.
If defined __PLIC_HARTID, it will use __PLIC_HARTID as plic hartid, otherwise, it will use __get_hart_index(). The cpu hartid is get by using __get_hart_id function
Definition at line 80 of file core_feature_plic.h.
#define PLIC_GetHartID_S | ( | ) | (__get_hart_index_s()) |
Definition at line 81 of file core_feature_plic.h.
#define PLIC_GetHartMContextID | ( | ) | (PLIC_GetHartID() << 1) |
Definition at line 87 of file core_feature_plic.h.
#define PLIC_GetHartSContextID | ( | ) | ((PLIC_GetHartID_S() << 1) + 1) |
Definition at line 89 of file core_feature_plic.h.
#define PLIC_PENDING_OFFSET _AC(0x1000,UL) |
PLIC Pending register offset.
Definition at line 52 of file core_feature_plic.h.
#define PLIC_PENDING_REGADDR | ( | source | ) | ((PLIC_BASE) + (PLIC_PENDING_OFFSET) + (((source) >> 5) * 4)) |
Definition at line 92 of file core_feature_plic.h.
#define PLIC_PENDING_SHIFT_PER_SOURCE 0 |
PLIC Pending register offset shift per source.
Definition at line 53 of file core_feature_plic.h.
#define PLIC_PRIORITY_OFFSET _AC(0x0000,UL) |
PLIC Priority register offset.
Definition at line 49 of file core_feature_plic.h.
#define PLIC_PRIORITY_REGADDR | ( | source | ) | ((PLIC_BASE) + (PLIC_PRIORITY_OFFSET) + ((source) << PLIC_PRIORITY_SHIFT_PER_SOURCE)) |
Definition at line 91 of file core_feature_plic.h.
#define PLIC_PRIORITY_SHIFT_PER_SOURCE 2 |
PLIC Priority register offset shift per source.
Definition at line 50 of file core_feature_plic.h.
#define PLIC_THRESHOLD_OFFSET _AC(0x200000,UL) |
PLIC Threshold register offset.
Definition at line 59 of file core_feature_plic.h.
#define PLIC_THRESHOLD_REGADDR | ( | ctxid | ) | ((PLIC_BASE) + (PLIC_THRESHOLD_OFFSET) + ((ctxid) << PLIC_THRESHOLD_SHIFT_PER_CONTEXT)) |
Definition at line 94 of file core_feature_plic.h.
#define PLIC_THRESHOLD_SHIFT_PER_CONTEXT 12 |
PLIC Threshold register offset shift per context.
Definition at line 61 of file core_feature_plic.h.