415a5bdc729a5397a29a24cdc74da0a19cd9831d
[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
57 #define OCMRAM_MCU1_0_START 0x41cfe000
58 #define OCMRAM_MCU1_1_START 0x41cff000
60 -e __VECS_ENTRY_POINT
62 /*----------------------------------------------------------------------------*/
63 /* Memory Map */
64 MEMORY
65 {
66 /* MCU1_R5F_0 local view */
67 MCU_ATCM (RWX) : origin=ATCM_START length=0x8000
68 /* MCU1_R5F0_TCMB0 (RWIX) : origin=0x41010000 length=0x8000 (documented only, to avoid conflict below) */
70 /* MCU1_R5F_0 SoC view */
71 MCU1_R5F0_ATCM (RWIX) : origin=0x41000000 length=0x8000
72 MCU1_R5F0_BTCM (RWIX) : origin=0x41010000 length=0x8000
74 /* MCUSS RAM - Start towards the end to avoid Bootloader usage of the SRAM */
75 OCMRAM_MCU1_0 (RWIX) : origin=OCMRAM_MCU1_0_START length=0x1000
76 OCMRAM_MCU1_1 (RWIX) : origin=OCMRAM_MCU1_1_START length=0x1000
78 DDR0_RESERVED (RWIX) : origin=0x80000000 length=0x20000000 /* 512MB */
79 MCU1_0_IPC_DATA (RWIX) : origin=DDR0_ALLOCATED_START length=0x00100000 /* 1MB */
80 MCU1_0_EXT_DATA (RWIX) : origin=MCU1_0_EXT_DATA_BASE length=0x00100000 /* 1MB */
81 MCU1_0_R5F_MEM_TEXT (RWIX) : origin=MCU1_0_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
82 MCU1_0_R5F_MEM_DATA (RWIX) : origin=MCU1_0_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
83 MCU1_0_DDR_SPACE (RWIX) : origin=MCU1_0_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
84 MCU1_1_IPC_DATA (RWIX) : origin=MCU1_1_ALLOCATED_START length=0x00100000 /* 1MB */
85 MCU1_1_EXT_DATA (RWIX) : origin=MCU1_1_EXT_DATA_BASE length=0x00100000 /* 1MB */
86 MCU1_1_R5F_MEM_TEXT (RWIX) : origin=MCU1_1_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
87 MCU1_1_R5F_MEM_DATA (RWIX) : origin=MCU1_1_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
88 MCU1_1_DDR_SPACE (RWIX) : origin=MCU1_1_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
89 MCU2_0_IPC_DATA (RWIX) : origin=MCU2_0_ALLOCATED_START length=0x00100000 /* 1MB */
90 MCU2_0_EXT_DATA (RWIX) : origin=MCU2_0_EXT_DATA_BASE length=0x00100000 /* 1MB */
91 MCU2_0_R5F_MEM_TEXT (RWIX) : origin=MCU2_0_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
92 MCU2_0_R5F_MEM_DATA (RWIX) : origin=MCU2_0_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
93 MCU2_0_DDR_SPACE (RWIX) : origin=MCU2_0_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
94 MCU2_1_IPC_DATA (RWIX) : origin=MCU2_1_ALLOCATED_START length=0x00100000 /* 1MB */
95 MCU2_1_EXT_DATA (RWIX) : origin=MCU2_1_EXT_DATA_BASE length=0x00100000 /* 1MB */
96 MCU2_1_R5F_MEM_TEXT (RWIX) : origin=MCU2_1_R5F_MEM_TEXT_BASE length=0x00100000 /* 1MB */
97 MCU2_1_R5F_MEM_DATA (RWIX) : origin=MCU2_1_R5F_MEM_DATA_BASE length=0x00100000 /* 1MB */
98 MCU2_1_DDR_SPACE (RWIX) : origin=MCU2_1_DDR_SPACE_BASE length=0x00C00000 /* 12MB */
100 SHARED_DDR_SPACE (RWIX) : origin=0xA4000000 length=0x00800000 /* 8MB */
102 } /* end of MEMORY */
104 /*----------------------------------------------------------------------------*/
105 /* Section Configuration */
107 SECTIONS
108 {
109 .vecs : {
110 *(.vecs)
111 } palign(8) > ATCM_START
112 .vecs : {
113 __VECS_ENTRY_POINT = .;
114 } palign(8) > MCU_ATCM
115 .init_text : {
116 boot.*(.text)
117 *(.text:ti_sysbios_family_arm_MPU_*)
118 *(.text:ti_sysbios_family_arm_v7r_Cache_*)
119 } > MCU_ATCM
120 .text:xdc_runtime_Startup_reset__I : {} palign(8) > MCU_ATCM
121 .bootCode : {} palign(8) > MCU_ATCM
122 .startupCode : {} palign(8) > MCU_ATCM
123 .startupData : {} palign(8) > MCU_ATCM, type = NOINIT
124 .text : {} palign(8) > MCU1_0_DDR_SPACE
125 .const : {} palign(8) > MCU1_0_DDR_SPACE
126 .cinit : {} palign(8) > MCU1_0_DDR_SPACE
127 .pinit : {} palign(8) > MCU1_0_DDR_SPACE
128 .bss : {} align(4) > MCU1_0_DDR_SPACE
129 .data : {} palign(128) > MCU1_0_DDR_SPACE
130 .data_buffer: {} palign(128) > MCU1_0_DDR_SPACE
131 .sysmem : {} > MCU1_0_DDR_SPACE
132 .stack : {} align(4) > MCU1_0_DDR_SPACE
133 ipc_data_buffer (NOINIT) : {} palign(128) > MCU1_0_DDR_SPACE
134 .resource_table : {
135 __RESOURCE_TABLE = .;
136 } > MCU1_0_EXT_DATA_BASE
138 .tracebuf : {} > MCU1_0_EXT_DATA
140 } /* end of SECTIONS */
142 /*----------------------------------------------------------------------------*/
143 /* Misc linker settings */
146 /*-------------------------------- END ---------------------------------------*/