1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32
33 34 35 36
37
38 /*!
39 * ======== Platform ========
40 * Platform support for AM572X
41 *
42 * This module implements xdc.platform.IPlatform and defines configuration
43 * parameters that correspond to this platform's Cpu's, Board's, etc.
44 *
45 * The configuration parameters are initialized in this package's
46 * configuration script (package.cfg) and "bound" to the TCOM object
47 * model. Once they are part of the model, these parameters are
48 * queried by a program's configuration script.
49 *
50 * This particular platform has 1 Cortex-A15, 2 Benelli/IPU
51 * Sub-system (Dual M4's) and 2 C66x DSP's.
52 */
53 metaonly module Platform inherits xdc.platform.IPlatform
54 {
55 readonly config xdc.platform.IPlatform.Board BOARD = {
56 id: "0",
57 boardName: "evmAM572X",
58 boardFamily: "evmAM572X",
59 boardRevision: null,
60 };
61
62 readonly config xdc.platform.IExeContext.Cpu DSP = {
63 id: "0",
64 clockRate: 700,
65 catalogName: "ti.catalog.c6000",
66 deviceName: "DRA7XX",
67 revision: "1.0",
68 };
69
70
71 readonly config xdc.platform.IExeContext.Cpu M4 = {
72 id: "1",
73 clockRate: 212.8,
74 catalogName: "ti.catalog.arm.cortexm4",
75 deviceName: "DRA7XX",
76 revision: "1.0",
77 };
78
79
80 readonly config xdc.platform.IExeContext.Cpu GPP = {
81 id: "3",
82 clockRate: 1500.0,
83 catalogName: "ti.catalog.arm.cortexa15",
84 deviceName: "DRA7XX",
85 revision: "1.0"
86 };
87
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
123
124 readonly config Any SR_0 = {
125 name: "SR_0", space: "data", access: "RWX",
126 base: 0x8E000000, len: 0x1000000,
127 comment: "SR#0 Memory (16 MB)"
128 };
129
130 readonly config Any DSP1 = {
131 externalMemoryMap: [
132 [ "DSP1_PROG", {
133 name: "DSP1_PROG", space: "code/data", access: "RWX",
134 base: 0x8C000000, len: 0x1000000,
135 comment: "DSP1 Program Memory (16 MB)"
136 }],
137 [ "SR_0", SR_0 ]
138 ],
139 codeMemory: "DSP1_PROG",
140 dataMemory: "DSP1_PROG",
141 stackMemory: "DSP1_PROG",
142 l1DMode: "32k",
143 l1PMode: "32k",
144 l2Mode: "128k"
145 };
146
147 readonly config Any DSP2 = {
148 externalMemoryMap: [
149 [ "DSP2_PROG", {
150 name: "DSP2_PROG", space: "code/data", access: "RWX",
151 base: 0x8D000000, len: 0x1000000,
152 comment: "DSP2 Program Memory (16 MB)"
153 }],
154 [ "SR_0", SR_0 ]
155 ],
156 codeMemory: "DSP2_PROG",
157 dataMemory: "DSP2_PROG",
158 stackMemory: "DSP2_PROG",
159 l1DMode: "32k",
160 l1PMode: "32k",
161 l2Mode: "128k"
162 };
163
164 readonly config Any IPU1 = {
165 externalMemoryMap: [
166 [ "IPU1_PROG", {
167 name: "IPU1_PROG", space: "code/data", access: "RWX",
168 base: 0x8A000000, len: 0x800000,
169 comment: "IPU1 Program Memory (8 MB)"
170 }],
171 [ "SR_0", SR_0 ]
172 ],
173 codeMemory: "IPU1_PROG",
174 dataMemory: "IPU1_PROG",
175 stackMemory: "IPU1_PROG"
176 };
177
178 readonly config Any IPU2 = {
179 externalMemoryMap: [
180 [ "IPU2_PROG", {
181 name: "IPU2_PROG", space: "code/data", access: "RWX",
182 base: 0x8A800000, len: 0x800000,
183 comment: "IPU2 Program Memory (8 MB)"
184 }],
185 [ "SR_0", SR_0 ]
186 ],
187 codeMemory: "IPU2_PROG",
188 dataMemory: "IPU2_PROG",
189 stackMemory: "IPU2_PROG"
190 };
191
192 readonly config Any HOST = {
193 externalMemoryMap: [
194 [ "HOST_PROG", {
195 name: "HOST_PROG", space: "code/data", access: "RWX",
196 base: 0x8B000000, len: 0x1000000,
197 comment: "HOST Program Memory (16 MB)"
198 }],
199 [ "SR_0", SR_0 ]
200 ],
201 codeMemory: "HOST_PROG",
202 dataMemory: "HOST_PROG",
203 stackMemory: "HOST_PROG"
204 };
205
206 instance:
207
208 /*!
209 * ======== externalMemoryMap ========
210 * Memory regions as defined in the AM572X Specification
211 */
212 override readonly config xdc.platform.IPlatform.Memory
213 externalMemoryMap[string] = [
214 ["EXT_RAM", {
215 comment: "2 GB External RAM Memory",
216 name: "EXT_RAM",
217 base: 0x80000000,
218 len: 0x80000000
219 }]
220 ];
221
222 223 224 225 226 227
228 config String l1PMode = "32k";
229
230 231 232 233 234 235
236 config String l1DMode = "32k";
237
238 239 240 241 242 243
244 config String l2Mode = "0k";
245 };