[Cbe-oss-dev] [patch] cell: revisit setup_cpu_be

Geoff Levand geoffrey.levand at am.sony.com
Sat Apr 29 09:36:03 EST 2006


Arnd,

We discussed this back in February, but I see it hasn't been
cleaned up.  I think the conclusion we came to was that you will do
something in the blade platform setup to set the page sizes.

The problem is that you have __setup_cpu_be set in the cpu_specs
table, which is shared by all Cell based systems.

Here is the original discussion:

http://ozlabs.org/pipermail/linuxppc64-dev/2006-February/008014.html
http://ozlabs.org/pipermail/linuxppc64-dev/2006-February/007978.html

-Geoff


This patch removes the incorrect Cell processor setup routine
__setup_cpu_be.  This routine improperly accesses the hypervisor
page size configuration at SPR HID6.  The correct behavior is for
firmware, or if needed, platform setup code, to set the correct
page size.


Signed-off-by: Geoff Levand <geoffrey.levand at am.sony.com>

--
Index: cell--alp--2/arch/powerpc/kernel/cpu_setup_power4.S
===================================================================
--- cell--alp--2.orig/arch/powerpc/kernel/cpu_setup_power4.S	2006-04-28 16:25:26.000000000 -0700
+++ cell--alp--2/arch/powerpc/kernel/cpu_setup_power4.S	2006-04-28 16:25:36.000000000 -0700
@@ -76,20 +76,6 @@
 _GLOBAL(__setup_cpu_power4)
 	blr

-_GLOBAL(__setup_cpu_be)
-        /* Set large page sizes LP=0: 16MB, LP=1: 64KB */
-        addi    r3, 0,  0
-        ori     r3, r3, HID6_LB
-        sldi    r3, r3, 32
-        nor     r3, r3, r3
-        mfspr   r4, SPRN_HID6
-        and     r4, r4, r3
-        addi    r3, 0, 0x02000
-        sldi    r3, r3, 32
-        or      r4, r4, r3
-        mtspr   SPRN_HID6, r4
-	blr
-
 _GLOBAL(__setup_cpu_ppc970)
 	mfspr	r0,SPRN_HID0
 	li	r11,5			/* clear DOZE and SLEEP */
Index: cell--alp--2/arch/powerpc/kernel/cputable.c
===================================================================
--- cell--alp--2.orig/arch/powerpc/kernel/cputable.c	2006-04-28 16:25:26.000000000 -0700
+++ cell--alp--2/arch/powerpc/kernel/cputable.c	2006-04-28 16:25:36.000000000 -0700
@@ -33,7 +33,6 @@
 #ifdef CONFIG_PPC64
 extern void __setup_cpu_power3(unsigned long offset, struct cpu_spec* spec);
 extern void __setup_cpu_power4(unsigned long offset, struct cpu_spec* spec);
-extern void __setup_cpu_be(unsigned long offset, struct cpu_spec* spec);
 #else
 extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
 extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
@@ -273,7 +272,7 @@
 			PPC_FEATURE_SMT,
 		.icache_bsize		= 128,
 		.dcache_bsize		= 128,
-		.cpu_setup		= __setup_cpu_be,
+		.cpu_setup		= __setup_cpu_power4,
 		.platform		= "ppc-cell-be",
 	},
 	{	/* default match */



More information about the cbe-oss-dev mailing list