]>
Commit | Line | Data |
---|---|---|
6ad43d0d NI |
1 | /* |
2 | * Copyright (C) 2007,2008 Nobuhiro Iwamatsu <[email protected]> | |
3 | * Copyright (C) 2008 Renesas Solutions Corp. | |
4 | ||
1a459660 | 5 | * SPDX-License-Identifier: GPL-2.0+ |
6ad43d0d NI |
6 | */ |
7 | ||
25ddd1fb | 8 | #include <asm-offsets.h> |
6ad43d0d | 9 | #include <config.h> |
6ad43d0d NI |
10 | |
11 | .text | |
12 | .align 2 | |
13 | ||
14 | .global _start | |
2024b968 | 15 | _sh_start: |
6ad43d0d NI |
16 | .long 0x00000010 /* Ppower ON reset PC*/ |
17 | .long 0x00000000 | |
18 | .long 0x00000010 /* Manual reset PC */ | |
19 | .long 0x00000000 | |
20 | _init: | |
21 | mov.l ._lowlevel_init, r0 | |
22 | 100: bsrf r0 | |
23 | nop | |
24 | bsr 1f | |
25 | nop | |
26 | 1: sts pr, r5 | |
27 | mov.l ._reloc_dst, r4 | |
2024b968 | 28 | add #(_sh_start-1b), r5 |
6ad43d0d NI |
29 | mov.l ._reloc_dst_end, r6 |
30 | ||
31 | 2: mov.l @r5+, r1 | |
32 | mov.l r1, @r4 | |
33 | add #4, r4 | |
34 | cmp/hs r6, r4 | |
35 | bf 2b | |
36 | ||
37 | mov.l ._bss_start, r4 | |
38 | mov.l ._bss_end, r5 | |
39 | mov #0, r1 | |
40 | ||
41 | 3: mov.l r1, @r4 /* bss clear */ | |
42 | add #4, r4 | |
43 | cmp/hs r5, r4 | |
44 | bf 3b | |
45 | ||
46 | mov.l ._gd_init, r13 /* global data */ | |
47 | mov.l ._stack_init, r15 /* stack */ | |
48 | ||
49 | mov.l ._sh_generic_init, r0 | |
50 | jsr @r0 | |
51 | nop | |
52 | ||
53 | loop: | |
54 | bra loop | |
55 | ||
56 | .align 2 | |
57 | ||
58 | ._lowlevel_init: .long (lowlevel_init - (100b + 4)) | |
59 | ._reloc_dst: .long reloc_dst | |
60 | ._reloc_dst_end: .long reloc_dst_end | |
61 | ._bss_start: .long bss_start | |
62 | ._bss_end: .long bss_end | |
2024b968 NI |
63 | ._gd_init: .long (_sh_start - GENERATED_GBL_DATA_SIZE) |
64 | ._stack_init: .long (_sh_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16) | |
6ad43d0d | 65 | ._sh_generic_init: .long sh_generic_init |