Annotation of sys/arch/armish/stand/boot/ldscript, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: ldscript,v 1.1 2006/07/28 17:12:06 kettenis Exp $ */
2: /* $NetBSD: ldscript,v 1.6 2005/12/11 12:17:10 christos Exp $ */
3:
4: OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
5: "elf32-littlearm")
6: OUTPUT_ARCH(arm)
7: ENTRY(FLASH)
8: MEMORY
9: {
10: /* We will locate the .text section in flash, and will run directly
11: from there just long enough to relocate our .text and .data into
12: a small chunk of SDRAM starting at (SDRAM + 1M). */
13: flash : o = 0xf0080000, l = 6M
14: sdram : o = 0x00100000, l = 1M /* kernel loads at 0xa0200000 */
15: }
16: SECTIONS
17: {
18: FLASH = 0x00100000;
19:
20: /* Read-only sections, merged into text segment: */
21: __text_store = FLASH;
22: .text :
23: AT (FLASH)
24: {
25: *(.text)
26: *(.text.*)
27: *(.stub)
28: *(.glue_7t) *(.glue_7)
29: *(.rodata) *(.rodata.*)
30: } > sdram =0
31: PROVIDE (__etext = .);
32: PROVIDE (_etext = .);
33: PROVIDE (etext = .);
34: __data_store = FLASH + SIZEOF(.text);
35: .data :
36: AT (LOADADDR(.text) + SIZEOF(.text))
37: {
38: __data_start = . ;
39: *(.data)
40: *(.data.*)
41: } > sdram
42: .sdata :
43: AT (LOADADDR(.data) + SIZEOF(.data))
44: {
45: *(.sdata)
46: *(.sdata.*)
47: . = ALIGN(32 / 8);
48: } > sdram
49: _edata = .;
50: PROVIDE (edata = .);
51: __bss_start = .;
52: __bss_start__ = .;
53: .sbss :
54: {
55: PROVIDE (__sbss_start = .);
56: PROVIDE (___sbss_start = .);
57: *(.dynsbss)
58: *(.sbss)
59: *(.sbss.*)
60: *(.scommon)
61: PROVIDE (__sbss_end = .);
62: PROVIDE (___sbss_end = .);
63: } > sdram
64: .bss :
65: {
66: *(.dynbss)
67: *(.bss)
68: *(.bss.*)
69: *(COMMON)
70: /* Align here to ensure that the .bss section occupies space up to
71: _end. Align after .bss to ensure correct alignment even if the
72: .bss section disappears because there are no input sections. */
73: . = ALIGN(32 / 8);
74: } > sdram
75: . = ALIGN(32 / 8);
76: _end = .;
77: _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
78: PROVIDE (end = .);
79: .image (FLASH + SIZEOF(.text) + SIZEOF(.data) + SIZEOF(.sdata)) :
80: AT (LOADADDR(.sdata) + SIZEOF(.sdata))
81: {
82: *(.image)
83: }
84: }
CVSweb