summaryrefslogtreecommitdiff
path: root/firmware/crt0.S
diff options
context:
space:
mode:
authorJean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>2005-01-22 15:14:24 +0000
committerJean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>2005-01-22 15:14:24 +0000
commit93f917f5412cd7717a3fde149ca81aa1b9e3615e (patch)
tree6777f854cc8de238b994a14b334a7f0ff764a27d /firmware/crt0.S
parent70fba667086d02e4db8ee7dde9092e0e6f9a192e (diff)
simplification and better integration of the gmini port
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5631 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/crt0.S')
-rw-r--r--firmware/crt0.S27
1 files changed, 9 insertions, 18 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 0abc3bdbc6..a0ff26684e 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -21,17 +21,20 @@
//#define BOOTLOADER
+ .section .init.text
+ .global start
+start:
#if defined(ARCHOS_GMINI120)
- .section .text
- .global _start
-_start:
;; disable all interrupts
clrsr fe
clrsr ie
clrsr te
-
+ ld a14, #0x3F0000
;; copy data section from flash to ram.
+ ld r5, 0xA5
+ ldb @[a14 + 6], r5 ; disable watchdog
+
ld a11, #(_datacopy) ; where the data section is in the flash
ld a8, #(_datastart) ; destination
@@ -56,9 +59,9 @@ _start:
ld r2, #0
ld a8, #(_bssstart) ; destination
- ld a9, #_bsssize
-
+ ld a9, #_bsssize
ld r6, e9
+
cmp eq, r6, #0
brf .bss_init_loop
cmp eq, r9, #0
@@ -76,12 +79,6 @@ _start:
ld a15, _stackend
- ;; rest of the setup in C
- jsr _cpu_setup
-
- ;; enable IRQs (keep traps and fast interrupts low)
- setsr ie
-
;; go!
jsr _main
@@ -119,9 +116,6 @@ irq_handler:
ret_irq
#elif defined(IRIVER_H100)
- .section .init.text
- .global start
-start:
/* Platform: iRiver H1xx */
move.w #0x2700,%sr
@@ -264,9 +258,6 @@ vectors:
.long _stackend
.long start
#else
- .section .init.text
- .global start
-start:
/* Platform: Archos Jukebox
* We begin with some tricks. If we have built our code to be loaded
* via the standalone GDB stub, we will have out VBR at some other