linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / powerpc / kernel / cpu_setup_power4.S
index 76e97aa..55f367e 100644 (file)
@@ -9,6 +9,7 @@
  *
  */
 
+#include <linux/config.h>
 #include <asm/processor.h>
 #include <asm/page.h>
 #include <asm/cputable.h>
@@ -72,6 +73,23 @@ _GLOBAL(__970_cpu_preinit)
        isync
        blr
 
+_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 */
@@ -126,12 +144,7 @@ _GLOBAL(__save_cpu_setup)
        cmpwi   r0,0x44
        bne     2f
 
-1:     /* skip if not running in HV mode */
-       mfmsr   r0
-       rldicl. r0,r0,4,63
-       beq     2f
-
-       /* Save HID0,1,4 and 5 */
+1:     /* Save HID0,1,4 and 5 */
        mfspr   r3,SPRN_HID0
        std     r3,CS_HID0(r5)
        mfspr   r3,SPRN_HID1
@@ -165,12 +178,7 @@ _GLOBAL(__restore_cpu_setup)
        cmpwi   r0,0x44
        bnelr
 
-1:     /* skip if not running in HV mode */
-       mfmsr   r0
-       rldicl. r0,r0,4,63
-       beqlr
-
-       /* Before accessing memory, we make sure rm_ci is clear */
+1:     /* Before accessing memory, we make sure rm_ci is clear */
        li      r0,0
        mfspr   r3,SPRN_HID4
        rldimi  r3,r0,40,23     /* clear bit 23 (rm_ci) */