Module Name:    src
Committed By:   skrll
Date:           Mon Jan  2 16:13:13 UTC 2012

Modified Files:
        src/sys/arch/hp700/hp700: locore.S machdep.c
        src/sys/arch/hppa/hppa: trap.S

Log Message:
>From OpenBSD...

Fix encoding of DIAG instructions in the MFCPU_T and MTCPU_T macros. MTCPU_T
was encoded as a read instruction, while MFCPU_T was encoded as a
read-through-TH instruction, although the only uses of it concern registers
read through CH.

(You are not supposed to understand this, this is a dark corner of undocumented
rotten PA-RISC bowels).

Cache SID hashing will now correctly be disabled on PCXS, PCXT and PCXT'
processors.

Proper encoding from the old PA-RISC mklinux sources; tested on 720 (PCXS)
and 715/75 (PCXT); ok kettenis@


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/arch/hp700/hp700/locore.S
cvs rdiff -u -r1.102 -r1.103 src/sys/arch/hp700/hp700/machdep.c
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/hppa/hppa/trap.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/hp700/hp700/locore.S
diff -u src/sys/arch/hp700/hp700/locore.S:1.56 src/sys/arch/hp700/hp700/locore.S:1.57
--- src/sys/arch/hp700/hp700/locore.S:1.56	Mon Dec 19 10:56:59 2011
+++ src/sys/arch/hp700/hp700/locore.S	Mon Jan  2 16:13:12 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.56 2011/12/19 10:56:59 skrll Exp $	*/
+/*	$NetBSD: locore.S,v 1.57 2012/01/02 16:13:12 skrll Exp $	*/
 /*	$OpenBSD: locore.S,v 1.158 2008/07/28 19:08:46 miod Exp $	*/
 
 /*
@@ -135,8 +135,8 @@
 
 #define	DR_PAGE0	.word	0x14001200
 #define	DR_PAGE1	.word	0x14001240
-#define	MTCPU_T(x,t)	.word	0x14001400 | ((t) << 21) | ((x) << 16)
-#define	MFCPU_T(r,x)	.word	0x14001400 | ((r) << 21) | (x)
+#define	MTCPU_T(x,t)	.word	0x14001600 | ((t) << 21) | ((x) << 16)
+#define	MFCPU_T(r,x)	.word	0x14001a00 | ((r) << 21) | ((x) << 16)
 #define	MTCPU_C(x,t)	.word	0x14000240 | ((t) << 21) | ((x) << 16)
 #define	MFCPU_C(r,x)	.word	0x14000600 | ((r) << 21) | ((x) << 16)
 #define	MFCPU_U(r,x)	.word	0x140008a0 | ((r) << 21) | ((x))

Index: src/sys/arch/hp700/hp700/machdep.c
diff -u src/sys/arch/hp700/hp700/machdep.c:1.102 src/sys/arch/hp700/hp700/machdep.c:1.103
--- src/sys/arch/hp700/hp700/machdep.c:1.102	Mon Dec 12 19:03:09 2011
+++ src/sys/arch/hp700/hp700/machdep.c	Mon Jan  2 16:13:12 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.102 2011/12/12 19:03:09 mrg Exp $	*/
+/*	$NetBSD: machdep.c,v 1.103 2012/01/02 16:13:12 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.102 2011/12/12 19:03:09 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.103 2012/01/02 16:13:12 skrll Exp $");
 
 #include "opt_cputype.h"
 #include "opt_ddb.h"
@@ -330,8 +330,8 @@ const struct hppa_cpu_info cpu_types[] =
 	{ "PA7000", NULL, "PCXS",
 	  hpcxs,  0,
 	  0, "1.1a",
-	  desidhash_s, itlb_x, dtlb_x, itlbna_x, dtlbna_x, tlbd_x,
-	  ibtlb_g, NULL, pbtlb_g }, /* XXXNH check */
+	  desidhash_s, itlb_s, dtlb_s, itlbna_s, dtlbna_s, tlbd_s,
+	  ibtlb_g, NULL, pbtlb_g },
 #endif
 #ifdef HP7100_CPU
 	{ "PA7100", "T-Bird", "PCXT",

Index: src/sys/arch/hppa/hppa/trap.S
diff -u src/sys/arch/hppa/hppa/trap.S:1.60 src/sys/arch/hppa/hppa/trap.S:1.61
--- src/sys/arch/hppa/hppa/trap.S:1.60	Mon Feb 28 21:22:35 2011
+++ src/sys/arch/hppa/hppa/trap.S	Mon Jan  2 16:13:12 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.S,v 1.60 2011/02/28 21:22:35 skrll Exp $	*/
+/*	$NetBSD: trap.S,v 1.61 2012/01/02 16:13:12 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -1743,7 +1743,7 @@ EXIT(TLABEL(dtlb_u))
 	.level	1.1
 #endif /* HP8000_CPU */
 
-#if defined(HP7000_CPU) || defined(HP7100_CPU)
+#if defined(HP7000_CPU)
 /*
  * int desidhash_s(void)
  * int desidhash_x(void)
@@ -1767,7 +1767,7 @@ ALTENTRY(desidhash_x)
 	bv	0(%rp)
 	extru	%t1, 4, 5, %ret0	/* return chip revision */
 EXIT(desidhash_s)
-#endif /* defined(HP7000_CPU) || defined(HP7100_CPU) */
+#endif /* defined(HP7000_CPU) */
 
 #if defined(HP7100_CPU) || defined(HP7200_CPU)
 /*

Reply via email to