Module Name: src
Committed By: skrll
Date: Sat Nov 12 07:34:18 UTC 2022
Modified Files:
src/sys/arch/riscv/include: pte.h
Log Message:
Note some SV39 PTE bits defined in extensions.
Fix pte_nv_entry for the kernel.
Fix pte_pde_ptpage. PTE.{X,W,R} must be zero for pointer to next level.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/riscv/include/pte.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/riscv/include/pte.h
diff -u src/sys/arch/riscv/include/pte.h:1.10 src/sys/arch/riscv/include/pte.h:1.11
--- src/sys/arch/riscv/include/pte.h:1.10 Tue Oct 18 06:44:43 2022
+++ src/sys/arch/riscv/include/pte.h Sat Nov 12 07:34:18 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: pte.h,v 1.10 2022/10/18 06:44:43 skrll Exp $ */
+/* $NetBSD: pte.h,v 1.11 2022/11/12 07:34:18 skrll Exp $ */
/*
* Copyright (c) 2014, 2019, 2021 The NetBSD Foundation, Inc.
@@ -56,8 +56,14 @@ typedef uint32_t pd_entry_t;
#define NSEGPG NPTEPG
#define NPDEPG NPTEPG
+
+/* HardWare PTE bits SV39 */
+#define PTE_N __BIT(63) // Svnapot
+#define PTE_PBMT __BITS(62, 61) // Svpbmt
+#define PTE_reserved0 __BITS(60, 54) //
+
/* Software PTE bits. */
-#define PTE_RSW __BITS(9,8)
+#define PTE_RSW __BITS(9, 8)
#define PTE_WIRED __BIT(9)
/* Hardware PTE bits. */
@@ -155,7 +161,7 @@ pte_to_paddr(pt_entry_t pte)
static inline pt_entry_t
pte_nv_entry(bool kernel_p)
{
- return kernel_p ? PTE_G : 0;
+ return 0;
}
static inline pt_entry_t
@@ -265,7 +271,7 @@ pte_pde_pdetab(paddr_t pa, bool kernel_p
static inline pd_entry_t
pte_pde_ptpage(paddr_t pa, bool kernel_p)
{
- return PTE_V | PTE_X | PTE_W | PTE_R | (pa >> PAGE_SHIFT) << PTE_PPN_SHIFT;
+ return PTE_V | (pa >> PAGE_SHIFT) << PTE_PPN_SHIFT;
}
static inline bool