Module Name:    src
Committed By:   skrll
Date:           Wed Sep 28 05:02:03 UTC 2022

Modified Files:
        src/sys/arch/riscv/conf: Makefile.riscv
        src/sys/arch/riscv/riscv: locore.S

Log Message:
Fix RV32 so it gets to the same point as RV64


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/riscv/conf/Makefile.riscv
cvs rdiff -u -r1.26 -r1.27 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/conf/Makefile.riscv
diff -u src/sys/arch/riscv/conf/Makefile.riscv:1.7 src/sys/arch/riscv/conf/Makefile.riscv:1.8
--- src/sys/arch/riscv/conf/Makefile.riscv:1.7	Sat May  1 07:13:21 2021
+++ src/sys/arch/riscv/conf/Makefile.riscv	Wed Sep 28 05:02:02 2022
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.riscv,v 1.7 2021/05/01 07:13:21 skrll Exp $
+#	$NetBSD: Makefile.riscv,v 1.8 2022/09/28 05:02:02 skrll Exp $
 
 # Makefile for NetBSD
 #
@@ -71,7 +71,7 @@ locore.o: ${RISCV}/riscv/locore.S assym.
 .if ${MACHINE_ARCH} == "riscv64" && ${LP64:Uyes} == "yes"
 TEXTADDR?=		0xFFFFFFC000000000
 .else
-TEXTADDR?=		0xC0001000
+TEXTADDR?=		0x80200000
 .endif
 KERNLDSCRIPT?=		${RISCV}/conf/kern.ldscript
 EXTRA_LINKFLAGS=	${LDOPTS} --relax

Index: src/sys/arch/riscv/riscv/locore.S
diff -u src/sys/arch/riscv/riscv/locore.S:1.26 src/sys/arch/riscv/riscv/locore.S:1.27
--- src/sys/arch/riscv/riscv/locore.S:1.26	Tue Sep 27 08:18:21 2022
+++ src/sys/arch/riscv/riscv/locore.S	Wed Sep 28 05:02:02 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.26 2022/09/27 08:18:21 skrll Exp $ */
+/* $NetBSD: locore.S,v 1.27 2022/09/28 05:02:02 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014, 2022 The NetBSD Foundation, Inc.
@@ -222,11 +222,16 @@ ENTRY_NP(start)
 
 	VPRINTX(s3)
 #endif
-#endif
 
 	VPRINTS(": ")
 	VPRINTXNL(t0)
 	VPRINTS("\n\r")
+#endif // _LP64
+
+#if ((VM_MIN_KERNEL_ADDRESS >> SEGSHIFT) & (NPDEPG - 1)) * SZREG
+	li	t1,  ((VM_MIN_KERNEL_ADDRESS >> SEGSHIFT) & (NPDEPG - 1)) * SZREG
+	add	s2, s2, t1
+#endif
 
 #if PGSHIFT < PTE_PPN_SHIFT
 #error Code assumes PGSHIFT is greater than PTE_PPN_SHIFT
@@ -240,7 +245,8 @@ ENTRY_NP(start)
 	// Fill in the PDEs for kernel.
 	//
 	PTR_LA	s0, start
-	srli	s0, s0, (PGSHIFT - PTE_PPN_SHIFT)
+	srli	s0, s0, SEGSHIFT	// round down to NBSEG, and shift in
+	slli	s0, s0, (SEGSHIFT - PGSHIFT + PTE_PPN_SHIFT)	// ... to PPN
 	or	s0, s0, s7
 .Lfill:
 	VPRINTS("kern ")

Reply via email to