52416d32bba2541872faf9c3421c62c420381b4f
[processor-sdk/pdk.git] / packages / ti / drv / ipc / examples / common / j7200 / linker_r5f_mcu1_0_sysbios.lds
1 /*----------------------------------------------------------------------------*/
2 /* File: linker_r5f_mcu1_0_sysbios.lds */
3 /* Description: */
4 /* Link command file for J7ES MCU1_0 view */
5 /* TI ARM Compiler version 15.12.3 LTS or later */
6 /* */
7 /* (c) Texas Instruments 2018, All rights reserved. */
8 /*----------------------------------------------------------------------------*/
9 /* History: */
10 /* Aug 26th, 2016 Original version .......................... Loc Truong */
11 /* Aug 01th, 2017 new TCM mem map .......................... Loc Truong */
12 /* Nov 07th, 2017 Changes for R5F Init Code.................. Vivek Dhande */
13 /* Sep 17th, 2018 Added DDR sections for IPC................. J. Bergsagel */
14 /* Sep 26th, 2018 Extra mem sections for IPC resource table.. J. Bergsagel */
15 /* Nov 06th, 2018 Correction to TCM addresses for MCU1_0..... J. Bergsagel */
16 /* Nov 07th, 2018 Split up OCMRAM_MCU for split-mode R5Fs.... J. Bergsagel */
17 /* Apr 23th, 2019 Changes for R5F startup Code............... Vivek Dhande */
18 /*----------------------------------------------------------------------------*/
19 /* Linker Settings */
20 /* Standard linker options */
21 --retain="*(.bootCode)"
22 --retain="*(.startupCode)"
23 --retain="*(.startupData)"
24 --fill_value=0
25 --stack_size=0x2000
26 --heap_size=0x1000
28 -stack 0x2000 /* SOFTWARE STACK SIZE */
29 -heap 0x2000 /* HEAP AREA SIZE */
31 #define DDR0_ALLOCATED_START 0xA0000000
33 #define MCU1_0_EXT_DATA_BASE (DDR0_ALLOCATED_START + 0x00100000)
34 #define MCU1_0_R5F_MEM_TEXT_BASE (DDR0_ALLOCATED_START + 0x00200000)
35 #define MCU1_0_R5F_MEM_DATA_BASE (DDR0_ALLOCATED_START + 0x00300000)
36 #define MCU1_0_DDR_SPACE_BASE (DDR0_ALLOCATED_START + 0x00400000)
38 #define MCU1_1_ALLOCATED_START DDR0_ALLOCATED_START + 0x01000000
39 #define MCU1_1_EXT_DATA_BASE (MCU1_1_ALLOCATED_START + 0x00100000)
40 #define MCU1_1_R5F_MEM_TEXT_BASE (MCU1_1_ALLOCATED_START + 0x00200000)
41 #define MCU1_1_R5F_MEM_DATA_BASE (MCU1_1_ALLOCATED_START + 0x00300000)
42 #define MCU1_1_DDR_SPACE_BASE (MCU1_1_ALLOCATED_START + 0x00400000)
44 #define MCU2_0_ALLOCATED_START DDR0_ALLOCATED_START + 0x02000000
45 #define MCU2_0_EXT_DATA_BASE (MCU2_0_ALLOCATED_START + 0x00100000)
46 #define MCU2_0_R5F_MEM_TEXT_BASE (MCU2_0_ALLOCATED_START + 0x00200000)
47 #define MCU2_0_R5F_MEM_DATA_BASE (MCU2_0_ALLOCATED_START + 0x00300000)
48 #define MCU2_0_DDR_SPACE_BASE (MCU2_0_ALLOCATED_START + 0x00400000)
50 #define MCU2_1_ALLOCATED_START DDR0_ALLOCATED_START + 0x03000000
51 #define MCU2_1_EXT_DATA_BASE (MCU2_1_ALLOCATED_START + 0x00100000)
52 #define MCU2_1_R5F_MEM_TEXT_BASE (MCU2_1_ALLOCATED_START + 0x00200000)
53 #define MCU2_1_R5F_MEM_DATA_BASE (MCU2_1_ALLOCATED_START + 0x00300000)
54 #define MCU2_1_DDR_SPACE_BASE (MCU2_1_ALLOCATED_START + 0x00400000)
56 #define ATCM_START 0x00000000
58 -e __VECS_ENTRY_POINT
60 /*----------------------------------------------------------------------------*/
61 /* Memory Map */
62 MEMORY
63 {
64 /* MCU1_R5F_0 local view */
65 MCU_ATCM (RWX) : origin=ATCM_START length=0x8000
66 /* MCU1_R5F0_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 (documented only, to avoid conflict below) */
68 /* MCU1_R5F_0 SoC view */
69 MCU1_R5F0_ATCM (RWIX) : origin=0x41000000 length=0x8000
70 MCU1_R5F0_BTCM (RWIX) : origin=0x41010000 length=0x8000
72 /* MCUSS RAM - Start towards the end to avoid Bootloader usage of the SRAM */
73 OCMC_RAM_BOARD_CFG (RWIX) : origin=0x41c80000 length=0x2000
74 OCMC_RAM (RWIX) : origin=0x41c82000 length=0x7DB00
75 OCMC_RAM_X509_HEADER (RWIX) : origin=0x41cffb00 length=0x500
77 DDR0_RESERVED (RWIX) : origin=0x80000000 length=0x20000000 /* 512MB */
78 MCU1_0_IPC_DATA (RWIX) : origin=DDR0_ALLOCATED_START length=0x00100000 /* 1MB */
79 MCU1_0_EXT_DATA (RWIX) : origin=MCU1_0_EXT_DATA_BASE length=0x00100000 /* 1MB */
80 MCU1_0_R5F_MEM_TEXT (RWIX) : origin=MCU1_0_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
81 MCU1_0_R5F_MEM_DATA (RWIX) : origin=MCU1_0_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
82 MCU1_0_DDR_SPACE (RWIX) : origin=MCU1_0_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
83 MCU1_1_IPC_DATA (RWIX) : origin=MCU1_1_ALLOCATED_START length=0x00100000 /* 1MB */
84 MCU1_1_EXT_DATA (RWIX) : origin=MCU1_1_EXT_DATA_BASE length=0x00100000 /* 1MB */
85 MCU1_1_R5F_MEM_TEXT (RWIX) : origin=MCU1_1_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
86 MCU1_1_R5F_MEM_DATA (RWIX) : origin=MCU1_1_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
87 MCU1_1_DDR_SPACE (RWIX) : origin=MCU1_1_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
88 MCU2_0_IPC_DATA (RWIX) : origin=MCU2_0_ALLOCATED_START length=0x00100000 /* 1MB */
89 MCU2_0_EXT_DATA (RWIX) : origin=MCU2_0_EXT_DATA_BASE length=0x00100000 /* 1MB */
90 MCU2_0_R5F_MEM_TEXT (RWIX) : origin=MCU2_0_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
91 MCU2_0_R5F_MEM_DATA (RWIX) : origin=MCU2_0_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
92 MCU2_0_DDR_SPACE (RWIX) : origin=MCU2_0_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
93 MCU2_1_IPC_DATA (RWIX) : origin=MCU2_1_ALLOCATED_START length=0x00100000 /* 1MB */
94 MCU2_1_EXT_DATA (RWIX) : origin=MCU2_1_EXT_DATA_BASE length=0x00100000 /* 1MB */
95 MCU2_1_R5F_MEM_TEXT (RWIX) : origin=MCU2_1_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
96 MCU2_1_R5F_MEM_DATA (RWIX) : origin=MCU2_1_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
97 MCU2_1_DDR_SPACE (RWIX) : origin=MCU2_1_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
99 SHARED_DDR_SPACE (RWIX) : origin=0xA4000000 length=0x00800000 /* 8MB */
101 } /* end of MEMORY */
103 /*----------------------------------------------------------------------------*/
104 /* Section Configuration */
106 SECTIONS
107 {
108 .vecs : {
109 *(.vecs)
110 } palign(8) > ATCM_START
111 .vecs : {
112 __VECS_ENTRY_POINT = .;
113 } palign(8) > MCU_ATCM
114 .init_text : {
115 boot.*(.text)
116 *(.text:ti_sysbios_family_arm_MPU_*)
117 *(.text:ti_sysbios_family_arm_v7r_Cache_*)
118 } > MCU_ATCM
119 .text:xdc_runtime_Startup_reset__I : {} palign(8) > MCU_ATCM
120 .bootCode : {} palign(8) > MCU_ATCM
121 .startupCode : {} palign(8) > MCU_ATCM
122 .startupData : {} palign(8) > MCU_ATCM, type = NOINIT
123 .text : {} palign(8) > MCU1_0_DDR_SPACE
124 .const : {} palign(8) > MCU1_0_DDR_SPACE
125 .cinit : {} palign(8) > MCU1_0_DDR_SPACE
126 .pinit : {} palign(8) > MCU1_0_DDR_SPACE
127 .bss : {} align(4) > MCU1_0_DDR_SPACE
128 .data : {} palign(128) > MCU1_0_DDR_SPACE
129 .data_buffer: {} palign(128) > MCU1_0_DDR_SPACE
130 .sysmem : {} > MCU1_0_DDR_SPACE
131 .stack : {} align(4) > MCU1_0_DDR_SPACE
132 ipc_data_buffer (NOINIT) : {} palign(128) > MCU1_0_DDR_SPACE
134 .const.devgroup.MCU_WAKEUP : {} align(4) > MCU1_0_DDR_SPACE
135 .const.devgroup.MAIN : {} align(4) > MCU1_0_DDR_SPACE
136 .const.devgroup.DMSC_INTERNAL : {} align(4) > MCU1_0_DDR_SPACE
137 .bss.devgroup.MAIN : {} align(4) > MCU1_0_DDR_SPACE
138 .bss.devgroup.MCU_WAKEUP : {} align(4) > MCU1_0_DDR_SPACE
139 .bss.devgroup.DMSC_INTERNAL : {} align(4) > MCU1_0_DDR_SPACE
140 .boardcfg_data : {} align(4) > MCU1_0_DDR_SPACE
141 .bss.devgroup* : {} align(4) > MCU1_0_DDR_SPACE
142 .const.devgroup* : {} align(4) > MCU1_0_DDR_SPACE
144 .resource_table : {
145 __RESOURCE_TABLE = .;
146 } > MCU1_0_EXT_DATA_BASE
148 .tracebuf : {} > MCU1_0_EXT_DATA
150 } /* end of SECTIONS */
152 /*----------------------------------------------------------------------------*/
153 /* Misc linker settings */
156 /*-------------------------------- END ---------------------------------------*/