CVS commit: src

2012-03-29 Thread Jukka Ruohonen
Module Name:src
Committed By:   jruoho
Date:   Thu Mar 29 06:16:57 UTC 2012

Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/lib/libc/stdlib: Makefile
Added Files:
src/tests/lib/libc/stdlib: t_abs.c

Log Message:
Few fundamental consistency checks for the abs(3) family.


To generate a diff of this commit:
cvs rdiff -u -r1.460 -r1.461 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.21 -r1.22 src/tests/lib/libc/stdlib/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/lib/libc/stdlib/t_abs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.460 src/distrib/sets/lists/tests/mi:1.461
--- src/distrib/sets/lists/tests/mi:1.460	Thu Mar 29 05:42:31 2012
+++ src/distrib/sets/lists/tests/mi	Thu Mar 29 06:16:57 2012
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.460 2012/03/29 05:42:31 jruoho Exp $
+# $NetBSD: mi,v 1.461 2012/03/29 06:16:57 jruoho Exp $
 #
 # Note: don't delete entries from here - mark them as obsolete instead.
 #
@@ -486,6 +486,7 @@
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/h_atexit.debug		tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/h_getopt.debug		tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/h_getopt_long.debug	tests-lib-debug		debug,atf
+./usr/libdata/debug/usr/tests/lib/libc/stdlib/t_abs.debug		tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/t_atoi.debug		tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/t_div.debug		tests-lib-debug		debug,atf
 ./usr/libdata/debug/usr/tests/lib/libc/stdlib/t_environment.debug	tests-obsolete		obsolete
@@ -2379,6 +2380,7 @@
 ./usr/tests/lib/libc/stdlib/h_getopt		tests-lib-tests		atf
 ./usr/tests/lib/libc/stdlib/h_getopt_long	tests-lib-tests		atf
 ./usr/tests/lib/libc/stdlib/t_atexit		tests-lib-tests		atf
+./usr/tests/lib/libc/stdlib/t_abs		tests-lib-tests		atf
 ./usr/tests/lib/libc/stdlib/t_atoi		tests-lib-tests		atf
 ./usr/tests/lib/libc/stdlib/t_div		tests-lib-tests		atf
 ./usr/tests/lib/libc/stdlib/t_environment	tests-obsolete		obsolete

Index: src/tests/lib/libc/stdlib/Makefile
diff -u src/tests/lib/libc/stdlib/Makefile:1.21 src/tests/lib/libc/stdlib/Makefile:1.22
--- src/tests/lib/libc/stdlib/Makefile:1.21	Thu Mar 29 05:42:31 2012
+++ src/tests/lib/libc/stdlib/Makefile	Thu Mar 29 06:16:56 2012
@@ -1,9 +1,10 @@
-# $NetBSD: Makefile,v 1.21 2012/03/29 05:42:31 jruoho Exp $
+# $NetBSD: Makefile,v 1.22 2012/03/29 06:16:56 jruoho Exp $
 
 .include bsd.own.mk
 
 TESTSDIR=	${TESTSBASE}/lib/libc/stdlib
 
+TESTS_C+=	t_abs
 TESTS_C+=	t_atoi
 TESTS_C+=	t_div
 TESTS_C+=	t_getenv

Added files:

Index: src/tests/lib/libc/stdlib/t_abs.c
diff -u /dev/null src/tests/lib/libc/stdlib/t_abs.c:1.1
--- /dev/null	Thu Mar 29 06:16:57 2012
+++ src/tests/lib/libc/stdlib/t_abs.c	Thu Mar 29 06:16:56 2012
@@ -0,0 +1,136 @@
+/* $NetBSD: t_abs.c,v 1.1 2012/03/29 06:16:56 jruoho Exp $ */
+
+/*-
+ * Copyright (c) 2012 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jukka Ruohonen.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#include sys/cdefs.h
+__RCSID($NetBSD: t_abs.c,v 1.1 2012/03/29 06:16:56 jruoho Exp $);
+
+#include atf-c.h
+#include inttypes.h
+#include limits.h
+#include stdlib.h
+
+struct test {
+	int64_t val;
+	int64_t res;
+};
+
+ATF_TC(abs_basic);
+ATF_TC_HEAD(abs_basic, tc)
+{
+	atf_tc_set_md_var(tc, descr, Test that abs(3) works);
+}
+
+ATF_TC_BODY(abs_basic, tc)
+{
+	static const struct test table[] = {
+		{ 0,		0		},
+		{ 

CVS commit: src/usr.bin/xlint/arch/mips64

2012-03-29 Thread Michael Lorenz
Module Name:src
Committed By:   macallan
Date:   Thu Mar 29 08:52:31 UTC 2012

Modified Files:
src/usr.bin/xlint/arch/mips64: targparam.h

Log Message:
XXX
Don't assume LP64 unless lint itself is built as LP64
On mips64 we default to n32 which produces errors when things like
TARG_LONG_MAX don't fit into a long
A proper fix would be to teach lint about different target ABIs so it can
pick the right parameters, this is just a bandaid to make it slightly less
wrong and allow a mips64 build to complete.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/usr.bin/xlint/arch/mips64/targparam.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/arch/mips64/targparam.h
diff -u src/usr.bin/xlint/arch/mips64/targparam.h:1.3 src/usr.bin/xlint/arch/mips64/targparam.h:1.4
--- src/usr.bin/xlint/arch/mips64/targparam.h:1.3	Tue Mar 27 19:24:02 2012
+++ src/usr.bin/xlint/arch/mips64/targparam.h	Thu Mar 29 08:52:31 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: targparam.h,v 1.3 2012/03/27 19:24:02 christos Exp $	*/
+/*	$NetBSD: targparam.h,v 1.4 2012/03/29 08:52:31 macallan Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995 Jochen Pohl
@@ -35,8 +35,11 @@
  * Machine-dependent target parameters for lint1.
  */
 #include schar.h
+#ifdef _LP64
 #include lp64.h
-
+#else
+#include ilp32.h
+#endif
 /*
  * Should be set to 1 if the difference of two pointers is of type long
  * or the value of sizeof is of type unsigned long.  Note this MUST be



CVS commit: src/tests/lib/libc/stdlib

2012-03-29 Thread Jukka Ruohonen
Module Name:src
Committed By:   jruoho
Date:   Thu Mar 29 08:56:06 UTC 2012

Modified Files:
src/tests/lib/libc/stdlib: t_random.c

Log Message:
Adjust as per apb@'s suggestion.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/lib/libc/stdlib/t_random.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libc/stdlib/t_random.c
diff -u src/tests/lib/libc/stdlib/t_random.c:1.2 src/tests/lib/libc/stdlib/t_random.c:1.3
--- src/tests/lib/libc/stdlib/t_random.c:1.2	Wed Mar 28 10:38:00 2012
+++ src/tests/lib/libc/stdlib/t_random.c	Thu Mar 29 08:56:06 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: t_random.c,v 1.2 2012/03/28 10:38:00 jruoho Exp $ */
+/* $NetBSD: t_random.c,v 1.3 2012/03/29 08:56:06 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -29,47 +29,54 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include sys/cdefs.h
-__RCSID($NetBSD: t_random.c,v 1.2 2012/03/28 10:38:00 jruoho Exp $);
+__RCSID($NetBSD: t_random.c,v 1.3 2012/03/29 08:56:06 jruoho Exp $);
 
 #include atf-c.h
+#include stdio.h
 #include stdlib.h
 
 /*
  * TODO: Add some general RNG tests (cf. the famous diehard tests?).
  */
 
