PDK-4966: Added SA2UL Package Support - Use DDR for SAUL Buffers
[processor-sdk/pdk.git] / packages / ti / build / am65xx / linker_r5.lds
1 /*----------------------------------------------------------------------------*/
2 /* File: k3m4_r5f_linker.cmd                                                  */
3 /* Description:                                                                                                                           */
4 /*    Link command file for AM65XX M4 MCU 0 view                                                          */
5 /*        TI ARM Compiler version 15.12.3 LTS or later                                                    */
6 /*                                                                            */
7 /*    Platform: QT                                                            */
8 /* (c) Texas Instruments 2017, All rights reserved.                           */
9 /*----------------------------------------------------------------------------*/
10 /*  History:                                                                                                                          *'
11 /*    Aug 26th, 2016 Original version .......................... Loc Truong   */
12 /*    Aug 01th, 2017 new TCM mem map  .......................... Loc Truong   */
13 /*    Nov 07th, 2017 Changes for R5F Init Code.................. Vivek Dhande */
14 /*----------------------------------------------------------------------------*/
15 /* Linker Settings                                                            */
16 /* Standard linker options                                                                                                        */
17 --retain="*(.intvecs)"
18 --retain="*(.intc_text)"
19 --retain="*(.rstvectors)"
20 --retain="*(.irqStack)"
21 --retain="*(.fiqStack)"
22 --retain="*(.abortStack)"
23 --retain="*(.undStack)"
24 --retain="*(.svcStack)"
25 --fill_value=0
26 --stack_size=0x2000
27 --heap_size=0x1000
28 --entry_point=_resetvectors             /* Default C RTS boot.asm       */
30 -stack  0x2000                              /* SOFTWARE STACK SIZE           */
31 -heap   0x2000                              /* HEAP AREA SIZE                */
33 /* Stack Sizes for various modes */
34 __IRQ_STACK_SIZE = 0x1000;
35 __FIQ_STACK_SIZE = 0x1000;
36 __ABORT_STACK_SIZE = 0x1000;
37 __UND_STACK_SIZE = 0x1000;
38 __SVC_STACK_SIZE = 0x1000;
40 /*----------------------------------------------------------------------------*/
41 /* Memory Map                                                                 */
42 MEMORY
43 {
44     VECTORS (X)                 : origin=0x41C7F000 length=0x1000
45     /*  Reset Vectors base address(RESET_VECTORS) should be 64 bytes aligned  */
46     RESET_VECTORS (X)           : origin=0x41C00000 length=0x100
47     /* MCU0_R5F_0 local view */
48     MCU0_R5F_TCMA_SBL_RSVD (X)  : origin=0x0            length=0x100
49     MCU0_R5F_TCMA (X)           : origin=0x100          length=0x8000 - 0x100
50     MCU0_R5F_TCMB0 (RWIX)       : origin=0x41010000     length=0x8000
52     /* MCU0_R5F_1 SoC view */
53     MCU0_R5F1_ATCM (RWIX)       : origin=0x41400000 length=0x8000
54     MCU0_R5F1_BTCM (RWIX)       : origin=0x41410000 length=0x8000
56     /* Fully avaialble for apps. Used by SBL to load SYSFW */
57     OCMRAM_LOW  (RWIX)          : origin=0x41C00100 length=0x40600 - 0x100           /* ~257KB */
59     /* MCU0 memory used for SBL. Avaiable after boot for app starts for dynamic use */
60     SBL_RESERVED        (RWIX)  : origin=0x41C40600 length=0x60000 - 0x40600         /* ~126KB */
62     /* MCU0 share locations */
63     OCMRAM      (RWIX)          : origin=0x41C60000 length=0x20000 - 0x1000          /* ~124KB */
66     /* AM65XX M4 locations */
67     MSMC3       (RWIX)          : origin=0x70000000 length=0xF0000      /* 1MB - 64K */
68     MSMC3_H (RWIX)              : origin=0x70100000 length=0xE2000      /* 1MB -56K */
70     /* Reserved for DMSC */
71     MSMC3_DMSC (RWIX)           : origin=0x701F0000 length=0x10000      /* 64K */
73     DDR0    (RWIX)              : origin=0x80000000 length=0x80000000           /* 2GB */
75 /* Additional memory settings   */
77 }  /* end of MEMORY */
79 /*----------------------------------------------------------------------------*/
80 /* Section Configuration                                                      */
82 SECTIONS
83 {
84 /* 'intvecs' and 'intc_text' sections shall be placed within                  */
85 /* a range of +\- 16 MB                                                       */
86     .intvecs    : {} palign(8)          > VECTORS
87     .intc_text  : {} palign(8)          > VECTORS
88     .rstvectors         : {} palign(8)          > RESET_VECTORS
89     .bootCode      : {} palign(8)      > MSMC3
90     .startupCode   : {} palign(8)      > MSMC3
91     .startupData   : {} palign(8)      > MSMC3, type = NOINIT
92     .text       : {} palign(8)          > MSMC3
93     .const      : {} palign(8)          > MSMC3
94     .cinit      : {} palign(8)          > MSMC3
95     .pinit      : {} palign(8)          > MSMC3
96     .bss        : {} align(4)           > MSMC3
97     .far        : {} align(4)           > DDR0
98     .data       : {} palign(128)        > MSMC3
99     .boardcfg_data        : {} palign(128)           > MSMC3
100     .sysmem     : {}                            > MSMC3
102     /* USB ram disk dev-msc example */
103     .bss:extMemCache:ramdisk : {} align (32)     > DDR0
105     /* SA sections */
106     .scBufs             : {} align(4)           > DDR0
107     .saSrcBuffers       : {} align(4)           > DDR0
108     .saDstBuffers       : {} align(4)           > DDR0
110     /* USB or any other LLD buffer for benchmarking */
111     .benchmark_buffer (NOLOAD) {} ALIGN (8) > DDR0
113     .stack      : {} align(4)           > MSMC3  (HIGH)
114     .irqStack   : {. = . + __IRQ_STACK_SIZE;} align(4)          > MSMC3  (HIGH)
115     RUN_START(__IRQ_STACK_START)
116     RUN_END(__IRQ_STACK_END)
117     .fiqStack   : {. = . + __FIQ_STACK_SIZE;} align(4)          > MSMC3  (HIGH)
118     RUN_START(__FIQ_STACK_START)
119     RUN_END(__FIQ_STACK_END)
120     .abortStack         : {. = . + __ABORT_STACK_SIZE;} align(4)                > MSMC3  (HIGH)
121     RUN_START(__ABORT_STACK_START)
122     RUN_END(__ABORT_STACK_END)
123     .undStack   : {. = . + __UND_STACK_SIZE;} align(4)          > MSMC3  (HIGH)
124     RUN_START(__UND_STACK_START)
125     RUN_END(__UND_STACK_END)
126     .svcStack   : {. = . + __SVC_STACK_SIZE;} align(4)          > MSMC3  (HIGH)
127     RUN_START(__SVC_STACK_START)
128     RUN_END(__SVC_STACK_END)
130 /* Additional sections settings         */
132 }  /* end of SECTIONS */
134 /*----------------------------------------------------------------------------*/
135 /* Misc linker settings                                                       */
138 /*-------------------------------- END ---------------------------------------*/