Module Name:    src
Committed By:   cliff
Date:           Sun Mar 21 21:24:19 UTC 2010

Modified Files:
        src/sys/arch/mips/rmi [matt-nb5-mips64]: rmixl_cpucore.c

Log Message:
- except for core#0, pmap tlb0info lives in the cpucore softc;
cpucore_rmixl_attach() calls pmap_tlb_info_init() with a KSEG0 or
XKPHYS_CACHED conversion of the address of that structure in the softc


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/arch/mips/rmi/rmixl_cpucore.c

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/mips/rmi/rmixl_cpucore.c
diff -u src/sys/arch/mips/rmi/rmixl_cpucore.c:1.1.2.5 src/sys/arch/mips/rmi/rmixl_cpucore.c:1.1.2.6
--- src/sys/arch/mips/rmi/rmixl_cpucore.c:1.1.2.5	Sat Feb 27 21:25:24 2010
+++ src/sys/arch/mips/rmi/rmixl_cpucore.c	Sun Mar 21 21:24:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rmixl_cpucore.c,v 1.1.2.5 2010/02/27 21:25:24 matt Exp $	*/
+/*	$NetBSD: rmixl_cpucore.c,v 1.1.2.6 2010/03/21 21:24:19 cliff Exp $	*/
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -38,7 +38,7 @@
 #include "locators.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rmixl_cpucore.c,v 1.1.2.5 2010/02/27 21:25:24 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rmixl_cpucore.c,v 1.1.2.6 2010/03/21 21:24:19 cliff Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -96,7 +96,18 @@
 	if (sc->sc_core == 0) {
 		sc->sc_tlbinfo = &pmap_tlb0_info;
 	} else {
-		sc->sc_tlbinfo = &sc->sc_tlbinfo0;
+		const vaddr_t va = (vaddr_t)&sc->sc_tlbinfo0;
+		paddr_t pa;
+
+		if (! pmap_extract(pmap_kernel(), va, &pa))
+			panic("%s: pmap_extract fail, va %#"PRIxVADDR, __func__, va);
+#ifdef _LP64
+		sc->sc_tlbinfo = (struct pmap_tlb_info *)
+			MIPS_PHYS_TO_XKPHYS_CACHED(pa);
+#else
+		sc->sc_tlbinfo = (struct pmap_tlb_info *)
+			MIPS_PHYS_TO_KSEG0(pa);
+#endif
 		pmap_tlb_info_init(sc->sc_tlbinfo);
 	}
 #endif

Reply via email to