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