-ATF_TC(random_zero);
-ATF_TC_HEAD(random_zero, tc)
+ATF_TC(random_same);
+ATF_TC_HEAD(random_same, tc)
 {
 	atf_tc_set_md_var(tc, descr,
-	Test that random(3) does not always return 
-	zero when the seed is initialized to zero);
+	Test that random(3) does not always return the same 
+	value when the seed is initialized to zero);
 }
 
-ATF_TC_BODY(random_zero, tc)
+#define MAX_ITER 10
+
+ATF_TC_BODY(random_same, tc)
 {
-	const size_t n = 100;
+	long buf[MAX_ITER];
 	size_t i, j;
-	long x;
 
 	/*
 	 * See CVE-2012-1577.
 	 */
 	srandom(0);
 
-	for (i = j = 0; i  n; i++) {
+	for (i = 0; i  __arraycount(buf); i++) {
 
-		if ((x = random()) == 0)
-			j++;
-	}
+		buf[i] = random();
+
+		for (j = 0; j  i; j++) {
 
-	ATF_REQUIRE(j != n);
+			(void)fprintf(stderr, i = %zu, j = %zu: 
+			%ld vs. %ld\n, i, j, buf[i], buf[j]);
+
+			ATF_CHECK(buf[i] != buf[j]);
+		}
+	}
 }
 
 ATF_TP_ADD_TCS(tp)
 {
 
-	ATF_TP_ADD_TC(tp, random_zero);
+	ATF_TP_ADD_TC(tp, random_same);
 
 	return atf_no_error();
 }



CVS commit: src/sys/arch/hp700/hp700

2012-03-29 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Thu Mar 29 09:26:24 UTC 2012

Modified Files:
src/sys/arch/hp700/hp700: intr.c

Log Message:
Check for HPPA_SID_KERNEL when checking for interrupt in the
mutex_enter critical section.


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/hp700/hp700/intr.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/hp700/hp700/intr.c
diff -u src/sys/arch/hp700/hp700/intr.c:1.37 src/sys/arch/hp700/hp700/intr.c:1.38
--- src/sys/arch/hp700/hp700/intr.c:1.37	Thu Mar  1 21:10:00 2012
+++ src/sys/arch/hp700/hp700/intr.c	Thu Mar 29 09:26:24 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.c,v 1.37 2012/03/01 21:10:00 skrll Exp $	*/
+/*	$NetBSD: intr.c,v 1.38 2012/03/29 09:26:24 skrll Exp $	*/
 /*	$OpenBSD: intr.c,v 1.27 2009/12/31 12:52:35 jsing Exp $	*/
 
 /*
@@ -35,7 +35,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: intr.c,v 1.37 2012/03/01 21:10:00 skrll Exp $);
+__KERNEL_RCSID(0, $NetBSD: intr.c,v 1.38 2012/03/29 09:26:24 skrll Exp $);
 
 #define __MUTEX_PRIVATE
 
@@ -391,7 +391,8 @@ hppa_intr(struct trapframe *frame)
 	 * interrupt handlers need to aquire the mutex, they could deadlock if
 	 * the owner value is left unset.
 	 */
