Commit | Line | Data |
---|---|---|
eda6f6ec RJ |
1 | /* Bootloader to resume MIO A701 |
2 | * | |
3 | * 2007-1-12 Robert Jarzmik | |
4 | * | |
5 | * This code is licenced under the GPLv2. | |
6 | */ | |
7 | ||
8 | #include <linux/linkage.h> | |
9 | #include <asm/assembler.h> | |
10 | ||
11 | /* | |
12 | * Note: Yes, part of the following code is located into the .data section. | |
13 | * This is to allow jumpaddr to be accessed with a relative load | |
14 | * while we can't rely on any MMU translation. We could have put | |
15 | * sleep_save_sp in the .text section as well, but some setups might | |
16 | * insist on it to be truly read-only. | |
17 | */ | |
18 | .data | |
19 | ENTRY(mioa701_bootstrap) | |
20 | 0: | |
21 | b 1f | |
22 | ENTRY(mioa701_jumpaddr) | |
23 | .word 0x40f00008 @ PSPR in no-MMU mode | |
24 | 1: | |
25 | mov r0, #0xa0000000 @ Don't suppose memory access works | |
26 | orr r0, r0, #0x00200000 @ even if it's supposed to | |
999f6338 | 27 | orr r0, r0, #0x0000b000 |
eda6f6ec RJ |
28 | mov r1, #0 |
29 | str r1, [r0] @ Early disable resume for next boot | |
30 | ldr r0, mioa701_jumpaddr @ (Murphy's Law) | |
31 | ldr r0, [r0] | |
32 | mov pc, r0 | |
33 | 2: | |
34 | ||
35 | ENTRY(mioa701_bootstrap_lg) | |
36 | .data | |
37 | .word 2b-0b |