Module Name:    src
Committed By:   riz
Date:           Mon Feb 27 20:17:19 UTC 2012

Modified Files:
        src/sys/arch/atari/atari [netbsd-6]: atari_init.c
        src/sys/arch/x68k/x68k [netbsd-6]: pmap_bootstrap.c

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #55):
        sys/arch/x68k/x68k/pmap_bootstrap.c: revision 1.59
        sys/arch/atari/atari/atari_init.c: revision 1.99
Use actual physmem size for allocation of bootstrap extra PT pages
to avoid wasting pages on low memory machines.
Improves atari specific part of PR/45915, tested on TT030.
Reserve more bootstrap kernel PT pages if options EXTENDED_MEMORY is defined
for VA allocation in the extended memory probe function and possible 128MB
memory on 060turbo, as worksaround for x68k specific part of PR/45915.
Fixes GENERIC kernel panic on X68030 even without extended memory.
XXX: we should rather have proper probe function before pmap_bootstrap()
Tested on 060turbo with 128MB SIMM by Y.Sugahara, and also
tested on XM6i with 68030 and custom 128MB memory settings by isaki@.
Should be pulled up to netbsd-6.


To generate a diff of this commit:
cvs rdiff -u -r1.98 -r1.98.2.1 src/sys/arch/atari/atari/atari_init.c
cvs rdiff -u -r1.58 -r1.58.2.1 src/sys/arch/x68k/x68k/pmap_bootstrap.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/atari/atari/atari_init.c
diff -u src/sys/arch/atari/atari/atari_init.c:1.98 src/sys/arch/atari/atari/atari_init.c:1.98.2.1
--- src/sys/arch/atari/atari/atari_init.c:1.98	Fri Feb 10 04:49:44 2012
+++ src/sys/arch/atari/atari/atari_init.c	Mon Feb 27 20:17:19 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: atari_init.c,v 1.98 2012/02/10 04:49:44 mhitch Exp $	*/
+/*	$NetBSD: atari_init.c,v 1.98.2.1 2012/02/27 20:17:19 riz Exp $	*/
 
 /*
  * Copyright (c) 1995 Leo Weppelman
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.98 2012/02/10 04:49:44 mhitch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.98.2.1 2012/02/27 20:17:19 riz Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mbtype.h"
@@ -226,6 +226,7 @@ start_c(int id, u_int ttphystart, u_int 
 	st_pool_phys   = stphysize - st_pool_size;
 	stphysize      = st_pool_phys;
 
+	physmem        = btoc(stphysize) + btoc(ttphysize);
 	machineid      = id;
 	esym           = esym_addr;
 

Index: src/sys/arch/x68k/x68k/pmap_bootstrap.c
diff -u src/sys/arch/x68k/x68k/pmap_bootstrap.c:1.58 src/sys/arch/x68k/x68k/pmap_bootstrap.c:1.58.2.1
--- src/sys/arch/x68k/x68k/pmap_bootstrap.c:1.58	Fri Feb 10 06:28:39 2012
+++ src/sys/arch/x68k/x68k/pmap_bootstrap.c	Mon Feb 27 20:17:18 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap_bootstrap.c,v 1.58 2012/02/10 06:28:39 mhitch Exp $	*/
+/*	$NetBSD: pmap_bootstrap.c,v 1.58.2.1 2012/02/27 20:17:18 riz Exp $	*/
 
 /* 
  * Copyright (c) 1991, 1993
@@ -36,9 +36,10 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_bootstrap.c,v 1.58 2012/02/10 06:28:39 mhitch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_bootstrap.c,v 1.58.2.1 2012/02/27 20:17:18 riz Exp $");
 
 #include "opt_m68k_arch.h"
+#include "opt_extmem.h"
 
 #include <sys/param.h>
 #include <uvm/uvm_extern.h>
@@ -124,6 +125,19 @@ pmap_bootstrap(paddr_t nextpa, paddr_t f
 	kptpa = nextpa;
 	nptpages = RELOC(Sysptsize, int) + howmany(RELOC(physmem, int), NPTEPG) +
 		(IIOMAPSIZE + NPTEPG - 1) / NPTEPG;
+#ifdef EXTENDED_MEMORY
+	/*
+	 * Current supported maximum EXTENDED_MEMORY is 128MB on 060turbo.
+	 */
+#define MAX_EXTENDED_MEMORY	(128 * 1024 * 1024)
+	nptpages += howmany(btoc(MAX_EXTENDED_MEMORY), NPTEPG);
+
+	/*
+	 * mem_exist() in machdep.c needs two extra VA pages before pmap_init()
+	 * to probe >16MB memory.
+	 */
+	nptpages += 1;
+#endif
 	nextpa += nptpages * PAGE_SIZE;
 
 	/*

Reply via email to