]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/drv/spi/example/mcspi_slavemode/am65xx/linker_mpu.lds
63c2789f20ee930d2ab9c646c42c1974eb28e5ad
[processor-sdk/pdk.git] / packages / ti / drv / spi / example / mcspi_slavemode / am65xx / linker_mpu.lds
1 /*      File: linker_mpu.lds
2  *  gcc Linker script for MPU core
3 */
4 __STACK_SIZE = 0x10000;
5 __TI_STACK_SIZE = __STACK_SIZE;
7 MEMORY
8 {
9     MCU_RESVD   : ORIGIN = 0x000041C00000, LENGTH = 0x00060000              /* MCUSS-OCMC RAM RESERVED FOR MCUSS & SOC Boot  - 384KB    */
10     OCMCRAM     : ORIGIN = 0x000041C60000, LENGTH = 0x00020000              /* MCUSS-OCMC RAM - 128KB                                   */
11     MSMC_SRAM   : ORIGIN = 0x000070001000, LENGTH = 0xEF000                 /* MSMC RAM GENERAL USE */
12     MSMC_SRAM_H : ORIGIN = 0x000070100000, LENGTH = 0xE2000                 /* MSMC RAM GENERAL USE - High memory */
13     MSMC_DMSC   : ORIGIN = 0x0000701F0000, LENGTH = 0x10000                 /* Reserved for DMSC */
15     DDR_0      (RWX) : ORIGIN =  0x80000000, LENGTH = 0x10000000
16     DDR_1      (RWX) : ORIGIN =  0x90000000, LENGTH = 0x10000000
17     DDR_2      (RWX) : ORIGIN =  0xA0000000, LENGTH = 0x60000000
18 }
20 REGION_ALIAS("BOOTVECTOR", DDR_0);
21 REGION_ALIAS("REGION_TEXT", DDR_0);
22 REGION_ALIAS("REGION_BSS", DDR_0);
23 REGION_ALIAS("REGION_DATA", DDR_0);
24 REGION_ALIAS("REGION_STACK", DDR_0);
25 REGION_ALIAS("REGION_HEAP", DDR_0);
26 REGION_ALIAS("REGION_ARM_EXIDX", DDR_0);
27 REGION_ALIAS("REGION_ARM_EXTAB", DDR_0);
28 REGION_ALIAS("REGION_TEXT_STARTUP", DDR_0);
29 REGION_ALIAS("REGION_DATA_BUFFER", DDR_0);
30 REGION_ALIAS("REGION_FAR", DDR_0);
32 SECTIONS {
34     .vecs : {
35         *(.vecs)
36     } > BOOTVECTOR AT> BOOTVECTOR
38     .text.csl_a53_startup : {
39         *(.text.csl_a53_startup)
40                 *(.Entry)
41     } > REGION_TEXT_STARTUP AT> REGION_TEXT_STARTUP
43     .text : {
44         CREATE_OBJECT_SYMBOLS
45         *(.text)
46         *(.text.*)
47         . = ALIGN(0x8);
48         KEEP (*(.ctors))
49         . = ALIGN(0x4);
50         KEEP (*(.dtors))
51         . = ALIGN(0x8);
52         __init_array_start = .;
53         KEEP (*(.init_array*))
54         __init_array_end = .;
55         *(.init)
56         *(.fini*)
57     } > REGION_TEXT AT> REGION_TEXT
59     PROVIDE (__etext = .);
60     PROVIDE (_etext = .);
61     PROVIDE (etext = .);
63     .rodata : {
64         *(.rodata)
65         *(.rodata*)
66     } > REGION_TEXT AT> REGION_TEXT
68     .data_buffer : ALIGN (8) {
69         __data_buffer_load__ = LOADADDR (.data_buffer);
70         __data_buffer_start__ = .;
71         *(.data_buffer)
72         *(.data_buffer*)
73         . = ALIGN (8);
74         __data_buffer_end__ = .;
75     } > REGION_DATA_BUFFER AT> REGION_DATA_BUFFER
77     .data : ALIGN (8) {
78         __data_load__ = LOADADDR (.data);
79         __data_start__ = .;
80         *(.data)
81         *(.data*)
82         . = ALIGN (8);
83         __data_end__ = .;
84     } > REGION_DATA AT> REGION_TEXT
86     .ARM.exidx : {
87         __exidx_start = .;
88         *(.ARM.exidx* .gnu.linkonce.armexidx.*)
89         __exidx_end = .;
90     } > REGION_ARM_EXIDX AT> REGION_ARM_EXIDX
92     .ARM.extab : {
93         *(.ARM.extab* .gnu.linkonce.armextab.*)
94     } > REGION_ARM_EXTAB AT> REGION_ARM_EXTAB
96     /* usb application ramdisk buffer */
97     .bss:extMemCache:ramdisk (NOLOAD) : ALIGN (32) {
98     } > DDR_0
100     /* For NDK packet memory, we need to map this sections before .bss*/
101     .bss:NDK_PACKETMEM (NOLOAD) : ALIGN (128) {} > DDR_0
102     .bss:NDK_MMBUFFER  (NOLOAD) : ALIGN (128) {} > DDR_0
104     /* USB or any other LLD buffer for benchmarking */
105     .benchmark_buffer (NOLOAD) : ALIGN (32) {
106     } > DDR_0
108     /* cal's application buffer */
109     .bss:frameBuffer (NOLOAD) : ALIGN (32) {
110     } > DDR_0
113     .bss : {
114         __bss_start__ = .;
115         *(.shbss)
116         *(.bss)
117         *(.bss.*)
118         . = ALIGN (8);
119         __bss_end__ = .;
120         . = ALIGN (8);
121         *(COMMON)
122     } > REGION_BSS AT> REGION_BSS
124     .far : {
125         __far_start__ = .;
126         *(.far)
127         *(.far:*)
128         *(.far.*)
129         . = ALIGN (8);
130         __far_end__ = .;
131         . = ALIGN (8);
132     } > REGION_FAR AT> REGION_FAR
134     .heap : {
135         __heap_start__ = .;
136         end = __heap_start__;
137         _end = end;
138         __end = end;
139         KEEP(*(.heap))
140         __heap_end__ = .;
141         __HeapLimit = __heap_end__;
142     } > REGION_HEAP AT> REGION_HEAP
144     .stack (NOLOAD) : ALIGN(16) {
145         _stack = .;
146         __stack = .;
147         KEEP(*(.stack))
148     } > REGION_STACK AT> REGION_STACK
150         __TI_STACK_BASE = __stack;
152     /* Stabs debugging sections.  */
153     .stab          0 : { *(.stab) }
154     .stabstr       0 : { *(.stabstr) }
155     .stab.excl     0 : { *(.stab.excl) }
156     .stab.exclstr  0 : { *(.stab.exclstr) }
157     .stab.index    0 : { *(.stab.index) }
158     .stab.indexstr 0 : { *(.stab.indexstr) }
159     .comment       0 : { *(.comment) }
160     /*
161      * DWARF debug sections.
162      * Symbols in the DWARF debugging sections are relative to the beginning
163      * of the section so we begin them at 0.
164      */
165     /* DWARF 1 */
166     .debug         0 : { *(.debug) }
167     .line          0 : { *(.line) }
168     /* GNU DWARF 1 extensions */
169     .debug_srcinfo  0 : { *(.debug_srcinfo) }
170     .debug_sfnames  0 : { *(.debug_sfnames) }
171     /* DWARF 1.1 and DWARF 2 */
172     .debug_aranges  0 : { *(.debug_aranges) }
173     .debug_pubnames 0 : { *(.debug_pubnames) }
174     /* DWARF 2 */
175     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
176     .debug_abbrev   0 : { *(.debug_abbrev) }
177     .debug_line     0 : { *(.debug_line .debug_line.* .debug_line_end ) }
178     .debug_frame    0 : { *(.debug_frame) }
179     .debug_str      0 : { *(.debug_str) }
180     .debug_loc      0 : { *(.debug_loc) }
181     .debug_macinfo  0 : { *(.debug_macinfo) }
182     /* SGI/MIPS DWARF 2 extensions */
183     .debug_weaknames 0 : { *(.debug_weaknames) }
184     .debug_funcnames 0 : { *(.debug_funcnames) }
185     .debug_typenames 0 : { *(.debug_typenames) }
186     .debug_varnames  0 : { *(.debug_varnames) }
187     /* DWARF 3 */
188     .debug_pubtypes 0 : { *(.debug_pubtypes) }
189     .debug_ranges   0 : { *(.debug_ranges) }
190     /* DWARF Extension.  */
191     .debug_macro    0 : { *(.debug_macro) }
192     .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
193     /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }