summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc83xx/start.S
diff options
context:
space:
mode:
authorJoakim Tjernlund <Joakim.Tjernlund@transmode.se>2010-11-19 14:15:33 +0100
committerWolfgang Denk <wd@denx.de>2010-11-30 21:15:07 +0100
commite45c98ad35ca600e25e9264528e7b6be17969f8c (patch)
tree7c60217a391fbffe1dd54053a7dccbd77444ff19 /arch/powerpc/cpu/mpc83xx/start.S
parent0b72585796d6e08abba56965644ea51748c4b1d2 (diff)
downloadu-boot-imx-e45c98ad35ca600e25e9264528e7b6be17969f8c.zip
u-boot-imx-e45c98ad35ca600e25e9264528e7b6be17969f8c.tar.gz
u-boot-imx-e45c98ad35ca600e25e9264528e7b6be17969f8c.tar.bz2
mpc83xx: Make it boot again
After the removal of COLD/WARM start flags my mpc8321 board didn't boot anymore. Trial and error suggests that map/remap_flash_by_xxx needs to wait after updating LBLAWAR1 to make sure the the change has reached the HW before continuing with the code that depends on it. Final fix suggested by Scott Wood. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Acked-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc83xx/start.S')
-rw-r--r--arch/powerpc/cpu/mpc83xx/start.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc83xx/start.S b/arch/powerpc/cpu/mpc83xx/start.S
index 515be4c..460ac9a 100644
--- a/arch/powerpc/cpu/mpc83xx/start.S
+++ b/arch/powerpc/cpu/mpc83xx/start.S
@@ -1158,6 +1158,10 @@ map_flash_by_law1:
bne 1b
stw r4, LBLAWAR1(r3) /* LBLAWAR1 <= 8MB Flash Size */
+ /* Wait for HW to catch up */
+ lwz r4, LBLAWAR1(r3)
+ twi 0,r4,0
+ isync
blr
/* Though all the LBIU Local Access Windows and LBC Banks will be
@@ -1196,5 +1200,9 @@ remap_flash_by_law0:
xor r4, r4, r4
stw r4, LBLAWBAR1(r3)
stw r4, LBLAWAR1(r3) /* Off LBIU LAW1 */
+ /* Wait for HW to catch up */
+ lwz r4, LBLAWAR1(r3)
+ twi 0,r4,0
+ isync
blr
#endif /* CONFIG_SYS_FLASHBOOT */