summaryrefslogtreecommitdiff
path: root/arch/nios2/cpu/start.S
diff options
context:
space:
mode:
authorThomas Chou <thomas@wytron.com.tw>2010-04-20 11:01:11 +0800
committerScott McNutt <smcnutt@psyent.com>2010-04-24 18:21:23 -0400
commitfd2712d0b1d4c1624bef35b784ee64451ee5a017 (patch)
tree455d02ee685db56e945737b14f035182002eb75d /arch/nios2/cpu/start.S
parent994852966d2e6cf98c1dbeea8ee62c233b305ffb (diff)
downloadu-boot-imx-fd2712d0b1d4c1624bef35b784ee64451ee5a017.zip
u-boot-imx-fd2712d0b1d4c1624bef35b784ee64451ee5a017.tar.gz
u-boot-imx-fd2712d0b1d4c1624bef35b784ee64451ee5a017.tar.bz2
nios2: consolidate reset initialization
Global interrupt should be disabled from the beginning. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Signed-off-by: Scott McNutt <smcnutt@psyent.com>
Diffstat (limited to 'arch/nios2/cpu/start.S')
-rw-r--r--arch/nios2/cpu/start.S9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/nios2/cpu/start.S b/arch/nios2/cpu/start.S
index 31cd5b0..d1016ea 100644
--- a/arch/nios2/cpu/start.S
+++ b/arch/nios2/cpu/start.S
@@ -34,6 +34,7 @@
.global _start
_start:
+ wrctl status, r0 /* Disable interrupts */
/* ICACHE INIT -- only the icache line at the reset address
* is invalidated at reset. So the init must stay within
* the cache line size (8 words). If GERMS is used, we'll
@@ -43,10 +44,9 @@ _start:
ori r4, r0, %lo(CONFIG_SYS_ICACHELINE_SIZE)
movhi r5, %hi(CONFIG_SYS_ICACHE_SIZE)
ori r5, r5, %lo(CONFIG_SYS_ICACHE_SIZE)
- mov r6, r0
-0: initi r6
- add r6, r6, r4
- bltu r6, r5, 0b
+0: initi r5
+ sub r5, r5, r4
+ bgt r5, r0, 0b
br _except_end /* Skip the tramp */
/* EXCEPTION TRAMPOLINE -- the following gets copied
@@ -62,7 +62,6 @@ _except_end:
/* INTERRUPTS -- for now, all interrupts masked and globally
* disabled.
*/
- wrctl status, r0 /* Disable interrupts */
wrctl ienable, r0 /* All disabled */
/* DCACHE INIT -- if dcache not implemented, initd behaves as