hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * Copyright (C) 2016 Vladimir Zapolskiy <vz@mleia.com>
 * Copyright (C) 2008-2009 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
 * Copyright (C) 2008 Mark Jonas <mark.jonas@de.bosch.com>
 * Copyright (C) 2007 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
 *
 * SPDX-License-Identifier:    GPL-2.0+
 */
 
#include "config.h"
 
#ifdef CONFIG_SYS_BIG_ENDIAN
OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-sh-linux")
#else
OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
#endif
 
OUTPUT_ARCH(sh)
 
MEMORY
{
   ram    : ORIGIN = CONFIG_SYS_SDRAM_BASE, LENGTH = CONFIG_SYS_SDRAM_SIZE
}
 
ENTRY(_start)
 
SECTIONS
{
   reloc_dst = .;
 
   PROVIDE (_ftext = .);
   PROVIDE (_fcode = .);
   PROVIDE (_start = .);
 
   .text :
   {
       KEEP(*/start.o        (.text))
       KEEP(CONFIG_BOARDDIR/lowlevel_init.o    (.text .spiboot1.text))
       KEEP(*(.spiboot2.text))
       . = ALIGN(8192);
#ifdef CONFIG_ENV_IS_IN_FLASH
       env/embedded.o  (.doesnotexist)
       . = ALIGN(8192);
#endif
       *(.text)
       . = ALIGN(4);
   } >ram =0xFF
   PROVIDE (_ecode = .);
   .rodata :
   {
       *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
       . = ALIGN(4);
   } >ram
   PROVIDE (_etext = .);
 
 
   PROVIDE (_fdata = .);
   .data :
   {
       *(.data)
       . = ALIGN(4);
   } >ram
   PROVIDE (_edata = .);
 
   PROVIDE (_fgot = .);
   .got :
   {
       *(.got.plt) *(.got)
       . = ALIGN(4);
   } >ram
   PROVIDE (_egot = .);
 
   .u_boot_list : {
       KEEP(*(SORT(.u_boot_list*)));
   } >ram
 
   PROVIDE (__init_end = .);
   PROVIDE (reloc_dst_end = .);
 
   PROVIDE (bss_start = .);
   PROVIDE (__bss_start = .);
   .bss :
   {
       *(.bss)
       . = ALIGN(4);
   } >ram
   PROVIDE (bss_end = .);
   PROVIDE (__bss_end = .);
}