r1341 - in trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian: . patches

Sven Luther luther@haydn.debian.org
Thu, 26 Aug 2004 03:30:13 -0600


Author: luther
Date: 2004-08-26 03:30:08 -0600 (Thu, 26 Aug 2004)
New Revision: 1341

Added:
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/powerpc-g4-errata.dpatch
Modified:
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/00list-4
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/drivers-macintosh-adb-trackpad.dpatch
Log:
corrected patch author and status data for the drivers-macintosh-adb-trackpad patch.
Added a new g4 errata patch which clears the BTIC bit, instead of just clearing it.


Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2004-08-26 09:13:43 UTC (rev 1340)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2004-08-26 09:30:08 UTC (rev 1341)
@@ -7,8 +7,11 @@
     that were mentioned in the list from 2.6.9-rc1 but missing from the
     corresponding header files (closes: #268128) (Jens Schmalzing).
 
- -- Jens Schmalzing <jensen@debian.org>  Thu, 26 Aug 2004 11:07:55 +0200
+  * Added a new g4-errata patch which forcibly clears the BTIC bit in case it
+    was set by the firmware (Sven Luther).
 
+ -- Sven Luther <luther@debian.org>  Thu, 26 Aug 2004 11:28:05 +0200
+
 kernel-source-2.6.8 (2.6.8-3) unstable; urgency=high
 
   * Suggest libqt3-dev for xconfig (closes: #261784) (Andres Salomon).

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/00list-4
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/00list-4	2004-08-26 09:13:43 UTC (rev 1340)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/00list-4	2004-08-26 09:30:08 UTC (rev 1341)
@@ -23,6 +23,7 @@
 marvell-pegasos-2
 powerpc-pegasos
 powerpc-g4-l2-flush-errata
+powerpc-g4-errata
 nfs-fix
 SG_IO-safe-commands-2
 ia64-generic-no-smp

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/drivers-macintosh-adb-trackpad.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/drivers-macintosh-adb-trackpad.dpatch	2004-08-26 09:13:43 UTC (rev 1340)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/drivers-macintosh-adb-trackpad.dpatch	2004-08-26 09:30:08 UTC (rev 1341)
@@ -2,13 +2,8 @@
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Description: disable spurious 2nd mouse event for apple trackpads.
-## DP: Patch author: Alex Clausen
-## DP: Upstream status: reviewed by benh, will be submitted upstream.
-## DP: Please - it's a one-line patch that can definitely be applied since there
-## DP: wasn't ever any Apple with more than one mouse button, much less with a
-## DP: trackpad sporting multiple buttons. Did I forget to mention there wasn't
-## DP: any use of ADB outside of Apple hardware?s
-## DP: Michael Schmitz <schmitz@opal.biophys.uni-duesseldorf.de>
+## DP: Patch author: Alexander Clausen <alex@skip86.com>
+## DP: Upstream status: reviewed and submitted by benh.
 
 . $(dirname $0)/DPATCH
 

Added: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/powerpc-g4-errata.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/powerpc-g4-errata.dpatch	2004-08-26 09:13:43 UTC (rev 1340)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/powerpc-g4-errata.dpatch	2004-08-26 09:30:08 UTC (rev 1341)
@@ -0,0 +1,239 @@
+#! /bin/sh -e 
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: Clears the BTIC bit if it was previously set by the firmware, but is broken in the CPUs.
+## DP: Patch author: Sven Luther <luther@debian.org>
+## DP: Upstream status: reviewed and submited by benh
+
+. $(dirname $0)/DPATCH
+
+@DPATCH@
+diff -urN -X dontdiff linux-2.6.7-pegasos-orig/arch/ppc/kernel/cputable.c linux-2.6.7/arch/ppc/kernel/cputable.c
+--- linux-2.6.7-pegasos-orig/arch/ppc/kernel/cputable.c	2004-08-11 23:19:46.000000000 -0600
++++ linux-2.6.7/arch/ppc/kernel/cputable.c	2004-08-12 20:08:49.000000000 -0600
+@@ -263,7 +263,8 @@
+ 	CPU_FTR_COMMON |
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+-	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NEED_COHERENT,
++	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NEED_COHERENT |
++	CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -274,7 +275,8 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT,
++	CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT | 
++	CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -285,7 +287,7 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_NEED_COHERENT,
++	CPU_FTR_NEED_COHERENT | CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -296,7 +298,7 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_HAS_HIGH_BATS |
+-	CPU_FTR_NEED_COHERENT,
++	CPU_FTR_NEED_COHERENT | CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -307,7 +309,8 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT | CPU_FTR_HAS_HIGH_BATS,
++	CPU_FTR_L3_DISABLE_NAP | CPU_FTR_NEED_COHERENT | CPU_FTR_HAS_HIGH_BATS |
++	CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -318,7 +321,7 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
++	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -329,7 +332,8 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC,
++	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC |
++	CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -340,7 +344,8 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC,
++	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC | 
++	CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -351,7 +356,7 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
++	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+@@ -362,7 +367,7 @@
+     	CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | CPU_FTR_CAN_NAP |
+ 	CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP |
+ 	CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR |
+-	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT,
++	CPU_FTR_HAS_HIGH_BATS | CPU_FTR_NEED_COHERENT | CPU_FTR_HWFLUSH_L2_CACHE,
+ 	COMMON_PPC | PPC_FEATURE_ALTIVEC_COMP,
+ 	32, 32,
+ 	__setup_cpu_745x
+diff -urN -X dontdiff linux-2.6.7-pegasos-orig/arch/ppc/kernel/l2cr.S linux-2.6.7/arch/ppc/kernel/l2cr.S
+--- linux-2.6.7-pegasos-orig/arch/ppc/kernel/l2cr.S	2004-08-12 02:31:16.000000000 -0600
++++ linux-2.6.7/arch/ppc/kernel/l2cr.S	2004-08-12 20:52:04.716349536 -0600
+@@ -36,7 +36,9 @@
+ 		several months.  The L2CR is similar, but I'm going
+ 		to assume the user of this functions knows what they
+ 		are doing.
+-
++	June 17, 2004.
++	- JPAN: Fixed 745X L3 cache enablement routine, also use HW flush assist.
++	
+ 	Author:	Terry Greeniaus (tgree@phys.ualberta.ca)
+ 	Please e-mail updates to this file to me, thanks!
+ */
+@@ -154,9 +156,7 @@
+ 	       Don't do this unless you accomodate all processor variations.
+ 	       The bit moved on the 7450.....
+ 	  ****/
+-
+-	/* TODO: use HW flush assist when available */
+-
++BEGIN_FTR_SECTION
+ 	lis	r4,0x0002
+ 	mtctr	r4
+ 	li	r4,0
+@@ -175,7 +175,23 @@
+ 	dcbf	0,r4
+ 	addi	r4,r4,32		/* Go to start of next cache line */
+ 	bdnz	1b
++END_FTR_SECTION_IFCLR(CPU_FTR_HWFLUSH_L2_CACHE)
+ 
++BEGIN_FTR_SECTION
++	/* Use HW flush assist, MPC7447A errata #3 */
++	oris	r4,r4,0x0010	/* Set L2CR[IONLY/11] = 1 */
++	oris	r4,r4,0x0001	/* Set L2CR[DONLY/15] = 1 */
++	mtspr   L2CR,r4		/* Lock the L2	*/
++	sync
++	ori	r4,r4,0x0800	/* Set L2CR[L2HWF/20] = 1 */
++	mtspr   L2CR,r4		/* Flush the L2 */
++1:	
++	mfspr	r4,L2CR
++	andi.	r4,r4,0x0800	/* L2HWF still set? */
++	bne	1b
++	sync	/* sync to clear the store queues before L3 flush (UM step 5)*/
++END_FTR_SECTION_IFSET(CPU_FTR_HWFLUSH_L2_CACHE)
++	
+ 2:
+ 	/* Set up the L2CR configuration bits (and switch L2 off) */
+ 	/* CPU errata: Make sure the mtspr below is already in the
+@@ -292,17 +308,18 @@
+ 
+ 	/* Flush the cache.
+ 	 */
+-
+-	/* TODO: use HW flush assist */
+-
+-	lis	r4,0x0008
+-	mtctr	r4
+-	li	r4,0
+-1:
+-	lwzx	r0,r0,r4
+-	dcbf	0,r4
+-	addi	r4,r4,32		/* Go to start of next cache line */
+-	bdnz	1b
++	/* use HW flush assist. (UM 3.6.3.1.5) */
++	mfspr	r4, SPRN_L3CR
++	oris	r4,r4,0x0040	/* Set L3CR[L3IO/9] = 1. */
++	ori	r4,r4,0x0040	/* Set L3CR[L3DO/29] = 1.*/
++	mtspr	1018,r4		/* Lock the L3 by making IONLY and DONLY */
++	ori	r4,r4,0x0800	/* Set L3CR[L3HWF/20] for hardware flush */
++	mtspr	SPRN_L3CR,r4
++flush_745x_L3_poll:
++	mfspr	r4,SPRN_L3CR
++	rlwinm.	r4,r4,0,20,20
++	bne	flush_745x_L3_poll
++	sync	/* Clear the store queues per procedure (UM step 8) */
+ 
+ 2:
+ 	/* Set up the L3CR configuration bits (and switch L3 off) */
+@@ -348,8 +365,8 @@
+ 	cmplwi	r5,0
+ 	beq	4f
+ 
+-	/* Enable the cache */
+-	oris	r3,r3,(L3CR_L3E | L3CR_L3CLKEN)@h
++	/* enable L3 clock */
++	oris	r3,r3,(L3CR_L3CLKEN)@h
+ 	mtspr	SPRN_L3CR,r3
+ 	sync
+ 
+@@ -357,6 +374,15 @@
+ 	li	r0,256
+ 	mtctr	r0
+ 1:	bdnz	1b
++	
++	/* Clear MSSSR0 which may cause parity error */
++	xor	r5,r5,r5
++	mtspr	1015, r5
++	
++	/* Enable L3 cache */
++	oris	r3,r3,(L3CR_L3E)@h
++	mtspr	SPRN_L3CR,r3
++	sync
+ 
+ 	/* Restore MSR (restores EE and DR bits to original state) */
+ 4:	SYNC
+diff -urN -X dontdiff linux-2.6.7-pegasos-orig/arch/ppc/kernel/traps.c linux-2.6.7/arch/ppc/kernel/traps.c
+--- linux-2.6.7-pegasos-orig/arch/ppc/kernel/traps.c	2004-08-12 02:31:30.000000000 -0600
++++ linux-2.6.7/arch/ppc/kernel/traps.c	2004-08-12 02:10:05.000000000 -0600
+@@ -263,7 +263,9 @@
+ 	case 0x80000:
+ 		printk("Machine check signal\n");
+ 		break;
+-	case 0:		/* for 601 */
++	case 0:		/* for 601 and 744x */
++		printk("Transfer error ack signal if 601, or MCP if 744x \n");
++		break;
+ 	case 0x40000:
+ 	case 0x140000:	/* 7450 MSS error and TEA */
+ 		printk("Transfer error ack signal\n");
+diff -urN -X dontdiff linux-2.6.7-pegasos-orig/include/asm-ppc/cputable.h linux-2.6.7/include/asm-ppc/cputable.h
+--- linux-2.6.7-pegasos-orig/include/asm-ppc/cputable.h	2004-08-11 23:19:46.000000000 -0600
++++ linux-2.6.7/include/asm-ppc/cputable.h	2004-08-12 19:51:45.000000000 -0600
+@@ -77,6 +77,7 @@
+ #define CPU_FTR_HAS_HIGH_BATS		0x00010000
+ #define CPU_FTR_NEED_COHERENT           0x00020000
+ #define CPU_FTR_NO_BTIC			0x00040000
++#define CPU_FTR_HWFLUSH_L2_CACHE	0x00080000
+ 
+ #ifdef __ASSEMBLY__
+