summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/image/lzma-loader/src/head.S
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-05-30 10:35:27 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-05-30 10:35:27 +0000
commit12603cc0fbbfd50d11d764c2f91c3ae182a20d65 (patch)
treef01887d4e90bb875edb7b4effcbf283c4861090d /target/linux/adm5120-2.6/image/lzma-loader/src/head.S
parenta0dcd51d4e4e43a29e08674cfacec0ca8117cf3a (diff)
Add board specific code, autodetect the kernel, fixes #1707, thanks Gabor Juhos
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7398 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/image/lzma-loader/src/head.S')
-rw-r--r--target/linux/adm5120-2.6/image/lzma-loader/src/head.S19
1 files changed, 17 insertions, 2 deletions
diff --git a/target/linux/adm5120-2.6/image/lzma-loader/src/head.S b/target/linux/adm5120-2.6/image/lzma-loader/src/head.S
index 3bfab9ff1..ee8b3200c 100644
--- a/target/linux/adm5120-2.6/image/lzma-loader/src/head.S
+++ b/target/linux/adm5120-2.6/image/lzma-loader/src/head.S
@@ -12,7 +12,11 @@
#define KSEG0 0x80000000
+#define C0_STATUS $12
+#define C0_CAUSE $13
#define C0_CONFIG $16
+#define C0_WATCHLO $18
+#define C0_WATCHHI $19
#define C0_TAGLO $28
#define C0_TAGHI $29
@@ -40,17 +44,28 @@
.text
-#if (BZ_STARTUP_ORG)
+#if (LZMA_STARTUP_ORG)
.set noreorder
b startup
nop
- .org BZ_STARTUP_ORG
+ .org LZMA_STARTUP_ORG
#endif
LEAF(startup)
.set noreorder
+ .set mips32
+
+ mtc0 zero, C0_WATCHLO # clear watch registers
+ mtc0 zero, C0_WATCHHI
+
+ mtc0 zero, C0_CAUSE # clear before writing status register
+
+ mfc0 t0, C0_STATUS # get status register
+ li t1, ~(0xFF01)
+ and t0, t1 # mask interrupts
+ mtc0 t0, C0_STATUS # set up status register
move t1, ra # save return address
la t0, __reloc_label # get linked address of label