version 1.2, 2008/07/17 22:00:25 |
version 1.3, 2008/07/20 23:37:35 |
|
|
* Start kernel |
* Start kernel |
*/ |
*/ |
ENTRY(start_kernel) |
ENTRY(start_kernel) |
|
/* |
|
* XXX Copy kernel vectors and their displacement constants |
|
* XXX to the beginning of physical memory. |
|
* NOTE: it shouldn't hurt if we replace first 15 words of ourselfes. |
|
*/ |
|
mov r2, #0 /* counter */ |
|
mov r3, #15 /* num. of current insn */ |
|
mov r4, #0 /* save addr */ |
|
mov r5, r0 /* load addr */ |
|
mov r6, #0 /* data */ |
|
|
|
copy_insn: |
|
ldr r6, [r5], #4 /* load insn */ |
|
str r6, [r4], #4 /* save insn */ |
|
add r2, r2, #1 /* increment counter */ |
|
tst r2, r3 |
|
bne copy_insn |
|
|
bx r0 |
bx r0 |
|
|
.section .tail,"ax" |
.section .tail,"ax" |