1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <asm-offsets.h>
22#include <config.h>
23#include <version.h>
24
25 .text
26 .align 2
27
28 .global _start
29_sh_start:
30 mov.l ._lowlevel_init, r0
31100: bsrf r0
32 nop
33
34 bsr 1f
35 nop
361: sts pr, r5
37 mov.l ._reloc_dst, r4
38 add
39 mov.l ._reloc_dst_end, r6
40
412: mov.l @r5+, r1
42 mov.l r1, @r4
43 add
44 cmp/hs r6, r4
45 bf 2b
46
47 mov.l ._bss_start, r4
48 mov.l ._bss_end, r5
49 mov
50
513: mov.l r1, @r4
52 add
53 cmp/hs r5, r4
54 bf 3b
55
56 mov.l ._gd_init, r13
57 mov.l ._stack_init, r15
58
59 mov.l ._sh_generic_init, r0
60 jsr @r0
61 nop
62
63loop:
64 bra loop
65
66 .align 2
67
68._lowlevel_init: .long (lowlevel_init - (100b + 4))
69._reloc_dst: .long reloc_dst
70._reloc_dst_end: .long reloc_dst_end
71._bss_start: .long bss_start
72._bss_end: .long bss_end
73._gd_init: .long (_sh_start - GENERATED_GBL_DATA_SIZE)
74._stack_init: .long (_sh_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16)
75._sh_generic_init: .long sh_generic_init
76