Skip to content

Commit 82b93ac

Browse files
committed
Ensure that c906 uses only the Xuantie MMU properties
1 parent 7d1e551 commit 82b93ac

1 file changed

Lines changed: 0 additions & 61 deletions

File tree

‎libcpu/risc-v/t-head/c906/riscv_mmu.h‎

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,12 @@
1919

2020
#undef PAGE_SIZE
2121

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
3522
/* XuanTie Extension (Bit 59-63) */
3623
#define PTE_SEC (1UL << 59) /* Security */
3724
#define PTE_SHARE (1UL << 60) /* Shareable */
3825
#define PTE_BUF (1UL << 61) /* Bufferable */
3926
#define PTE_CACHE (1UL << 62) /* Cacheable */
4027
#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
4728

4829
#define PAGE_OFFSET_SHIFT 0
4930
#define PAGE_OFFSET_BIT 12
@@ -84,18 +65,9 @@
8465
#define PAGE_ATTR_CB (PTE_BUF | PTE_CACHE)
8566
#define PAGE_ATTR_DEV (PTE_SO)
8667

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
9568
#define PAGE_DEFAULT_ATTR_LEAF \
9669
(PTE_SHARE | PTE_BUF | PTE_CACHE | PTE_A | PTE_D | PTE_G | PTE_U | \
9770
PAGE_ATTR_RWX | PTE_V)
98-
#endif
9971

10072
#define PAGE_DEFAULT_ATTR_NEXT (PAGE_ATTR_NEXT_LEVEL | PTE_V | PTE_G)
10173

@@ -117,38 +89,6 @@
11789
#define ARCH_VADDR_WIDTH 39
11890
#define SATP_MODE SATP_MODE_SV39
11991

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
15292
#define MMU_MAP_K_DEVICE PTE_WRAP(PAGE_ATTR_DEV | PTE_G | PAGE_ATTR_XN | PTE_V)
15393
#define MMU_MAP_K_RWCB PTE_WRAP(PAGE_ATTR_CB | PTE_G | PAGE_ATTR_RWX | PTE_V)
15494
#define MMU_MAP_K_RW PTE_WRAP(PTE_G | PAGE_ATTR_RWX | PTE_V)
@@ -159,7 +99,6 @@
15999
#define MMU_MAP_U_RW PTE_WRAP(PTE_U | PAGE_ATTR_RWX | PTE_V)
160100
#define MMU_MAP_EARLY \
161101
PTE_WRAP(PAGE_ATTR_RWX | PTE_G | PTE_V | PTE_CACHE | PTE_SHARE | PTE_BUF)
162-
#endif
163102

164103
#define MMU_MAP_TRACE(attr) (attr)
165104

0 commit comments

Comments
 (0)