-	if (frame-tf_iioq_head = (u_int)mutex_enter_crit_start 
+	if (frame-tf_iisq_head == HPPA_SID_KERNEL 
+	frame-tf_iioq_head = (u_int)mutex_enter_crit_start 
 	frame-tf_iioq_head = (u_int)mutex_enter_crit_end 
 	frame-tf_ret0 != 0)
 		((kmutex_t *)frame-tf_arg0)-mtx_owner = (uintptr_t)curlwp;



CVS commit: src/lib/libc/gen

2012-03-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Mar 29 13:05:10 UTC 2012

Modified Files:
src/lib/libc/gen: getgrent.c getpwent.c

Log Message:
PR?40728: W. Stukenbrock: Fix various issues with NIS-netgroups in users
and groups.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/lib/libc/gen/getgrent.c
cvs rdiff -u -r1.77 -r1.78 src/lib/libc/gen/getpwent.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/gen/getgrent.c
diff -u src/lib/libc/gen/getgrent.c:1.65 src/lib/libc/gen/getgrent.c:1.66
--- src/lib/libc/gen/getgrent.c:1.65	Tue Mar 13 17:13:35 2012
+++ src/lib/libc/gen/getgrent.c	Thu Mar 29 09:05:10 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: getgrent.c,v 1.65 2012/03/13 21:13:35 christos Exp $	*/
+/*	$NetBSD: getgrent.c,v 1.66 2012/03/29 13:05:10 christos Exp $	*/
 
 /*-
  * Copyright (c) 1999-2000, 2004-2005 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
 #if 0
 static char sccsid[] = @(#)getgrent.c	8.2 (Berkeley) 3/21/94;
 #else
-__RCSID($NetBSD: getgrent.c,v 1.65 2012/03/13 21:13:35 christos Exp $);
+__RCSID($NetBSD: getgrent.c,v 1.66 2012/03/29 13:05:10 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -1190,9 +1190,17 @@ _nis_getgrgid_r(void *nsrv, void *nscb, 
 	_DIAGASSERT(result != NULL);
 
 	*result = NULL;
-	memset(state, 0, sizeof(state));
-	rv = __grscan_nis(retval, grp, buffer, buflen, state, 1, NULL, gid);
-	__grend_nis(state);
+/* remark: we run under a global mutex inside of this module ... */
+	if (_nis_state.stayopen)
+	  { /* use global state only if stayopen is set - otherwiese we would blow up getgrent_r() ... */
+	 rv = __grscan_nis(retval, grp, buffer, buflen, _nis_state, 1, NULL, gid);
+	  }
+	else
+	  {
+	memset(state, 0, sizeof(state));
+	rv = __grscan_nis(retval, grp, buffer, buflen, state, 1, NULL, gid);
+	__grend_nis(state);
+	  }
 	if (rv == NS_SUCCESS)
 		*result = grp;
 	return rv;
@@ -1242,9 +1250,17 @@ _nis_getgrnam_r(void *nsrv, void *nscb, 
 	_DIAGASSERT(result != NULL);
 
 	*result = NULL;
-	memset(state, 0, sizeof(state));
-	rv = __grscan_nis(retval, grp, buffer, buflen, state, 1, name, 0);
-	__grend_nis(state);
+/* remark: we run under a global mutex inside of this module ... */
+	if (_nis_state.stayopen)
+	  { /* use global state only if stayopen is set - otherwiese we would blow up getgrent_r() ... */
+	 rv = __grscan_nis(retval, grp, buffer, buflen, _nis_state, 1, name, 0);
+	  }
+	else
+	  {
+	memset(state, 0, sizeof(state));
+	rv = __grscan_nis(retval, grp, buffer, buflen, state, 1, name, 0);
+	__grend_nis(state);
+	  }
 	if (rv == NS_SUCCESS)
 		*result = grp;
 	return rv;

Index: src/lib/libc/gen/getpwent.c
diff -u src/lib/libc/gen/getpwent.c:1.77 src/lib/libc/gen/getpwent.c:1.78
--- src/lib/libc/gen/getpwent.c:1.77	Tue Mar 23 16:28:59 2010
+++ src/lib/libc/gen/getpwent.c	Thu Mar 29 09:05:10 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: getpwent.c,v 1.77 2010/03/23 20:28:59 drochner Exp $	*/
+/*	$NetBSD: getpwent.c,v 1.78 2012/03/29 13:05:10 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997-2000, 2004-2005 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
 #if 0
 static char sccsid[] = @(#)getpwent.c	8.2 (Berkeley) 4/27/95;
 #else
-__RCSID($NetBSD: getpwent.c,v 1.77 2010/03/23 20:28:59 drochner Exp $);
+__RCSID($NetBSD: getpwent.c,v 1.78 2012/03/29 13:05:10 christos Exp $);
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -1126,7 +1126,7 @@ struct nis_state {
 	char		*current;	/* current first/next match */
 	int		 currentlen;	/* length of _nis_current */
 	enum {/* shadow map type */
-		NISMAP_UNKNOWN,		/*  unknown ... */
+		NISMAP_UNKNOWN = 0,	/*  unknown ... */
 		NISMAP_NONE,		/*  none: use passwd.by* */
 		NISMAP_ADJUNCT,		/*  pw_passwd from passwd.adjunct.* */
 		NISMAP_MASTER		/*  all from master.passwd.by* */
@@ -1138,11 +1138,17 @@ static struct nis_state		_nis_state;
 static struct passwd		_nis_passwd;
 static char			_nis_passwdbuf[_GETPW_R_SIZE_MAX];
 
+static const char __nis_pw_n_1[] = master.passwd.byname;
+static const char __nis_pw_n_2[] = passwd.byname;
+static const char __nis_pw_u_1[] = master.passwd.byuid;
+static const char __nis_pw_u_2[] = passwd.byuid;
+
+static const char * const __nis_pw_n_map[4] = { __nis_pw_n_2, __nis_pw_n_2, __nis_pw_n_2, __nis_pw_n_1 };
+static const char * const __nis_pw_u_map[4] = { __nis_pw_u_2, __nis_pw_u_2, __nis_pw_u_2, __nis_pw_u_1 };
+
 	/* macros for deciding which NIS maps to use. */
-#define	PASSWD_BYNAME(x)	((x)-maptype == NISMAP_MASTER \
-? master.passwd.byname : passwd.byname)
-#define	PASSWD_BYUID(x)		((x)-maptype == NISMAP_MASTER \
-? master.passwd.byuid : passwd.byuid)
+#define	PASSWD_BYNAME(x)	((x)-maptype == NISMAP_MASTER ? __nis_pw_n_1 : __nis_pw_n_2)
+#define	PASSWD_BYUID(x)		((x)-maptype == NISMAP_MASTER ? __nis_pw_u_1 : __nis_pw_u_2)
 
 static int
 _nis_start(struct nis_state *state)
@@ -1263,7 +1269,7 @@ 

CVS commit: src/lib/libc/stdio

2012-03-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Mar 29 14:27:34 UTC 2012

Modified Files:
src/lib/libc/stdio: fmemopen.c

Log Message:
The flush function makes the tests fail. So undo it for now until we decide
if the tests are wrong or the flushing is wrong.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/stdio/fmemopen.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/stdio/fmemopen.c
diff -u src/lib/libc/stdio/fmemopen.c:1.7 src/lib/libc/stdio/fmemopen.c:1.8
--- src/lib/libc/stdio/fmemopen.c:1.7	Tue Mar 27 11:05:42 2012
+++ src/lib/libc/stdio/fmemopen.c	Thu Mar 29 10:27:33 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: fmemopen.c,v 1.7 2012/03/27 15:05:42 christos Exp $ */
+/* $NetBSD: fmemopen.c,v 1.8 2012/03/29 14:27:33 christos Exp $ */
 
 /*-
  * Copyright (c)2007, 2010 Takehiko NOZAKI,
@@ -29,7 +29,7 @@
 
 #include sys/cdefs.h
 #if defined(LIBC_SCCS)  !defined(lint)
-__RCSID($NetBSD: fmemopen.c,v 1.7 2012/03/27 15:05:42 christos Exp $);
+__RCSID($NetBSD: fmemopen.c,v 1.8 2012/03/29 14:27:33 christos Exp $);
 #endif /* LIBC_SCCS and not lint */
 
 #include assert.h
@@ -98,6 +98,7 @@ ok:
 	return (ssize_t)(p-cur - s);
 }
 
+#ifdef notyet
 static int
 fmemopen_flush(void *cookie)
 {
@@ -111,6 +112,7 @@ fmemopen_flush(void *cookie)
 	*p-cur = '\0';
 	return 0;
 }
+#endif
 
 static off_t
 fmemopen_seek(void *cookie, off_t offset, int whence)
