summaryrefslogtreecommitdiff
path: root/cpu/mpc86xx/start.S
diff options
context:
space:
mode:
authorJon Loeliger <jdl@jdl.com>2006-05-19 13:28:39 -0500
committerJon Loeliger <jdl@jdl.com>2006-05-19 13:54:02 -0500
commit14e37081ff3cac7ebe6e93836523429853b6b292 (patch)
tree424deaccc2e0f8aa126690ca138114100c6dd774 /cpu/mpc86xx/start.S
parent9a655876e5995be80f49054e2509500e871e4d3a (diff)
downloadu-boot-imx-14e37081ff3cac7ebe6e93836523429853b6b292.zip
u-boot-imx-14e37081ff3cac7ebe6e93836523429853b6b292.tar.gz
u-boot-imx-14e37081ff3cac7ebe6e93836523429853b6b292.tar.bz2
Change arbitration to round-robin for SMP linux.
Diffstat (limited to 'cpu/mpc86xx/start.S')
-rw-r--r--cpu/mpc86xx/start.S15
1 files changed, 9 insertions, 6 deletions
diff --git a/cpu/mpc86xx/start.S b/cpu/mpc86xx/start.S
index b963631..07e7557 100644
--- a/cpu/mpc86xx/start.S
+++ b/cpu/mpc86xx/start.S
@@ -207,11 +207,7 @@ boot_warm:
/* init the L2 cache */
addis r3, r0, L2_INIT@h
ori r3, r3, L2_INIT@l
- sync
mtspr l2cr, r3
-#ifdef CONFIG_ALTIVEC
- dssall
-#endif
/* invalidate the L2 cache */
bl l2cache_invalidate
sync
@@ -245,6 +241,13 @@ in_flash:
bl setup_ccsrbar
#endif
+ /* Fix for SMP linux - Changing arbitration to round-robin */
+ lis r3, CFG_CCSRBAR@h
+ ori r3, r3, 0x1000
+ xor r4, r4, r4
+ li r4, 0x1000
+ stw r4, 0(r3)
+
/* setup the law entries */
bl law_entry
sync
@@ -280,9 +283,9 @@ in_flash:
/* make sure timer enabled in guts register too */
lis r3, CFG_CCSRBAR@h
oris r3,r3, 0xE
- ori r3,r3,0x0070 /*Jason from 3*/
+ ori r3,r3,0x0070
lwz r4, 0(r3)
- lis r5,0xFFFC /*Jason from 0xffff*/
+ lis r5,0xFFFC
ori r5,r5,0x5FFF
and r4,r4,r5
stw r4,0(r3)