1*ad435a71SAndrew Jones /* SPDX-License-Identifier: GPL-2.0-only */ 2*ad435a71SAndrew Jones #ifndef _ASMRISCV_PGTABLE_H_ 3*ad435a71SAndrew Jones #define _ASMRISCV_PGTABLE_H_ 4*ad435a71SAndrew Jones #include <linux/const.h> 5*ad435a71SAndrew Jones 6*ad435a71SAndrew Jones #if __riscv_xlen == 32 7*ad435a71SAndrew Jones #define SATP_PPN _AC(0x003FFFFF, UL) 8*ad435a71SAndrew Jones #define SATP_MODE_32 _AC(0x80000000, UL) 9*ad435a71SAndrew Jones #define SATP_MODE_SHIFT 31 10*ad435a71SAndrew Jones #define NR_LEVELS 2 11*ad435a71SAndrew Jones #define PGDIR_BITS 10 12*ad435a71SAndrew Jones #define PGDIR_MASK _AC(0x3FF, UL) 13*ad435a71SAndrew Jones #define PTE_PPN _AC(0xFFFFFC00, UL) 14*ad435a71SAndrew Jones 15*ad435a71SAndrew Jones #define SATP_MODE_DEFAULT SATP_MODE_32 16*ad435a71SAndrew Jones 17*ad435a71SAndrew Jones #else 18*ad435a71SAndrew Jones #define SATP_PPN _AC(0x00000FFFFFFFFFFF, UL) 19*ad435a71SAndrew Jones #define SATP_MODE_39 _AC(0x8000000000000000, UL) 20*ad435a71SAndrew Jones #define SATP_MODE_SHIFT 60 21*ad435a71SAndrew Jones #define NR_LEVELS 3 22*ad435a71SAndrew Jones #define PGDIR_BITS 9 23*ad435a71SAndrew Jones #define PGDIR_MASK _AC(0x1FF, UL) 24*ad435a71SAndrew Jones #define PTE_PPN _AC(0x3FFFFFFFFFFC00, UL) 25*ad435a71SAndrew Jones 26*ad435a71SAndrew Jones #define SATP_MODE_DEFAULT SATP_MODE_39 27*ad435a71SAndrew Jones 28*ad435a71SAndrew Jones #endif 29*ad435a71SAndrew Jones 30*ad435a71SAndrew Jones #define PPN_SHIFT 10 31*ad435a71SAndrew Jones 32*ad435a71SAndrew Jones #define _PAGE_PRESENT (1 << 0) 33*ad435a71SAndrew Jones #define _PAGE_READ (1 << 1) 34*ad435a71SAndrew Jones #define _PAGE_WRITE (1 << 2) 35*ad435a71SAndrew Jones #define _PAGE_EXEC (1 << 3) 36*ad435a71SAndrew Jones #define _PAGE_USER (1 << 4) 37*ad435a71SAndrew Jones #define _PAGE_GLOBAL (1 << 5) 38*ad435a71SAndrew Jones #define _PAGE_ACCESSED (1 << 6) 39*ad435a71SAndrew Jones #define _PAGE_DIRTY (1 << 7) 40*ad435a71SAndrew Jones #define _PAGE_SOFT (3 << 8) 41*ad435a71SAndrew Jones 42*ad435a71SAndrew Jones #endif /* _ASMRISCV_PGTABLE_H_ */ 43