]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/board/diag/icssg_enet/build/am65xx/linker_mcu1_0.lds
PDK-9596: Migrated ICSSG EMAC test to ENET LLD
[processor-sdk/pdk.git] / packages / ti / board / diag / icssg_enet / build / am65xx / linker_mcu1_0.lds
1 /*----------------------------------------------------------------------------*/
2 /* File: linker_r5.lds                                                        */
3 /* Description:                                                                                                                           */
4 /*    Link command file for AM65xx                                                                        */
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 /*    Nov 11th, 2018 Updated for diagnostic tests .............. EVM team     */
15 /*----------------------------------------------------------------------------*/
16 /* Linker Settings                                                            */
17 /* Standard linker options                                                                                                        */
18 --retain="*(.intvecs)"
19 --retain="*(.intc_text)"
20 --retain="*(.rstvectors)"
21 --retain="*(.irqStack)"
22 --retain="*(.fiqStack)"
23 --retain="*(.abortStack)"
24 --retain="*(.undStack)"
25 --retain="*(.svcStack)"
26 --fill_value=0
27 --stack_size=0x2000
28 --heap_size=0x1000
29 --entry_point=_resetvectors             /* Default C RTS boot.asm       */
31 -stack  0x8000                              /* SOFTWARE STACK SIZE           */
32 -heap   0x2000                              /* HEAP AREA SIZE                */
34 /* Stack Sizes for various modes */
35 __IRQ_STACK_SIZE = 0x1000;
36 __FIQ_STACK_SIZE = 0x1000;
37 __ABORT_STACK_SIZE = 0x1000;
38 __UND_STACK_SIZE = 0x1000;
39 __SVC_STACK_SIZE = 0x1000;
41 /*----------------------------------------------------------------------------*/
42 /* Memory Map                                                                 */
43 MEMORY
44 {
45     /* Reserved for SBL/Available at run time from 0x000041C00000 to 0x000041C3E000 */
46     /* Refer user guide for details */
47         OCMCRAM     : ORIGIN = 0x000041C3E000, LENGTH = 0x00042000                              /* MCUSS-OCMC RAM - 512KB                                       */
48     BOOTVECTOR  : ORIGIN = 0x000070000100, LENGTH = 0x00001000 - 0x100      /* MSMC RAM INIT CODE (4 KB)                                */
49     DIAG_FRAMEWORK  : ORIGIN = 0x000070001000, LENGTH = 0x80000 - 0x1000        /* MSMC resrved for diag framework - Don't use for diag tests */
50     DIAG_COMMON     : ORIGIN = 0x000070080000, LENGTH = 0x68000                         /* MSMC for diag common usage */
51     DIAG_STACK      : ORIGIN = 0x0000700E8000, LENGTH = 0x8000                          /* MSMC for diag stack */
52     DMSC_RSVD       : ORIGIN = 0x0000700F0000, LENGTH = 0x10000                         /* MSMC reserved for DMSC - DO NOT use it */
53     DIAG_DATA       : ORIGIN = 0x000070100000, LENGTH = 0xF0000                         /* MSMC for diag data */
54     DDR_0      (RWX) : ORIGIN =  0x80000000, LENGTH = 0x10000000
55     DDR_1      (RWX) : ORIGIN =  0x90000000, LENGTH = 0x10000000
56     DDR_2      (RWX) : ORIGIN =  0xA0000000, LENGTH = 0x60000000
58 }  /* end of MEMORY */
60 /*----------------------------------------------------------------------------*/
61 /* Section Configuration                                                      */
63 SECTIONS
64 {
65 /* 'intvecs' and 'intc_text' sections shall be placed within                  */
66 /* a range of +\- 16 MB                                                       */
67     .intvecs    : {} palign(8)      > BOOTVECTOR
68     .intc_text  : {} palign(8)      > BOOTVECTOR
69     .rstvectors     : {} palign(8)      > OCMCRAM
70     .startupCode    : {} palign(8)      > DIAG_COMMON
71     .bootCode       : {} palign(8)      > DIAG_COMMON
72     .startupData    : {} palign(8)      > DIAG_DATA, type = NOINIT
73     .text       : {} palign(8)      > DIAG_COMMON
74     diagData    : {} palign(8)      > DIAG_DATA
75     .const      : {} palign(8)      > DIAG_DATA
76     .cinit      : {} palign(8)      > DIAG_DATA
77     .pinit      : {} palign(8)      > DIAG_DATA
79     .sysmem     : {}                > DIAG_COMMON
80     .bss:extMemCache:ramdisk : {} align (32)     > DIAG_COMMON
81         
82     /* DMA packet info (metadata), packet data and UDMA ring and desc memory */
83     .bss:ENET_DMA_DESC_MEMPOOL (NOLOAD) {} ALIGN (128) > DDR_0
84     .bss:ENET_DMA_RING_MEMPOOL (NOLOAD) {} ALIGN (128) > DDR_0
85     .bss:ENET_DMA_PKT_MEMPOOL  (NOLOAD) {} ALIGN (128) > DDR_0
86     .bss:ENET_DMA_OBJ_MEM      (NOLOAD) {} ALIGN (128) > DDR_0
87     .bss:ENET_DMA_PKT_INFO_MEMPOOL (NOLOAD) {} ALIGN (128) > DDR_0
88  
89     .stack      : {} align(4)    > DIAG_STACK  (HIGH)
90     .irqStack   : {. = . + __IRQ_STACK_SIZE;} align(4)     > DIAG_COMMON  (HIGH)
91     usbramdisk    : {} palign(8)   > DIAG_DATA
92     RUN_START(__IRQ_STACK_START)
93     RUN_END(__IRQ_STACK_END)
94     .fiqStack   : {. = . + __FIQ_STACK_SIZE;} align(4)     > DIAG_COMMON  (HIGH)
95     RUN_START(__FIQ_STACK_START)
96     RUN_END(__FIQ_STACK_END)
97     .abortStack         : {. = . + __ABORT_STACK_SIZE;} align(4)                > DIAG_COMMON  (HIGH)
98     RUN_START(__ABORT_STACK_START)
99     RUN_END(__ABORT_STACK_END)
100     .undStack   : {. = . + __UND_STACK_SIZE;} align(4)          > DIAG_COMMON  (HIGH)
101     RUN_START(__UND_STACK_START)
102     RUN_END(__UND_STACK_END)
103     .svcStack   : {. = . + __SVC_STACK_SIZE;} align(4)          > DIAG_COMMON  (HIGH)
104     RUN_START(__SVC_STACK_START)
105     RUN_END(__SVC_STACK_END)
106     /* Keep the DDR sections at the end to make sure
107        any of the above stack sections are not getting into
108        the DDR memory.
109      */
110     uartbuffer          : {} palign(8)          > DDR_0
111     .bss            : {} align(4)               > DDR_0
112     .data           : {} palign(128)    > DDR_1
113     .data_buffer        : {} palign(8)          > DDR_1
115 /* Additional sections settings         */
117 }  /* end of SECTIONS */
119 /*----------------------------------------------------------------------------*/
120 /* Misc linker settings                                                       */
123 /*-------------------------------- END ---------------------------------------*/