|
19 | 19 |
|
20 | 20 | #undef PAGE_SIZE |
21 | 21 |
|
22 | | -#if !CONFIG_XUANTIE_SVPBMT |
23 | | -/* |
24 | | - * RISC-V Standard Svpbmt Extension (Bit 61-62) |
25 | | - * 00: PMA (Normal Memory, Cacheable, No change to implied PMA memory type) |
26 | | - * 01: NC (Non-cacheable, Weakly-ordered) |
27 | | - * 10: IO (Strongly-ordered, Non-cacheable, Non-idempotent) |
28 | | - * 11: Reserved |
29 | | - */ |
30 | | -#define PTE_PBMT_PMA (0UL << 61) |
31 | | -#define PTE_PBMT_NC (1UL << 61) |
32 | | -#define PTE_PBMT_IO (2UL << 61) |
33 | | -#define PTE_PBMT_MASK (3UL << 61) |
34 | | -#else |
35 | 22 | /* XuanTie Extension (Bit 59-63) */ |
36 | 23 | #define PTE_SEC (1UL << 59) /* Security */ |
37 | 24 | #define PTE_SHARE (1UL << 60) /* Shareable */ |
38 | 25 | #define PTE_BUF (1UL << 61) /* Bufferable */ |
39 | 26 | #define PTE_CACHE (1UL << 62) /* Cacheable */ |
40 | 27 | #define PTE_SO (1UL << 63) /* Strong Order */ |
41 | | -/* Compatible with Standard Svpbmt */ |
42 | | -#define PTE_PBMT_PMA (PTE_CACHE | PTE_BUF | PTE_SHARE) |
43 | | -#define PTE_PBMT_NC (PTE_BUF | PTE_SHARE) |
44 | | -#define PTE_PBMT_IO (PTE_SO | PTE_SHARE) |
45 | | -#define PTE_PBMT_MASK (PTE_PBMT_PMA | PTE_PBMT_IO | PTE_SEC) |
46 | | -#endif |
47 | 28 |
|
48 | 29 | #define PAGE_OFFSET_SHIFT 0 |
49 | 30 | #define PAGE_OFFSET_BIT 12 |
|
84 | 65 | #define PAGE_ATTR_CB (PTE_BUF | PTE_CACHE) |
85 | 66 | #define PAGE_ATTR_DEV (PTE_SO) |
86 | 67 |
|
87 | | -#if !CONFIG_XUANTIE_SVPBMT |
88 | | -/* |
89 | | - * Default Leaf Attribute: |
90 | | - * RWX + User + Valid + Global + Accessed + Dirty + PMA(Cacheable) |
91 | | - */ |
92 | | -#define PAGE_DEFAULT_ATTR_LEAF \ |
93 | | - (PAGE_ATTR_RWX | PAGE_ATTR_USER | PTE_V | PTE_G | PTE_PBMT_PMA | PTE_A | PTE_D) |
94 | | -#else |
95 | 68 | #define PAGE_DEFAULT_ATTR_LEAF \ |
96 | 69 | (PTE_SHARE | PTE_BUF | PTE_CACHE | PTE_A | PTE_D | PTE_G | PTE_U | \ |
97 | 70 | PAGE_ATTR_RWX | PTE_V) |
98 | | -#endif |
99 | 71 |
|
100 | 72 | #define PAGE_DEFAULT_ATTR_NEXT (PAGE_ATTR_NEXT_LEVEL | PTE_V | PTE_G) |
101 | 73 |
|
|
117 | 89 | #define ARCH_VADDR_WIDTH 39 |
118 | 90 | #define SATP_MODE SATP_MODE_SV39 |
119 | 91 |
|
120 | | -#if !CONFIG_XUANTIE_SVPBMT |
121 | | -/* |
122 | | - * Kernel Mappings |
123 | | - */ |
124 | | -/* Device: IO Mode (Strongly Ordered) */ |
125 | | -#define MMU_MAP_K_DEVICE (PTE_PBMT_IO | PTE_A | PTE_D | PTE_G | PTE_W | PTE_R | PTE_V) |
126 | | - |
127 | | -/* RW: Non-Cacheable (NC Mode) */ |
128 | | -#define MMU_MAP_K_RW (PTE_PBMT_NC | PTE_A | PTE_D | PTE_G | PAGE_ATTR_RWX | PTE_V) |
129 | | - |
130 | | -/* RWCB: Cacheable (PMA Mode) - Normal RAM */ |
131 | | -#define MMU_MAP_K_RWCB (PTE_PBMT_PMA | PTE_A | PTE_D | PTE_G | PAGE_ATTR_RWX | PTE_V) |
132 | | - |
133 | | -/* |
134 | | - * User Mappings |
135 | | - */ |
136 | | -/* User RW: Non-Cacheable */ |
137 | | -#define MMU_MAP_U_RW (PTE_PBMT_NC | PTE_U | PTE_A | PTE_D | PAGE_ATTR_RWX | PTE_V) |
138 | | - |
139 | | -/* User RWCB: Cacheable */ |
140 | | -#define MMU_MAP_U_RWCB (PTE_PBMT_PMA | PTE_U | PTE_A | PTE_D | PAGE_ATTR_RWX | PTE_V) |
141 | | - |
142 | | -/* User ROCB: Cacheable */ |
143 | | -#define MMU_MAP_U_ROCB (PTE_PBMT_PMA | PTE_U | PTE_A | PTE_D | PAGE_ATTR_READONLY | PTE_V) |
144 | | - |
145 | | -/* User RWCB: Cacheable */ |
146 | | -#define MMU_MAP_U_RWCB_XN (PTE_PBMT_PMA | PTE_U | PTE_A | PTE_D | PAGE_ATTR_XN | PTE_V) |
147 | | - |
148 | | -/* Early Mapping: Cacheable */ |
149 | | -#define MMU_MAP_EARLY \ |
150 | | - PTE_WRAP(PAGE_ATTR_RWX | PTE_G | PTE_V | PTE_PBMT_PMA) |
151 | | -#else |
152 | 92 | #define MMU_MAP_K_DEVICE PTE_WRAP(PAGE_ATTR_DEV | PTE_G | PAGE_ATTR_XN | PTE_V) |
153 | 93 | #define MMU_MAP_K_RWCB PTE_WRAP(PAGE_ATTR_CB | PTE_G | PAGE_ATTR_RWX | PTE_V) |
154 | 94 | #define MMU_MAP_K_RW PTE_WRAP(PTE_G | PAGE_ATTR_RWX | PTE_V) |
|
159 | 99 | #define MMU_MAP_U_RW PTE_WRAP(PTE_U | PAGE_ATTR_RWX | PTE_V) |
160 | 100 | #define MMU_MAP_EARLY \ |
161 | 101 | PTE_WRAP(PAGE_ATTR_RWX | PTE_G | PTE_V | PTE_CACHE | PTE_SHARE | PTE_BUF) |
162 | | -#endif |
163 | 102 |
|
164 | 103 | #define MMU_MAP_TRACE(attr) (attr) |
165 | 104 |
|
|
0 commit comments