FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/sysglue/sysinit.S @ 307:749ca89741fa
DAR: starting to compile
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Sun, 16 Mar 2014 07:39:29 +0000 | 
| parents | afceeeb2cba1 | 
| children | f05ae34f7ca0 | 
| rev | line source | 
|---|---|
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 * This assembly module, which puts bits of code into several different | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 * sections, contains those essential entry point etc bits which are common | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 * to both the regular flashable build and the fc-xram development build. | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 | 
| 
87
 
321f6a9ae989
nuc-fw: fixed .section and .align assembly directives
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
80 
diff
changeset
 | 
7 .section iram.vectors,"ax",%progbits | 
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 .code 32 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 /* no useful handlers for the 5 error exceptions yet */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 b . | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 b . | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 b . | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 b . | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 b . | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 /* IRQ */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 b _INT_IRQ | 
| 
132
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
17 /* FIQ */ | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
18 b _INT_FIQ | 
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 | 
| 
87
 
321f6a9ae989
nuc-fw: fixed .section and .align assembly directives
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
80 
diff
changeset
 | 
20 .section xip.text,"ax",%progbits | 
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 .code 32 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 .globl _FlashorXram_entry | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 _FlashorXram_entry: | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 /* first order of business: copy iram.text to where it's supposed to be */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 ldr r8, =__iramtext_flash_addr | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 ldr r9, =__iramtext_ram_addr | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 ldr r10, =__iramtext_size | 
| 
80
 
39b1c369b67f
nuc-fw: links to an ELF image
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
79 
diff
changeset
 | 
28 1: ldmia r8!, {r0-r7} | 
| 
 
39b1c369b67f
nuc-fw: links to an ELF image
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
79 
diff
changeset
 | 
29 stmia r9!, {r0-r7} | 
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 subs r10, r10, #0x20 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 bhi 1b | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 /* now we can call any function w/o worry as to where it lives */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 /* clear int.bss and ext.bss, using bzero() from libc */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 ldr r0, =__intbss_start | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 ldr r1, =__intbss_size | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 bl bzero | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 ldr r0, =__extbss_start | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 ldr r1, =__extbss_size | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 bl bzero | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 /* we can start Nucleus now! */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 b INT_Initialize | 
| 
132
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
42 | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
43 /* | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
44 * riviera/support/exception.c references exit() | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
45 * The following kludge will allow us to pass the link for the time being | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
46 * until we can find a better solution, such as hooking into DAR maybe. | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
47 */ | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
48 | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
49 .globl exit | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
50 exit: | 
| 
 
2c5160a9d652
nuc-fw: switched from nucdemo to Riviera, got some serial output
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents: 
87 
diff
changeset
 | 
51 b . | 
