GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / mach-pxa / mioa701_bootresume.S
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         .align  2
20 ENTRY(mioa701_bootstrap)
21 0:
22         b       1f
23 ENTRY(mioa701_jumpaddr)
24         .word   0x40f00008              @ PSPR in no-MMU mode
25 1:
26         mov     r0,     #0xa0000000     @ Don't suppose memory access works
27         orr     r0, r0, #0x00200000     @ even if it's supposed to
28         orr     r0, r0, #0x0000b000
29         mov     r1, #0
30         str     r1, [r0]                @ Early disable resume for next boot
31         ldr     r0, mioa701_jumpaddr    @ (Murphy's Law)
32         ldr     r0, [r0]
33         ret     r0
34 2:
35
36 ENTRY(mioa701_bootstrap_lg)
37         .data
38         .align  2
39         .word   2b-0b