| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Copyright (C) 2012 Regents of the University of California | |
| */ | |
| #ifndef _ASM_RISCV_PGTABLE_32_H | |
| #define _ASM_RISCV_PGTABLE_32_H | |
| #include <asm-generic/pgtable-nopmd.h> | |
| #include <linux/bits.h> | |
| #include <linux/const.h> | |
| /* Size of region mapped by a page global directory */ | |
| #define PGDIR_SHIFT 22 | |
| #define PGDIR_SIZE (_AC(1, UL) << PGDIR_SHIFT) | |
| #define PGDIR_MASK (~(PGDIR_SIZE - 1)) | |
| #define MAX_POSSIBLE_PHYSMEM_BITS 34 | |
| /* | |
| * rv32 PTE format: | |
| * | XLEN-1 10 | 9 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
| * PFN reserved for SW D A G U X W R V | |
| */ | |
| #define _PAGE_PFN_MASK GENMASK(31, 10) | |
| #define _PAGE_NOCACHE 0 | |
| #define _PAGE_IO 0 | |
| #define _PAGE_MTMASK 0 | |
| /* Set of bits to preserve across pte_modify() */ | |
| #define _PAGE_CHG_MASK (~(unsigned long)(_PAGE_PRESENT | _PAGE_READ | \ | |
| _PAGE_WRITE | _PAGE_EXEC | \ | |
| _PAGE_USER | _PAGE_GLOBAL)) | |
| static const __maybe_unused int pgtable_l4_enabled; | |
| static const __maybe_unused int pgtable_l5_enabled; | |
| #endif /* _ASM_RISCV_PGTABLE_32_H */ |