Module Name: src
Committed By: skrll
Date: Fri Sep 30 06:23:59 UTC 2022
Modified Files:
src/sys/arch/riscv/include: pte.h
src/sys/arch/riscv/riscv: locore.S
Log Message:
Don't set A, D in page table pointers, but do set them in leaf entries.
Beagle-v now boots to the msgbufaddr panic same as qemu
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/riscv/include/pte.h
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/riscv/riscv/locore.S
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.7 src/sys/arch/riscv/include/pte.h:1.8
--- src/sys/arch/riscv/include/pte.h:1.7 Wed Sep 21 06:34:30 2022
+++ src/sys/arch/riscv/include/pte.h Fri Sep 30 06:23:58 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: pte.h,v 1.7 2022/09/21 06:34:30 skrll Exp $ */
+/* $NetBSD: pte.h,v 1.8 2022/09/30 06:23:58 skrll Exp $ */
/*
* Copyright (c) 2014, 2019, 2021 The NetBSD Foundation, Inc.
@@ -72,7 +72,7 @@ typedef uint32_t pd_entry_t;
#define PTE_V __BIT(0) // Valid
#define PTE_HARDWIRED (PTE_A | PTE_D)
-#define PTE_KERN (PTE_V | PTE_G)
+#define PTE_KERN (PTE_V | PTE_G | PTE_A | PTE_D)
#define PTE_RW (PTE_R | PTE_W)
#define PTE_RX (PTE_R | PTE_X)
Index: src/sys/arch/riscv/riscv/locore.S
diff -u src/sys/arch/riscv/riscv/locore.S:1.28 src/sys/arch/riscv/riscv/locore.S:1.29
--- src/sys/arch/riscv/riscv/locore.S:1.28 Wed Sep 28 06:05:28 2022
+++ src/sys/arch/riscv/riscv/locore.S Fri Sep 30 06:23:59 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.28 2022/09/28 06:05:28 skrll Exp $ */
+/* $NetBSD: locore.S,v 1.29 2022/09/30 06:23:59 skrll Exp $ */
/*-
* Copyright (c) 2014, 2022 The NetBSD Foundation, Inc.
@@ -190,7 +190,7 @@ ENTRY_NP(start)
call clear_bss // zero through kernel_end (inc. stack)
- li s7, PTE_KERN // for megapages
+ li s7, PTE_V // page table pointer {X,W,R} = {0,0,0}
// We allocated the kernel first PDE page so let's insert in the
// page table.