Kernel/arm7 - Stubbing functions, now compiles and links
[tpg/acess2.git] / Kernel / arch / arm7 / start.s
1 KERNEL_BASE =   0x80000000
2
3 interrupt_vector_table:
4         b . @ Reset
5         b .
6         b SyscallHandler @ SWI instruction
7         b . 
8         b .
9         b .
10         b .
11         b .
12
13 .comm stack, 0x10000    @ ; 64KiB Stack
14
15 .globl _start
16 _start:
17         ldr sp, =stack+0x10000  @ Set up stack
18         bl kmain
19 1:      b 1b    @ Infinite loop
20
21 SyscallHandler:
22         
23 .section .padata
24 .globl kernel_table0
25 kernel_table0:
26         .rept 0x800
27                 .long 0
28         .endr
29         .long 0x00000002        @ Identity map the first 4 MiB
30         .long 0x00100002        @ 
31         .long 0x00200002        @ 
32         .long 0x00300002        @ 
33         .rept 0xF00 - 0x800 - 4
34                 .long 0
35         .endr
36         .long hwmap_table_0 + 0x000 - KERNEL_BASE + 1
37         .long hwmap_table_0 + 0x400 - KERNEL_BASE + 1
38         .long hwmap_table_0 + 0x800 - KERNEL_BASE + 1
39         .long hwmap_table_0 + 0xC00 - KERNEL_BASE + 1
40         .rept 0xFF8 - 0xF00 - 4
41                 .long 0
42         .endr
43         .long kernel_table1_map + 0x000 - KERNEL_BASE + 1
44         .long kernel_table1_map + 0x400 - KERNEL_BASE + 1
45         .long kernel_table1_map + 0x800 - KERNEL_BASE + 1
46         .long kernel_table1_map + 0xC00 - KERNEL_BASE + 1
47         .long kernel_table0 - KERNEL_BASE + 2   @ Sure it maps too much, but fuck that
48         .rept 0x1000 - 0xFF8 - 5
49                 .long 0
50         .endr
51
52 .globl kernel_table1_map
53 kernel_table1_map:
54         .rept 0xF00/4
55                 .long 0
56         .endr
57         .long hwmap_table_0 - KERNEL_BASE + (1 << 4) + 3
58         .rept 0xFF8/4 - 0xF00/4 - 1
59                 .long 0
60         .endr
61         .long kernel_table1_map - KERNEL_BASE + (1 << 4) + 3
62         .long 0
63
64 .globl hwmap_table_0
65 hwmap_table_0:
66         .long 0x16000000 + (1 << 4) + 3 @ Serial Port
67         .rept 1024 - 1
68                 .long 0
69         .endr
70         

UCC git Repository :: git.ucc.asn.au