@@ -221,7 +223,9 @@ fmemopen(void * __restrict buf, size_t s
 	fp-_write  = (flags  __SRD) ? NULL : fmemopen_write;
 	fp-_read   = (flags  __SWR) ? NULL : fmemopen_read;
 	fp-_seek   = fmemopen_seek;
+#ifdef notyet
 	fp-_flush  = fmemopen_flush;
+#endif
 	fp-_cookie = (void *)cookie;
 
 	return fp;



CVS commit: src/sys/arch/powerpc/booke/dev

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 14:47:09 UTC 2012

Modified Files:
src/sys/arch/powerpc/booke/dev: pq3gpio.c

Log Message:
Fix P2020 GPIO support (which has pins that are input/output instead of just
input or output).


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/booke/dev/pq3gpio.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/powerpc/booke/dev/pq3gpio.c
diff -u src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.4 src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.5
--- src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.4	Thu Jun 30 04:43:47 2011
+++ src/sys/arch/powerpc/booke/dev/pq3gpio.c	Thu Mar 29 14:47:09 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: pq3gpio.c,v 1.4 2011/06/30 04:43:47 matt Exp $	*/
+/*	$NetBSD: pq3gpio.c,v 1.5 2012/03/29 14:47:09 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -35,12 +35,13 @@
  */
 
 #define	GLOBAL_PRIVATE
+#define	GPIO_PRIVATE
 
 #include opt_mpc85xx.h
 
 #include sys/cdefs.h
 
-__KERNEL_RCSID(0, $NetBSD: pq3gpio.c,v 1.4 2011/06/30 04:43:47 matt Exp $);
+__KERNEL_RCSID(0, $NetBSD: pq3gpio.c,v 1.5 2012/03/29 14:47:09 matt Exp $);
 
 #include sys/param.h
 #include sys/cpu.h
@@ -108,6 +109,19 @@ pq3gpio_pin_write(void *v, int num, int 
 static void
 pq3gpio_pin_ctl(void *v, int num, int ctl)
 {
+	struct pq3gpio_group * const gc = v;
+	const u_int mask = 1  (gc-gc_pins[num].pin_num ^ 31);
+uint32_t old, new; 
+  
+old = bus_space_read_4(gc-gc_bst, gc-gc_bsh, GPDIR);
+new = old;
+switch (ctl  (GPIO_PIN_INPUT|GPIO_PIN_OUTPUT)) {
+case GPIO_PIN_OUTPUT:new |= mask; break;
+case GPIO_PIN_INPUT:   new = ~mask; break;
+default:return;
+}
+if (old != new)
+		bus_space_write_4(gc-gc_bst, gc-gc_bsh, GPDIR, new);
 }
 
 static void
@@ -291,19 +305,21 @@ pq3gpio_p20x0_attach(device_t self, bus_
 	bus_space_handle_t bsh, u_int svr)
 {
 	static const uint32_t gpio2pmuxcr_map[][2] = {
-		{ __BIT(10), PMUXCR_TSEC3_TS|PMUXCR_USB },
-		{ __BIT(11), PMUXCR_TSEC3_TS|PMUXCR_USB },
-		{ __BIT(12), PMUXCR_TSEC1_TS },
-		{ __BIT(13), PMUXCR_TSEC1_TS },
-		{ __BIT(14), PMUXCR_TSEC2_TS },
-		{ __BIT(15), PMUXCR_TSEC2_TS },
+		{ __BIT(8), PMUXCR_SDHC_CD },
+		{ __BIT(9), PMUXCR_SDHC_WP },
+		/*
+		 * These are really two bits but the low bit MBZ so we ignore
+		 * it.
+		 */
+		{ __BIT(10), PMUXCR_TSEC3_TS },
+		{ __BIT(11), PMUXCR_TSEC3_TS },
 	};
 	
-	uint32_t pinmask = ~0;	/* assume all bits are valid */
-	size_t pincnt = 32;
+	uint32_t pinmask = 0x;	/* assume all bits are valid */
+	size_t pincnt = 16;
 	const uint32_t pmuxcr = bus_space_read_4(bst, bsh, PMUXCR);
 	for (size_t i = 0; i  __arraycount(gpio2pmuxcr_map); i++) {
-		if (pmuxcr  gpio2pmuxcr_map[i][1]) {
+		if ((pmuxcr  gpio2pmuxcr_map[i][1]) == 0) {
 			pinmask = ~gpio2pmuxcr_map[i][0];
 			pincnt--;
 		}
@@ -312,10 +328,10 @@ pq3gpio_p20x0_attach(device_t self, bus_
 	/*
 	 * Create GPIO pin groups
 	 */
-	aprint_normal_dev(self, %zu input pins, %zu output pins\n,
-	pincnt, pincnt);
-	pq3gpio_group_create(self, bst, bsh, GPINDR, pinmask, GPIO_PIN_INPUT);
-	pq3gpio_group_create(self, bst, bsh, GPOUTDR, pinmask, GPIO_PIN_OUTPUT);
+	aprint_normal_dev(self, %zu input/output pins\n,
+	pincnt);
+	pq3gpio_group_create(self, bst, bsh, GPDAT, pinmask,
+	GPIO_PIN_INPUT|GPIO_PIN_OUTPUT);
 }
 #endif /* P2020 */
 



CVS commit: src/sys/arch/powerpc/conf

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:42:16 UTC 2012

Added Files:
src/sys/arch/powerpc/conf: kern-mb.ldscript

Log Message:
Add ldscript which aligns .data to a 1MB boundary. (used for testing)


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/arch/powerpc/conf/kern-mb.ldscript

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/arch/powerpc/conf/kern-mb.ldscript
diff -u /dev/null src/sys/arch/powerpc/conf/kern-mb.ldscript:1.1
--- /dev/null	Thu Mar 29 15:42:16 2012
+++ src/sys/arch/powerpc/conf/kern-mb.ldscript	Thu Mar 29 15:42:15 2012
@@ -0,0 +1,76 @@
+/* $NetBSD: kern-mb.ldscript,v 1.1 2012/03/29 15:42:15 matt Exp $ */
+
+/*  ldscript for NetBSD/powerpc kernels and LKMs */
+OUTPUT_ARCH(powerpc)
+ENTRY(_start)
+SEARCH_DIR(/lib);
+/* Do we need any of these?
+   __DYNAMIC = 0;*/
+_DYNAMIC_LINK = 0;
+SECTIONS
+{
+  /*  Read-only sections, merged into text segment.  Assumes the
+  kernel Makefile sets the start address via -Ttext.  */
+  .text  :
+  {
+_ftext = . ;
+*(.text)
+__stub_start = .;
+*(.stub)
+__stub_end = .;
+__stub_pmap_start = .;
+*(.stub.pmap)
+__stub_pmap_end = .;
+*(.gnu.warning)
+  } =0
+  _etext = .;
+  PROVIDE (etext = .);
+  .rodata: { *(.rodata) *(.rodata.*) }
+  .reginfo : { *(.reginfo) }
+  . = ALIGN(0x10);
+  .data:
+  {
+_fdata = . ;
+*(.data)
+CONSTRUCTORS
+  }
+  .data1			: { *(.data1) }
+  . = ALIGN(32);	/* COHERENCY UNIT */
+  .data.cacheline_aligned	: { *(.data.cacheline_aligned) }
+  . = ALIGN(32);	/* COHERENCY UNIT */
+  .data.read_mostly		: { *(.data.read_mostly) }
+  . = ALIGN(32);	/* COHERENCY UNIT */
+  _gp = ALIGN(16) + 0x7ff0;
+  .lit8 : { *(.lit8) }
+  .lit4 : { *(.lit4) }
+  .sdata : { *(.sdata) }
+  _edata  =  .;
+  PROVIDE (edata = .);
+  __bss_start = .;
+  _fbss = .;
+  .sbss  : { *(.sbss) *(.scommon) }
+  .bss   :
+  {
+   *(.bss)
+   *(COMMON)
+  }
+  _end = . ;
+  PROVIDE (end = .);
+  /* These are needed for ELF backends which have not yet been
+ converted to the new style linker.  */
+  .stab 0 : { *(.stab) }
+  .stabstr 0 : { *(.stabstr) }
+  /* DWARF debug sections.
+ Symbols in the .debug DWARF section are relative to the beginning of the
+ section so we begin .debug at 0.  It's not clear yet what needs to happen
+ for the others.   */
+  .debug  0 : { *(.debug) }
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
+  .debug_aranges  0 : { *(.debug_aranges) }
+  .debug_pubnames 0 : { *(.debug_pubnames) }
+  .debug_sfnames  0 : { *(.debug_sfnames) }
+  .line   0 : { *(.line) }
+  /* These must appear regardless of  .  */
+  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
+  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
+}



CVS commit: src/sys/arch/powerpc/conf

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:42:59 UTC 2012

Modified Files:
src/sys/arch/powerpc/conf: files.powerpc

Log Message:
Add PMAP_MINIMALTLB defflag


To generate a diff of this commit:
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/powerpc/conf/files.powerpc

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/powerpc/conf/files.powerpc
diff -u src/sys/arch/powerpc/conf/files.powerpc:1.82 src/sys/arch/powerpc/conf/files.powerpc:1.83
--- src/sys/arch/powerpc/conf/files.powerpc:1.82	Wed Jun 29 06:02:43 2011
+++ src/sys/arch/powerpc/conf/files.powerpc	Thu Mar 29 15:42:59 2012
@@ -1,10 +1,10 @@
-#	$NetBSD: files.powerpc,v 1.82 2011/06/29 06:02:43 matt Exp $
+#	$NetBSD: files.powerpc,v 1.83 2012/03/29 15:42:59 matt Exp $
 
 defflag	opt_altivec.h	ALTIVEC K_ALTIVEC PPC_HAVE_SPE
 defflag	opt_openpic.h	OPENPIC OPENPIC_SERIAL_MODE OPENPIC_DISTRIBUTE
 defparam opt_ppcparam.h	L2CR_CONFIG L3CR_CONFIG INTSTK CLOCKBASE VERBOSE_INITPPC
 defflag	opt_ppcarch.h	PPC_OEA PPC_OEA601 PPC_OEA64 PPC_OEA64_BRIDGE PPC_MPC8XX PPC_IBM4XX PPC_IBM403 PPC_BOOKE
-defflag opt_pmap.h	PMAPDEBUG PMAPCHECK PMAPCOUNTERS
+defflag opt_pmap.h	PMAPDEBUG PMAPCHECK PMAPCOUNTERS PMAP_MINIMALTLB
 defparam opt_pmap.h	PTEGCOUNT PMAP_MEMLIMIT
 
 file	arch/powerpc/powerpc/copystr.c



CVS commit: src/sys/arch/powerpc/include/booke

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:44:40 UTC 2012

Modified Files:
src/sys/arch/powerpc/include/booke: pmap.h

Log Message:
Add vsize_t to pmap_md_{un,}map_poolpage.
Add pmap_kvptefill prototype.
Slightly change pmap_bootstrap prototype.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/powerpc/include/booke/pmap.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/powerpc/include/booke/pmap.h
diff -u src/sys/arch/powerpc/include/booke/pmap.h:1.8 src/sys/arch/powerpc/include/booke/pmap.h:1.9
--- src/sys/arch/powerpc/include/booke/pmap.h:1.8	Thu Jun 30 00:52:59 2011
+++ src/sys/arch/powerpc/include/booke/pmap.h	Thu Mar 29 15:44:40 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.8 2011/06/30 00:52:59 matt Exp $	*/
+/*	$NetBSD: pmap.h,v 1.9 2012/03/29 15:44:40 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -44,6 +44,10 @@
 #error this file should not be included by loadable kernel modules
 #endif
 
+#ifdef _KERNEL_OPT
+#include opt_pmap.h
+#endif
+
 #include sys/cpu.h
 #include sys/kcore.h
 #include uvm/uvm_page.h
@@ -77,7 +81,8 @@ void	pmap_procwr(struct proc *, vaddr_t,
 #ifdef __PMAP_PRIVATE
 struct vm_page *
 	pmap_md_alloc_poolpage(int flags);
-vaddr_t	pmap_md_map_poolpage(paddr_t);
+vaddr_t	pmap_md_map_poolpage(paddr_t, vsize_t);
+void	pmap_md_unmap_poolpage(vaddr_t, vsize_t);
 bool	pmap_md_direct_mapped_vaddr_p(vaddr_t);
 bool	pmap_md_io_vaddr_p(vaddr_t);
 paddr_t	pmap_md_direct_mapped_vaddr_to_paddr(vaddr_t);
@@ -85,10 +90,14 @@ vaddr_t	pmap_md_direct_map_paddr(paddr_t
 void	pmap_md_init(void);
 
 bool	pmap_md_tlb_check_entry(void *, vaddr_t, tlb_asid_t, pt_entry_t);
+
+#ifdef PMAP_MINIMALTLB
+vaddr_t	pmap_kvptefill(vaddr_t, vaddr_t, pt_entry_t);
+#endif
 #endif
 
 void	pmap_md_page_syncicache(struct vm_page *, __cpuset_t);
-void	pmap_bootstrap(vaddr_t, vaddr_t, const phys_ram_seg_t *, size_t);
+vaddr_t	pmap_bootstrap(vaddr_t, vaddr_t, phys_ram_seg_t *, size_t);
 bool	pmap_extract(struct pmap *, vaddr_t, paddr_t *);
 
 static inline paddr_t vtophys(vaddr_t);



CVS commit: src/sys/arch/powerpc/include/booke

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:45:06 UTC 2012

Modified Files:
src/sys/arch/powerpc/include/booke: e500var.h

Log Message:
Add e500_tlb_minimize prototype.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/powerpc/include/booke/e500var.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/powerpc/include/booke/e500var.h
diff -u src/sys/arch/powerpc/include/booke/e500var.h:1.4 src/sys/arch/powerpc/include/booke/e500var.h:1.5
--- src/sys/arch/powerpc/include/booke/e500var.h:1.4	Wed Jun 29 06:01:33 2011
+++ src/sys/arch/powerpc/include/booke/e500var.h	Thu Mar 29 15:45:06 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: e500var.h,v 1.4 2011/06/29 06:01:33 matt Exp $	*/
+/*	$NetBSD: e500var.h,v 1.5 2012/03/29 15:45:06 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -55,6 +55,7 @@ void	e500_device_register(device_t, void
 int	e500_clock_intr(void *);
 void	e500_cpu_start(void);
 void	e500_tlb_init(vaddr_t, psize_t);
+void	e500_tlb_minimize(vaddr_t);
 bool	e500_device_disabled_p(uint32_t);
 
 struct e500_truthtab {



CVS commit: src/sys/arch/powerpc/booke

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:48:20 UTC 2012

Modified Files:
src/sys/arch/powerpc/booke: booke_pmap.c e500_tlb.c

Log Message:
Add support PMAP_MINIMALTLB option.  This changes the default use of TLB1
entries to map all of physical memory to using two TLB1 entries, one for
mapping text and one for data.  The rest of memory is mapped using the
page table which is updated as needed.  This is used to trap memory
corruption issues.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/powerpc/booke/booke_pmap.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/powerpc/booke/e500_tlb.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/powerpc/booke/booke_pmap.c
diff -u src/sys/arch/powerpc/booke/booke_pmap.c:1.12 src/sys/arch/powerpc/booke/booke_pmap.c:1.13
--- src/sys/arch/powerpc/booke/booke_pmap.c:1.12	Thu Feb  2 18:59:44 2012
+++ src/sys/arch/powerpc/booke/booke_pmap.c	Thu Mar 29 15:48:20 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: booke_pmap.c,v 1.12 2012/02/02 18:59:44 para Exp $	*/
+/*	$NetBSD: booke_pmap.c,v 1.13 2012/03/29 15:48:20 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -38,7 +38,7 @@
 
 #include sys/cdefs.h
 
-__KERNEL_RCSID(0, $NetBSD: booke_pmap.c,v 1.12 2012/02/02 18:59:44 para Exp $);
+__KERNEL_RCSID(0, $NetBSD: booke_pmap.c,v 1.13 2012/03/29 15:48:20 matt Exp $);
 
 #include sys/param.h
 #include sys/kcore.h
@@ -59,6 +59,8 @@ __KERNEL_RCSID(0, $NetBSD: booke_pmap.c
 
 CTASSERT(sizeof(struct pmap_segtab) == NBPG);
 
+struct pmap_segtab pmap_kernel_segtab;
+
 void
 pmap_procwr(struct proc *p, vaddr_t va, size_t len)
 {
@@ -120,30 +122,46 @@ pmap_md_direct_mapped_vaddr_to_paddr(vad
 	return (paddr_t) va;
 }
 
+#ifdef PMAP_MINIMALTLB
+static pt_entry_t *
+kvtopte(const struct pmap_segtab *stp, vaddr_t va)
+{
+	pt_entry_t * const ptep = stp-seg_tab[va  SEGSHIFT];
+	if (ptep == NULL)
+		return NULL;
+	return ptep[(va  SEGOFSET)  PAGE_SHIFT];
+}
+
+vaddr_t
+pmap_kvptefill(vaddr_t sva, vaddr_t eva, pt_entry_t pt_entry)
+{
+	const struct pmap_segtab * const stp = pmap_kernel()-pm_segtab;
+	KASSERT(sva == trunc_page(sva));
+	pt_entry_t *ptep = kvtopte(stp, sva);
+	for (; sva  eva; sva += NBPG) {
+		*ptep++ = pt_entry ? (sva | pt_entry) : 0;
+	}
+	return sva;
+}
+#endif
+
 /*
  *	Bootstrap the system enough to run with virtual memory.
  *	firstaddr is the first unused kseg0 address (not page aligned).
  */
-void
+vaddr_t
 pmap_bootstrap(vaddr_t startkernel, vaddr_t endkernel,
-	const phys_ram_seg_t *avail, size_t cnt)
+	phys_ram_seg_t *avail, size_t cnt)
 {
-	for (size_t i = 0; i  cnt; i++) {
-		printf( uvm_page_physload(%#lx,%#lx,%#lx,%#lx,%d),
-		atop(avail[i].start),
-		atop(avail[i].start + avail[i].size) - 1,
-		atop(avail[i].start),
-		atop(avail[i].start + avail[i].size) - 1,
-		VM_FREELIST_DEFAULT);
-		uvm_page_physload(
-		atop(avail[i].start),
-		atop(avail[i].start + avail[i].size) - 1,
-		atop(avail[i].start),
-		atop(avail[i].start + avail[i].size) - 1,
-		VM_FREELIST_DEFAULT);
-	}
+	struct pmap_segtab * const stp = pmap_kernel_segtab;
+
+	/*
+	 * Initialize the kernel segment table.
+	 */
+	pmap_kernel()-pm_segtab = stp;
+	curcpu()-ci_pmap_kern_segtab = stp;
 
-	pmap_tlb_info_init(pmap_tlb0_info);		/* init the lock */
+	KASSERT(endkernel == trunc_page(endkernel));
 
 	/*
 	 * Compute the number of pages kmem_arena will have.
@@ -160,7 +178,7 @@ pmap_bootstrap(vaddr_t startkernel, vadd
 	vsize_t bufsz = buf_memcalc();
 	buf_setvalimit(bufsz);
 
-	vsize_t nsegtabs = pmap_round_seg(VM_PHYS_SIZE
+	vsize_t kv_nsegtabs = pmap_round_seg(VM_PHYS_SIZE
 	+ (ubc_nwins  ubc_winshift)
 	+ bufsz
 	+ 16 * NCARGS
@@ -169,7 +187,7 @@ pmap_bootstrap(vaddr_t startkernel, vadd
 #ifdef SYSVSHM
 	+ NBPG * shminfo.shmall
 #endif
-	+ NBPG * nkmempages);
+	+ NBPG * nkmempages)  SEGSHIFT;
 
 	/*
 	 * Initialize `FYI' variables.	Note we're relying on
@@ -179,68 +197,100 @@ pmap_bootstrap(vaddr_t startkernel, vadd
 	 */
 	pmap_limits.avail_start = vm_physmem[0].start  PGSHIFT;
 	pmap_limits.avail_end = vm_physmem[vm_nphysseg - 1].end  PGSHIFT;
-	const vsize_t max_nsegtabs =
+	const size_t max_nsegtabs =
 	(pmap_round_seg(VM_MAX_KERNEL_ADDRESS)
 		- pmap_trunc_seg(VM_MIN_KERNEL_ADDRESS)) / NBSEG;
-	if (nsegtabs = max_nsegtabs) {
+	if (kv_nsegtabs = max_nsegtabs) {
 		pmap_limits.virtual_end = VM_MAX_KERNEL_ADDRESS;
-		nsegtabs = max_nsegtabs;
+		kv_nsegtabs = max_nsegtabs;
 	} else {
 		pmap_limits.virtual_end = VM_MIN_KERNEL_ADDRESS
-		+ nsegtabs * NBSEG;
+		+ kv_nsegtabs * NBSEG;
 	}
 
-	pmap_pvlist_lock_init(curcpu()-ci_ci.dcache_line_size);
-
 	/*
 	 * Now actually allocate the kernel PTE array (must be done
 	 * after virtual_end is initialized).
 	 */
-	vaddr_t segtabs =
-	uvm_pageboot_alloc(NBPG * nsegtabs + sizeof(struct 

CVS commit: src/sys/arch/evbppc/mpc85xx

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Thu Mar 29 15:49:08 UTC 2012

Modified Files:
src/sys/arch/evbppc/mpc85xx: machdep.c

Log Message:
Add support for PMAP_MINIMALTLB.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/evbppc/mpc85xx/machdep.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/evbppc/mpc85xx/machdep.c
diff -u src/sys/arch/evbppc/mpc85xx/machdep.c:1.22 src/sys/arch/evbppc/mpc85xx/machdep.c:1.23
--- src/sys/arch/evbppc/mpc85xx/machdep.c:1.22	Fri Jan 27 18:52:54 2012
+++ src/sys/arch/evbppc/mpc85xx/machdep.c	Thu Mar 29 15:49:08 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.22 2012/01/27 18:52:54 para Exp $	*/
+/*	$NetBSD: machdep.c,v 1.23 2012/03/29 15:49:08 matt Exp $	*/
 /*-
  * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -1126,44 +1126,20 @@ initppc(vaddr_t startkernel, vaddr_t end
 	/*
 	 * Initialize the pmap.
 	 */
-	pmap_bootstrap(startkernel, endkernel, availmemr, nmemr);
+	endkernel = pmap_bootstrap(startkernel, endkernel, availmemr, nmemr);
 
 	/*
 	 * Let's take all the indirect calls via our stubs and patch 
 	 * them to be direct calls.
 	 */
 	cpu_fixup_stubs();
-#if 0
+
 	/*
 	 * As a debug measure we can change the TLB entry that maps all of
 	 * memory to one that encompasses the 64KB with the kernel vectors.
 	 * All other pages will be soft faulted into the TLB as needed.
 	 */
-	const uint32_t saved_mas0 = mfspr(SPR_MAS0);
-	mtspr(SPR_MAS6, 0);
-	__asm volatile(tlbsx\t0, %0 :: b(startkernel));
-	uint32_t mas0 = mfspr(SPR_MAS0);
-	uint32_t mas1 = mfspr(SPR_MAS1);
-	uint32_t mas2 = mfspr(SPR_MAS2);
-	uint32_t mas3 = mfspr(SPR_MAS3);
-	KASSERT(mas3  MAS3_SW);
-	KASSERT(mas3  MAS3_SR);
-	KASSERT(mas3  MAS3_SX);
-	mas1 = (mas1  ~MAS1_TSIZE) | MASX_TSIZE_64KB;
-	pt_entry_t xpn_mask = ~0  (10 + 2 * MASX_TSIZE_GET(mas1));
-	mas2 = (mas2  ~(MAS2_EPN)) | (startkernel  xpn_mask);
-	mas3 = (mas3  ~(MAS3_RPN|MAS3_SW)) | (startkernel  xpn_mask);
-	printf( %#lx=%#x,%#x,%#x,%#x, startkernel, mas0, mas1, mas2, mas3);
-#if 1
-	mtspr(SPR_MAS1, mas1);
-	mtspr(SPR_MAS2, mas2);
-	mtspr(SPR_MAS3, mas3);
-	extern void tlbwe(void);
-	tlbwe();
-	mtspr(SPR_MAS0, saved_mas0);
-	printf((ok));
-#endif
-#endif
+	e500_tlb_minimize(endkernel);
 
 	/*
 	 * Set some more MD helpers



CVS commit: src/compat

2012-03-29 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Thu Mar 29 18:35:11 UTC 2012

Modified Files:
src/compat: README

Log Message:
Fix typos; wording.

From patch by Bug Hunting.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/compat/README

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/compat/README
diff -u src/compat/README:1.7 src/compat/README:1.8
--- src/compat/README:1.7	Sun Apr 17 01:29:06 2011
+++ src/compat/README	Thu Mar 29 18:35:11 2012
@@ -1,7 +1,7 @@
-$NetBSD: README,v 1.7 2011/04/17 01:29:06 mrg Exp $
+$NetBSD: README,v 1.8 2012/03/29 18:35:11 wiz Exp $
 
 
-Building multi- ABI libraries for NetBSD platforms.
+Building multi-ABI libraries for NetBSD platforms.
 
 
 src/compat has a framework to (re)build the libraries shipped with
@@ -15,11 +15,11 @@ The basic premise is to re-set $MAKEOBJD
 underneath src/compat and rebuild the libraries with a different set
 of options.  Each platform wanting support should create their port
 subdirectory directly in src/compat, and then one subdirectory in here
-for each ABI required.  e.g., src/compat/amd64/i386 is where we build
+for each ABI required, e.g., src/compat/amd64/i386 is where we build
 the 32-bit compat libraries for the amd64 port.  In each of these
-subdirs, a small Makefile and makefile fragment should exist.  The
+subdirectories, a small Makefile and makefile fragment should exist.  The
 Makefile should set BSD_MK_COMPAT_FILE to equal the fragment, and then
-include ../../compatsubdir.mk  Eg, amd64/i386/Makefile has:
+include ../../compatsubdir.mk.  E.g., amd64/i386/Makefile has:
 
 	BSD_MK_COMPAT_FILE=${.CURDIR}/bsd.i386.mk
 
@@ -60,7 +60,7 @@ ld.elf_so) to build with this ABI.
 archdirs.mk holds the list of subdirectories for each port.
 
 Makefile.compat has the basic framework to force the right paths for
-library and ld.elf_so linkage.  It contains a hack to create subdirs
+library and ld.elf_so linkage.  It contains a hack to create subdirectories
 in the build that should be fixed.
 
 dirshack/Makefile is a hack to get objdirs created timely, and should



CVS commit: src/share/man/man7

2012-03-29 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Thu Mar 29 18:37:22 UTC 2012

Modified Files:
src/share/man/man7: hostname.7

Log Message:
Replace references to resolver(5) with ones to resolv.conf(5).

From patch by Bug Hunting.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/share/man/man7/hostname.7

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/man/man7/hostname.7
diff -u src/share/man/man7/hostname.7:1.12 src/share/man/man7/hostname.7:1.13
--- src/share/man/man7/hostname.7:1.12	Thu Mar 22 07:58:18 2012
+++ src/share/man/man7/hostname.7	Thu Mar 29 18:37:21 2012
@@ -1,4 +1,4 @@
-.\ $NetBSD: hostname.7,v 1.12 2012/03/22 07:58:18 wiz Exp $
+.\ $NetBSD: hostname.7,v 1.13 2012/03/29 18:37:21 wiz Exp $
 .\
 .\ Copyright (c) 2004 by Internet Systems Consortium, Inc. (ISC)
 .\
@@ -156,7 +156,7 @@ and
 options are present in the resolver configuration file, then only the
 .Em last
 one listed is used (see
-.Xr resolver 5 ) .
+.Xr resolv.conf 5 ) .
 .Pp
 If the name was not previously tried
 .Dq as-is
@@ -177,9 +177,9 @@ pairs.
 .Bl -tag -width /etc/resolv.conf   -compact
 .It Pa /etc/resolv.conf
 See
-.Xr resolver 5 .
+.Xr resolv.conf 5 .
 .El
 .Sh SEE ALSO
 .Xr gethostbyname 3 ,
-.Xr resolver 5 ,
+.Xr resolv.conf 5 ,
 .Xr mailaddr 7



CVS commit: src/lib/libc/arch/mips/gen

2012-03-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Mar 29 19:26:21 UTC 2012

Modified Files:
src/lib/libc/arch/mips/gen: cacheflush.c

Log Message:
fix lint, should nbytes be changed to size_t to match with the struct passed?


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/arch/mips/gen/cacheflush.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/mips/gen/cacheflush.c
diff -u src/lib/libc/arch/mips/gen/cacheflush.c:1.4 src/lib/libc/arch/mips/gen/cacheflush.c:1.5
--- src/lib/libc/arch/mips/gen/cacheflush.c:1.4	Mon Apr 28 16:22:56 2008
+++ src/lib/libc/arch/mips/gen/cacheflush.c	Thu Mar 29 15:26:21 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: cacheflush.c,v 1.4 2008/04/28 20:22:56 martin Exp $ */
+/* $NetBSD: cacheflush.c,v 1.5 2012/03/29 19:26:21 christos Exp $ */
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -34,14 +34,12 @@
 #include mips/sysarch.h
 
 int
-_cacheflush(addr, nbytes, whichcache)
-	void * addr;
-	int nbytes, whichcache;
+_cacheflush(void *addr, int nbytes, int whichcache)
 {
 	struct mips_cacheflush_args cfa;
 
-	cfa.va = (vaddr_t) addr;
+	cfa.va = (vaddr_t)(intptr_t)addr;
 	cfa.nbytes = nbytes;
 	cfa.whichcache = whichcache;
-	return (sysarch(MIPS_CACHEFLUSH, (void *)cfa));
+	return sysarch(MIPS_CACHEFLUSH, (void *)cfa);
 }



CVS commit: src/lib/libc/arch/mips/gen

2012-03-29 Thread Christos Zoulas
Module Name:src
Committed By:   christos
Date:   Thu Mar 29 19:27:05 UTC 2012

Modified Files:
src/lib/libc/arch/mips/gen: longjmp.c

Log Message:
make constant explicitly unsigned


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/arch/mips/gen/longjmp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/mips/gen/longjmp.c
diff -u src/lib/libc/arch/mips/gen/longjmp.c:1.4 src/lib/libc/arch/mips/gen/longjmp.c:1.5
--- src/lib/libc/arch/mips/gen/longjmp.c:1.4	Fri Sep  3 13:22:51 2010
+++ src/lib/libc/arch/mips/gen/longjmp.c	Thu Mar 29 15:27:05 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: longjmp.c,v 1.4 2010/09/03 17:22:51 matt Exp $	*/
+/*	$NetBSD: longjmp.c,v 1.5 2012/03/29 19:27:05 christos Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@ __longjmp14(jmp_buf env, int val)
 	ucontext_t uc;
 
 	/* Ensure non-zero SP and sigcontext magic number is present */
-	if (sc-sc_regs[_R_SP] == 0 || sc-sc_regs[_R_ZERO] != (mips_reg_t)0xACEDBADE)
+	if (sc-sc_regs[_R_SP] == 0 || sc-sc_regs[_R_ZERO] != (mips_reg_t)0xACEDBADEU)
 		goto err;
 
 	/* Ensure non-zero return value */



CVS commit: src/sys/arch/hppa/hppa

2012-03-29 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Thu Mar 29 20:31:49 UTC 2012

Modified Files:
src/sys/arch/hppa/hppa: db_machdep.c

Log Message:
Use PSW_BITS to decode the bits of the PSW in db_dump_trap


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/hppa/hppa/db_machdep.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/hppa/hppa/db_machdep.c
diff -u src/sys/arch/hppa/hppa/db_machdep.c:1.5 src/sys/arch/hppa/hppa/db_machdep.c:1.6
--- src/sys/arch/hppa/hppa/db_machdep.c:1.5	Wed Jan 18 09:35:48 2012
+++ src/sys/arch/hppa/hppa/db_machdep.c	Thu Mar 29 20:31:49 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: db_machdep.c,v 1.5 2012/01/18 09:35:48 skrll Exp $	*/
+/*	$NetBSD: db_machdep.c,v 1.6 2012/03/29 20:31:49 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: db_machdep.c,v 1.5 2012/01/18 09:35:48 skrll Exp $);
+__KERNEL_RCSID(0, $NetBSD: db_machdep.c,v 1.6 2012/03/29 20:31:49 skrll Exp $);
 
 #include sys/param.h
 #include sys/lwp.h
@@ -130,6 +130,7 @@ db_dump_trap(db_expr_t addr, bool have_a
 	const char *cp = modif;
 	bool lwpaddr = false;
 	char c;
+	char buf[64];
 
 	tf = DDB_REGS;
 	while ((c = *cp++) != 0) {
@@ -186,7 +187,9 @@ db_dump_trap(db_expr_t addr, bool have_a
 	db_printf(\n);
 	db_printf(Other state\n);
 	db_printf(eiem:   %08x\n, tf-tf_eiem);
-	db_printf(ipsw:   %08x\n, tf-tf_ipsw);
+	
+	snprintb(buf, sizeof(buf), PSW_BITS, tf-tf_ipsw);
+	db_printf(ipsw:   %s\n, buf);
 	db_printf(flags:  %08x\n, tf-tf_flags);
 	db_printf(sar:%08x\n, tf-tf_sar);
 	db_printf(pidr1:  %08x\n, tf-tf_pidr1);	/* cr8 */



CVS commit: src/sys/arch/hppa/include

2012-03-29 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Thu Mar 29 21:44:10 UTC 2012

Modified Files:
src/sys/arch/hppa/include: psl.h

Log Message:
Remove unnecessary #include


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/hppa/include/psl.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/hppa/include/psl.h
diff -u src/sys/arch/hppa/include/psl.h:1.7 src/sys/arch/hppa/include/psl.h:1.8
--- src/sys/arch/hppa/include/psl.h:1.7	Tue Nov  3 05:07:26 2009
+++ src/sys/arch/hppa/include/psl.h	Thu Mar 29 21:44:10 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: psl.h,v 1.7 2009/11/03 05:07:26 snj Exp $	*/
+/*	$NetBSD: psl.h,v 1.8 2012/03/29 21:44:10 skrll Exp $	*/
 
 /*	$OpenBSD: psl.h,v 1.6 1999/11/25 18:29:01 mickey Exp $	*/
 
@@ -106,8 +106,4 @@
 #define PSW_MBS		(PSW_C | PSW_Q | PSW_P | PSW_D | PSW_I)
 #define PSW_MBZ		(PSW_Y | PSW_Z | PSW_S | PSW_X | PSW_M | PSW_R)
 
-#ifdef _KERNEL
-#include machine/intr.h
-#endif
-
 #endif  /* _HPPA_PSL_H_ */



CVS commit: [matt-nb5-mips64] src/sys/arch/mips/rmi

2012-03-29 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Fri Mar 30 01:04:48 UTC 2012

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

Log Message:
Deal with station ids without names (not all XLS have all stations).


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.11 -r1.1.2.12 src/sys/arch/mips/rmi/rmixl_fmn.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_fmn.c
diff -u src/sys/arch/mips/rmi/rmixl_fmn.c:1.1.2.11 src/sys/arch/mips/rmi/rmixl_fmn.c:1.1.2.12
--- src/sys/arch/mips/rmi/rmixl_fmn.c:1.1.2.11	Thu Jan 19 10:29:34 2012
+++ src/sys/arch/mips/rmi/rmixl_fmn.c	Fri Mar 30 01:04:47 2012
@@ -790,8 +790,10 @@ rmixl_fmn_cpu_attach(struct cpu_info *ci
 	KASSERT(xname != NULL);
 
 	for (size_t i = 1; i  fmn_info.fmn_nstid; i++) {
-		evcnt_attach_dynamic(sc-sc_fmn_stid_evcnts[i],
-		EVCNT_TYPE_MISC, NULL, xname, fmn_stid_ev_names[i]);
+		if (fmn_stid_ev_names[i][0] != '\0') {
+			evcnt_attach_dynamic(sc-sc_fmn_stid_evcnts[i],
+			EVCNT_TYPE_MISC, NULL, xname, fmn_stid_ev_names[i]);
+		}
 	}
 
 	for (size_t i = 0; i  fmn_info.fmn_nbucket; i++) {
@@ -811,9 +813,11 @@ rmixl_fmn_init_thread(void)
 
 	KASSERT(fmn-fmn_stinfo[0].si_name == NULL);
 	for (size_t i = 1; i  fmn_info.fmn_nstid; i++) {
-		KASSERT(fmn-fmn_stinfo[i].si_name != NULL);
-		snprintf(fmn_stid_ev_names[i], sizeof(fmn_stid_ev_names[i]),
-		fmn %s rx msgs, fmn-fmn_stinfo[i].si_name);
+		if (fmn-fmn_stinfo[i].si_name != NULL) {
+			snprintf(fmn_stid_ev_names[i],
+			sizeof(fmn_stid_ev_names[i]),
+			fmn %s rx msgs, fmn-fmn_stinfo[i].si_name);
+		}
 	}
 
 	if (CPU_IS_PRIMARY(ci)) {