blob: fab694cfc5762ab1763ad670d7e9fe1ee62cc607 (
plain)
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
|
/* $OpenBSD: ldscript,v 1.1 2006/07/28 17:12:06 kettenis Exp $ */
/* $NetBSD: ldscript,v 1.6 2005/12/11 12:17:10 christos Exp $ */
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(FLASH)
MEMORY
{
/* We will locate the .text section in flash, and will run directly
from there just long enough to relocate our .text and .data into
a small chunk of SDRAM starting at (SDRAM + 1M). */
flash : o = 0xf0080000, l = 6M
sdram : o = 0x00100000, l = 1M /* kernel loads at 0xa0200000 */
}
SECTIONS
{
FLASH = 0x00100000;
/* Read-only sections, merged into text segment: */
__text_store = FLASH;
.text :
AT (FLASH)
{
*(.text)
*(.text.*)
*(.stub)
*(.glue_7t) *(.glue_7)
*(.rodata) *(.rodata.*)
} > sdram =0
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
__data_store = FLASH + SIZEOF(.text);
.data :
AT (LOADADDR(.text) + SIZEOF(.text))
{
__data_start = . ;
*(.data)
*(.data.*)
} > sdram
.sdata :
AT (LOADADDR(.data) + SIZEOF(.data))
{
*(.sdata)
*(.sdata.*)
. = ALIGN(32 / 8);
} > sdram
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
__bss_start__ = .;
.sbss :
{
PROVIDE (__sbss_start = .);
PROVIDE (___sbss_start = .);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.scommon)
PROVIDE (__sbss_end = .);
PROVIDE (___sbss_end = .);
} > sdram
.bss :
{
*(.dynbss)
*(.bss)
*(.bss.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections. */
. = ALIGN(32 / 8);
} > sdram
. = ALIGN(32 / 8);
_end = .;
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
PROVIDE (end = .);
.image (FLASH + SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.sdata)) :
AT (LOADADDR(.sdata) + SIZEOF(.sdata))
{
*(.image)
}
}
|