[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