📄 core.h
字号:
/* Way sets that are "min-wired" (see terminology comment above): */#define XCHAL_ITLB_MINWIRED_SETS 0 /* number of "min-wired" sets *//* ITLB way set 0 (group of ways 0 thru 3): */#define XCHAL_ITLB_SET0_WAY 0 /* index of first way in this way set */#define XCHAL_ITLB_SET0_WAYS 4 /* number of (contiguous) ways in this way set */#define XCHAL_ITLB_SET0_ENTRIES_LOG2 2 /* log2(number of entries in this way) */#define XCHAL_ITLB_SET0_ENTRIES 4 /* number of entries in this way (always a power of 2) */#define XCHAL_ITLB_SET0_ARF 1 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_ITLB_SET0_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_ITLB_SET0_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_ITLB_SET0_PAGESZ_LOG2_MIN 12 /* log2(minimum supported page size) */#define XCHAL_ITLB_SET0_PAGESZ_LOG2_MAX 12 /* log2(maximum supported page size) */#define XCHAL_ITLB_SET0_PAGESZ_LOG2_LIST 12 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_ITLB_SET0_ASID_CONSTMASK 0 /* constant ASID bits; 0 if all writable */#define XCHAL_ITLB_SET0_VPN_CONSTMASK 0 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET0_PPN_CONSTMASK 0 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET0_CA_CONSTMASK 0 /* constant CA bits; 0 if all writable */#define XCHAL_ITLB_SET0_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET0_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET0_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET0_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* ITLB way set 1 (group of ways 4 thru 4): */#define XCHAL_ITLB_SET1_WAY 4 /* index of first way in this way set */#define XCHAL_ITLB_SET1_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_ITLB_SET1_ENTRIES_LOG2 2 /* log2(number of entries in this way) */#define XCHAL_ITLB_SET1_ENTRIES 4 /* number of entries in this way (always a power of 2) */#define XCHAL_ITLB_SET1_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_ITLB_SET1_PAGESIZES 4 /* number of supported page sizes in this way */#define XCHAL_ITLB_SET1_PAGESZ_BITS 2 /* number of bits to encode the page size */#define XCHAL_ITLB_SET1_PAGESZ_LOG2_MIN 20 /* log2(minimum supported page size) */#define XCHAL_ITLB_SET1_PAGESZ_LOG2_MAX 26 /* log2(maximum supported page size) */#define XCHAL_ITLB_SET1_PAGESZ_LOG2_LIST 20 XCHAL_SEP 22 XCHAL_SEP 24 XCHAL_SEP 26 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_ITLB_SET1_ASID_CONSTMASK 0 /* constant ASID bits; 0 if all writable */#define XCHAL_ITLB_SET1_VPN_CONSTMASK 0 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET1_PPN_CONSTMASK 0 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET1_CA_CONSTMASK 0 /* constant CA bits; 0 if all writable */#define XCHAL_ITLB_SET1_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET1_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET1_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET1_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* ITLB way set 2 (group of ways 5 thru 5): */#define XCHAL_ITLB_SET2_WAY 5 /* index of first way in this way set */#define XCHAL_ITLB_SET2_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_ITLB_SET2_ENTRIES_LOG2 1 /* log2(number of entries in this way) */#define XCHAL_ITLB_SET2_ENTRIES 2 /* number of entries in this way (always a power of 2) */#define XCHAL_ITLB_SET2_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_ITLB_SET2_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_ITLB_SET2_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_ITLB_SET2_PAGESZ_LOG2_MIN 27 /* log2(minimum supported page size) */#define XCHAL_ITLB_SET2_PAGESZ_LOG2_MAX 27 /* log2(maximum supported page size) */#define XCHAL_ITLB_SET2_PAGESZ_LOG2_LIST 27 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_ITLB_SET2_ASID_CONSTMASK 0xFF /* constant ASID bits; 0 if all writable */#define XCHAL_ITLB_SET2_VPN_CONSTMASK 0xF0000000 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET2_PPN_CONSTMASK 0xF8000000 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET2_CA_CONSTMASK 0x0000000F /* constant CA bits; 0 if all writable */#define XCHAL_ITLB_SET2_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET2_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET2_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET2_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* Constant ASID values for each entry of ITLB way set 2 (because ASID_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET2_E0_ASID_CONST 0x01#define XCHAL_ITLB_SET2_E1_ASID_CONST 0x01/* Constant VPN values for each entry of ITLB way set 2 (because VPN_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET2_E0_VPN_CONST 0xD0000000#define XCHAL_ITLB_SET2_E1_VPN_CONST 0xD8000000/* Constant PPN values for each entry of ITLB way set 2 (because PPN_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET2_E0_PPN_CONST 0x00000000#define XCHAL_ITLB_SET2_E1_PPN_CONST 0x00000000/* Constant CA values for each entry of ITLB way set 2 (because CA_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET2_E0_CA_CONST 0x07#define XCHAL_ITLB_SET2_E1_CA_CONST 0x03/* ITLB way set 3 (group of ways 6 thru 6): */#define XCHAL_ITLB_SET3_WAY 6 /* index of first way in this way set */#define XCHAL_ITLB_SET3_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_ITLB_SET3_ENTRIES_LOG2 1 /* log2(number of entries in this way) */#define XCHAL_ITLB_SET3_ENTRIES 2 /* number of entries in this way (always a power of 2) */#define XCHAL_ITLB_SET3_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_ITLB_SET3_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_ITLB_SET3_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_ITLB_SET3_PAGESZ_LOG2_MIN 28 /* log2(minimum supported page size) */#define XCHAL_ITLB_SET3_PAGESZ_LOG2_MAX 28 /* log2(maximum supported page size) */#define XCHAL_ITLB_SET3_PAGESZ_LOG2_LIST 28 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_ITLB_SET3_ASID_CONSTMASK 0xFF /* constant ASID bits; 0 if all writable */#define XCHAL_ITLB_SET3_VPN_CONSTMASK 0xE0000000 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET3_PPN_CONSTMASK 0xF0000000 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_ITLB_SET3_CA_CONSTMASK 0x0000000F /* constant CA bits; 0 if all writable */#define XCHAL_ITLB_SET3_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET3_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET3_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_ITLB_SET3_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* Constant ASID values for each entry of ITLB way set 3 (because ASID_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET3_E0_ASID_CONST 0x01#define XCHAL_ITLB_SET3_E1_ASID_CONST 0x01/* Constant VPN values for each entry of ITLB way set 3 (because VPN_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET3_E0_VPN_CONST 0xE0000000#define XCHAL_ITLB_SET3_E1_VPN_CONST 0xF0000000/* Constant PPN values for each entry of ITLB way set 3 (because PPN_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET3_E0_PPN_CONST 0xF0000000#define XCHAL_ITLB_SET3_E1_PPN_CONST 0xF0000000/* Constant CA values for each entry of ITLB way set 3 (because CA_CONSTMASK is non-zero): */#define XCHAL_ITLB_SET3_E0_CA_CONST 0x07#define XCHAL_ITLB_SET3_E1_CA_CONST 0x03/* Indexing macros: */#define _XCHAL_ITLB_SET(n,_what) XCHAL_ITLB_SET ## n ## _what#define XCHAL_ITLB_SET(n,what) _XCHAL_ITLB_SET(n, _ ## what )#define _XCHAL_ITLB_SET_E(n,i,_what) XCHAL_ITLB_SET ## n ## _E ## i ## _what#define XCHAL_ITLB_SET_E(n,i,what) _XCHAL_ITLB_SET_E(n,i, _ ## what )/* * Example use: XCHAL_ITLB_SET(XCHAL_ITLB_ARF_SET0,ENTRIES) * to get the value of XCHAL_ITLB_SET<n>_ENTRIES where <n> is the first auto-refill set. *//*** Data TLB: ***/#define XCHAL_DTLB_WAY_BITS 4 /* number of bits holding the ways */#define XCHAL_DTLB_WAYS 10 /* number of ways (n-way set-associative TLB) */#define XCHAL_DTLB_ARF_WAYS 4 /* number of auto-refill ways */#define XCHAL_DTLB_SETS 5 /* number of sets (groups of ways with identical settings) *//* Way set to which each way belongs: */#define XCHAL_DTLB_WAY0_SET 0#define XCHAL_DTLB_WAY1_SET 0#define XCHAL_DTLB_WAY2_SET 0#define XCHAL_DTLB_WAY3_SET 0#define XCHAL_DTLB_WAY4_SET 1#define XCHAL_DTLB_WAY5_SET 2#define XCHAL_DTLB_WAY6_SET 3#define XCHAL_DTLB_WAY7_SET 4#define XCHAL_DTLB_WAY8_SET 4#define XCHAL_DTLB_WAY9_SET 4/* Ways sets that are used by hardware auto-refill (ARF): */#define XCHAL_DTLB_ARF_SETS 1 /* number of auto-refill sets */#define XCHAL_DTLB_ARF_SET0 0 /* index of n'th auto-refill set *//* Way sets that are "min-wired" (see terminology comment above): */#define XCHAL_DTLB_MINWIRED_SETS 1 /* number of "min-wired" sets */#define XCHAL_DTLB_MINWIRED_SET0 4 /* index of n'th "min-wired" set *//* DTLB way set 0 (group of ways 0 thru 3): */#define XCHAL_DTLB_SET0_WAY 0 /* index of first way in this way set */#define XCHAL_DTLB_SET0_WAYS 4 /* number of (contiguous) ways in this way set */#define XCHAL_DTLB_SET0_ENTRIES_LOG2 2 /* log2(number of entries in this way) */#define XCHAL_DTLB_SET0_ENTRIES 4 /* number of entries in this way (always a power of 2) */#define XCHAL_DTLB_SET0_ARF 1 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_DTLB_SET0_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_DTLB_SET0_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_DTLB_SET0_PAGESZ_LOG2_MIN 12 /* log2(minimum supported page size) */#define XCHAL_DTLB_SET0_PAGESZ_LOG2_MAX 12 /* log2(maximum supported page size) */#define XCHAL_DTLB_SET0_PAGESZ_LOG2_LIST 12 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_DTLB_SET0_ASID_CONSTMASK 0 /* constant ASID bits; 0 if all writable */#define XCHAL_DTLB_SET0_VPN_CONSTMASK 0 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET0_PPN_CONSTMASK 0 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET0_CA_CONSTMASK 0 /* constant CA bits; 0 if all writable */#define XCHAL_DTLB_SET0_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET0_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET0_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET0_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* DTLB way set 1 (group of ways 4 thru 4): */#define XCHAL_DTLB_SET1_WAY 4 /* index of first way in this way set */#define XCHAL_DTLB_SET1_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_DTLB_SET1_ENTRIES_LOG2 2 /* log2(number of entries in this way) */#define XCHAL_DTLB_SET1_ENTRIES 4 /* number of entries in this way (always a power of 2) */#define XCHAL_DTLB_SET1_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_DTLB_SET1_PAGESIZES 4 /* number of supported page sizes in this way */#define XCHAL_DTLB_SET1_PAGESZ_BITS 2 /* number of bits to encode the page size */#define XCHAL_DTLB_SET1_PAGESZ_LOG2_MIN 20 /* log2(minimum supported page size) */#define XCHAL_DTLB_SET1_PAGESZ_LOG2_MAX 26 /* log2(maximum supported page size) */#define XCHAL_DTLB_SET1_PAGESZ_LOG2_LIST 20 XCHAL_SEP 22 XCHAL_SEP 24 XCHAL_SEP 26 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_DTLB_SET1_ASID_CONSTMASK 0 /* constant ASID bits; 0 if all writable */#define XCHAL_DTLB_SET1_VPN_CONSTMASK 0 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET1_PPN_CONSTMASK 0 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET1_CA_CONSTMASK 0 /* constant CA bits; 0 if all writable */#define XCHAL_DTLB_SET1_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET1_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET1_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET1_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* DTLB way set 2 (group of ways 5 thru 5): */#define XCHAL_DTLB_SET2_WAY 5 /* index of first way in this way set */#define XCHAL_DTLB_SET2_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_DTLB_SET2_ENTRIES_LOG2 1 /* log2(number of entries in this way) */#define XCHAL_DTLB_SET2_ENTRIES 2 /* number of entries in this way (always a power of 2) */#define XCHAL_DTLB_SET2_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_DTLB_SET2_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_DTLB_SET2_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_DTLB_SET2_PAGESZ_LOG2_MIN 27 /* log2(minimum supported page size) */#define XCHAL_DTLB_SET2_PAGESZ_LOG2_MAX 27 /* log2(maximum supported page size) */#define XCHAL_DTLB_SET2_PAGESZ_LOG2_LIST 27 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_DTLB_SET2_ASID_CONSTMASK 0xFF /* constant ASID bits; 0 if all writable */#define XCHAL_DTLB_SET2_VPN_CONSTMASK 0xF0000000 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET2_PPN_CONSTMASK 0xF8000000 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET2_CA_CONSTMASK 0x0000000F /* constant CA bits; 0 if all writable */#define XCHAL_DTLB_SET2_ASID_RESET 0 /* 1 if ASID reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET2_VPN_RESET 0 /* 1 if VPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET2_PPN_RESET 0 /* 1 if PPN reset values defined (and all writable); 0 otherwise */#define XCHAL_DTLB_SET2_CA_RESET 0 /* 1 if CA reset values defined (and all writable); 0 otherwise *//* Constant ASID values for each entry of DTLB way set 2 (because ASID_CONSTMASK is non-zero): */#define XCHAL_DTLB_SET2_E0_ASID_CONST 0x01#define XCHAL_DTLB_SET2_E1_ASID_CONST 0x01/* Constant VPN values for each entry of DTLB way set 2 (because VPN_CONSTMASK is non-zero): */#define XCHAL_DTLB_SET2_E0_VPN_CONST 0xD0000000#define XCHAL_DTLB_SET2_E1_VPN_CONST 0xD8000000/* Constant PPN values for each entry of DTLB way set 2 (because PPN_CONSTMASK is non-zero): */#define XCHAL_DTLB_SET2_E0_PPN_CONST 0x00000000#define XCHAL_DTLB_SET2_E1_PPN_CONST 0x00000000/* Constant CA values for each entry of DTLB way set 2 (because CA_CONSTMASK is non-zero): */#define XCHAL_DTLB_SET2_E0_CA_CONST 0x07#define XCHAL_DTLB_SET2_E1_CA_CONST 0x03/* DTLB way set 3 (group of ways 6 thru 6): */#define XCHAL_DTLB_SET3_WAY 6 /* index of first way in this way set */#define XCHAL_DTLB_SET3_WAYS 1 /* number of (contiguous) ways in this way set */#define XCHAL_DTLB_SET3_ENTRIES_LOG2 1 /* log2(number of entries in this way) */#define XCHAL_DTLB_SET3_ENTRIES 2 /* number of entries in this way (always a power of 2) */#define XCHAL_DTLB_SET3_ARF 0 /* 1=autorefill by h/w, 0=non-autorefill (wired/constant/static) */#define XCHAL_DTLB_SET3_PAGESIZES 1 /* number of supported page sizes in this way */#define XCHAL_DTLB_SET3_PAGESZ_BITS 0 /* number of bits to encode the page size */#define XCHAL_DTLB_SET3_PAGESZ_LOG2_MIN 28 /* log2(minimum supported page size) */#define XCHAL_DTLB_SET3_PAGESZ_LOG2_MAX 28 /* log2(maximum supported page size) */#define XCHAL_DTLB_SET3_PAGESZ_LOG2_LIST 28 /* list of log2(page size)s, separated by XCHAL_SEP; 2^PAGESZ_BITS entries in list, unsupported entries are zero */#define XCHAL_DTLB_SET3_ASID_CONSTMASK 0xFF /* constant ASID bits; 0 if all writable */#define XCHAL_DTLB_SET3_VPN_CONSTMASK 0xE0000000 /* constant VPN bits, not including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET3_PPN_CONSTMASK 0xF0000000 /* constant PPN bits, including entry index bits; 0 if all writable */#define XCHAL_DTLB_SET3_CA_CONSTMASK 0x0000000F /* constant CA bits; 0 if all writable */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -