patch-2.4.20 linux-2.4.20/arch/sparc64/kernel/trampoline.S
Next file: linux-2.4.20/arch/sparc64/kernel/traps.c
Previous file: linux-2.4.20/arch/sparc64/kernel/time.c
Back to the patch index
Back to the overall index
- Lines: 99
- Date:
Thu Nov 28 15:53:12 2002
- Orig file:
linux-2.4.19/arch/sparc64/kernel/trampoline.S
- Orig date:
Fri Aug 2 17:39:43 2002
diff -urN linux-2.4.19/arch/sparc64/kernel/trampoline.S linux-2.4.20/arch/sparc64/kernel/trampoline.S
@@ -33,25 +33,29 @@
sparc64_cpu_startup:
flushw
- rdpr %ver, %g1
- sethi %hi(0x003e0014), %g5
- srlx %g1, 32, %g1
- or %g5, %lo(0x003e0014), %g5
- cmp %g1, %g5
- bne,pt %icc, spitfire_startup
+ BRANCH_IF_CHEETAH_BASE(g1,g5,cheetah_startup)
+ BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g5,cheetah_plus_startup)
+
+ ba,pt %xcc, spitfire_startup
+ nop
+
+cheetah_plus_startup:
+ /* Preserve OBP choosen DCU and DCR register settings. */
+ ba,pt %xcc, cheetah_generic_startup
nop
cheetah_startup:
- mov DCR_BPE | DCR_RPE | DCR_SI | DCR_IFPOE | DCR_MS, %g1
- wr %g1, %asr18
+ mov DCR_BPE | DCR_RPE | DCR_SI | DCR_IFPOE | DCR_MS, %g1
+ wr %g1, %asr18
- sethi %uhi(DCU_ME | DCU_RE | /*DCU_PE |*/ DCU_HPE | DCU_SPE | DCU_SL | DCU_WE), %g5
- or %g5, %ulo(DCU_ME | DCU_RE | /*DCU_PE |*/ DCU_HPE | DCU_SPE | DCU_SL | DCU_WE), %g5
- sllx %g5, 32, %g5
- or %g5, DCU_DM | DCU_IM | DCU_DC | DCU_IC, %g5
- stxa %g5, [%g0] ASI_DCU_CONTROL_REG
- membar #Sync
+ sethi %uhi(DCU_ME|DCU_RE|DCU_HPE|DCU_SPE|DCU_SL|DCU_WE), %g5
+ or %g5, %ulo(DCU_ME|DCU_RE|DCU_HPE|DCU_SPE|DCU_SL|DCU_WE), %g5
+ sllx %g5, 32, %g5
+ or %g5, DCU_DM | DCU_IM | DCU_DC | DCU_IC, %g5
+ stxa %g5, [%g0] ASI_DCU_CONTROL_REG
+ membar #Sync
+cheetah_generic_startup:
mov TSB_EXTENSION_P, %g3
stxa %g0, [%g3] ASI_DMMU
stxa %g0, [%g3] ASI_IMMU
@@ -117,14 +121,10 @@
ldx [%g2 + %lo(kern_locked_tte_data)], %g2
stx %g2, [%sp + 2047 + 128 + 0x30]
- rdpr %ver, %g1
- sethi %hi(0x003e0014), %g5
- srlx %g1, 32, %g1
- or %g5, %lo(0x003e0014), %g5
- cmp %g1, %g5
- bne,a,pt %icc, 1f
- mov 63, %g2
mov 15, %g2
+ BRANCH_IF_ANY_CHEETAH(g1,g5,1f)
+
+ mov 63, %g2
1:
stx %g2, [%sp + 2047 + 128 + 0x38]
sethi %hi(p1275buf), %g2
@@ -152,14 +152,10 @@
ldx [%g2 + %lo(kern_locked_tte_data)], %g2
stx %g2, [%sp + 2047 + 128 + 0x30]
- rdpr %ver, %g1
- sethi %hi(0x003e0014), %g5
- srlx %g1, 32, %g1
- or %g5, %lo(0x003e0014), %g5
- cmp %g1, %g5
- bne,a,pt %icc, 1f
- mov 63, %g2
mov 15, %g2
+ BRANCH_IF_ANY_CHEETAH(g1,g5,1f)
+
+ mov 63, %g2
1:
stx %g2, [%sp + 2047 + 128 + 0x38]
@@ -227,14 +223,12 @@
sllx %g2, 32, %g2
or %g2, KERN_LOWBITS, %g2
- rdpr %ver, %g3
- sethi %hi(0x003e0014), %g7
- srlx %g3, 32, %g3
- or %g7, %lo(0x003e0014), %g7
- cmp %g3, %g7
- bne,pt %icc, 1f
+ BRANCH_IF_ANY_CHEETAH(g3,g7,9f)
+
+ ba,pt %xcc, 1f
nop
+9:
sethi %uhi(VPTE_BASE_CHEETAH), %g3
or %g3, %ulo(VPTE_BASE_CHEETAH), %g3
ba,pt %xcc, 2f
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)