patch-2.4.21 linux-2.4.21/arch/ppc/boot/common/util.S
Next file: linux-2.4.21/arch/ppc/boot/include/mpc10x.h
Previous file: linux-2.4.21/arch/ppc/boot/common/string.S
Back to the patch index
Back to the overall index
- Lines: 89
- Date:
2003-06-13 07:51:31.000000000 -0700
- Orig file:
linux-2.4.20/arch/ppc/boot/common/util.S
- Orig date:
2002-11-28 15:53:11.000000000 -0800
diff -urN linux-2.4.20/arch/ppc/boot/common/util.S linux-2.4.21/arch/ppc/boot/common/util.S
@@ -14,12 +14,10 @@
* trini@mvista.com
* Derived from arch/ppc/boot/prep/head.S (Cort Dougan, many others).
*
- * Copyright 2001 MontaVista Software Inc.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
+ * 2001-2003 (c) MontaVista, Software, Inc. This file is licensed under
+ * the terms of the GNU General Public License version 2. This program
+ * is licensed "as is" without any warranty of any kind, whether express
+ * or implied.
*/
#include <asm/processor.h>
@@ -100,7 +98,7 @@
isync
mfspr r8,L2CR
rlwinm r8,r8,0,1,31
- oris r8,r8,0x0020
+ oris r8,r8,L2CR_L2I@h
sync
isync
mtspr L2CR,r8
@@ -108,11 +106,25 @@
isync
/* Wait for the invalidation to complete */
-1: mfspr r8,L2CR
- rlwinm. r9,r8,0,31,31
+ mfspr r8,PVR
+ srwi r8,r8,16
+ cmpli cr0,r8,0x8000 /* 7450 */
+ cmpli cr1,r8,0x8001 /* 7455 */
+ cmpli cr2,r8,0x8002 /* 7457 */
+ cror 4*cr0+eq,4*cr0+eq,4*cr1+eq /* Now test if any are true. */
+ cror 4*cr0+eq,4*cr0+eq,4*cr2+eq
+ bne 2f
+
+1: mfspr r8,L2CR /* On 745x, poll L2I bit (bit 10) */
+ rlwinm. r9,r8,0,10,10
bne 1b
+ b 3f
+
+2: mfspr r8,L2CR /* On 75x & 74[01]0, poll L2IP bit (bit 31) */
+ rlwinm. r9,r8,0,31,31
+ bne 2b
- rlwinm r8,r8,0,11,9 /* Turn off L2I bit */
+3: rlwinm r8,r8,0,11,9 /* Turn off L2I bit */
sync
isync
mtspr L2CR,r8
@@ -120,6 +132,33 @@
isync
blr
+ .globl _setup_L3CR
+_setup_L3CR:
+ /* Invalidate/disable L3 cache */
+ sync
+ isync
+ mfspr r8,L3CR
+ rlwinm r8,r8,0,1,31
+ ori r8,r8,L3CR_L3I@l
+ sync
+ isync
+ mtspr L3CR,r8
+ sync
+ isync
+
+ /* Wait for the invalidation to complete */
+1: mfspr r8,L3CR
+ rlwinm. r9,r8,0,21,21
+ bne 1b
+
+ rlwinm r8,r8,0,22,20 /* Turn off L3I bit */
+ sync
+ isync
+ mtspr L3CR,r8
+ sync
+ isync
+ blr
+
/*
* Delay for a number of microseconds
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)