]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/rm-lld.git/blob - device/k2h/policy_dsp_arm.dts
c824e72c435db3d69114f724952f4667b2d1d3dd
[keystone-rtos/rm-lld.git] / device / k2h / policy_dsp_arm.dts
1 /dts-v1/;
3 /* Keystone II policy containing reserving resources used by Linux Kernel */
5 / {
6     /* Valid instance list contains instance names used within TI example projects
7      * utilizing RM.  The list can be modified as needed by applications integrating
8      * RM.  For an RM instance to be given permissions the name used to initialize it
9      * must be present in this list */
10     valid-instances = "RM_Server",
11                       "RM_Client0",
12                       "RM_Client1",
13                       "RM_Client2",
14                       "RM_Client3",
15                       "RM_Client4",
16                       "RM_Client5",
17                       "RM_Client6",
18                       "RM_Client7",
19                       "RM_Client_NETAPI";
20         
21     qmss {
22         /* QMSS in joint mode affects only -qm1 resource */
23         control-qm1 {
24             assignments = <0 1>, "iu = (*)";
25         };
26         control-qm2 {
27             assignments = <0 1>, "iu = (*)";
28         };
29         
30         linkram-control-qm1 {
31             assignments = <0 1>, "(*)";             /* Used by Kernel */
32         };
33         linkram-control-qm2 {
34             assignments = <0 1>, "(*)";             /* Used by Kernel */
35         };
37         linkram-int-qm1 {
38             /* linux provided 0x18000 descriptors of linking RAM but uses 0x4000 to 0x8000 */
39             assignments = <0x00000000 0x00004000>, "iu = (*)",
40                           <0x00004000 0x00004000>, "(*)"; /* Used by Kernel */
41         };
42         linkram-int-qm2 {
43             /* linux provided 0x18000 descriptors of linking RAM but uses 0x4000 to 0x8000 */
44             assignments = <0x00000000 0x00004000>, "iu = (*)",
45                           <0x00004000 0x00004000>, "(*)"; /* Used by Kernel */
46         };      
47         linkram-ext-qm1 {
48             assignments = <0x00008000 0x00010000>, "iu = (*)";
49         };
50         linkram-ext-qm2 {
51             assignments = <0x00008000 0x00010000>, "iu = (*)";
52         };      
53         
54         memory-regions-qm1 {
55             assignments = <0  12>, "iu = (*)",
56                           <12 3>,  "(*)",             /* Used by Kernel */
57                           <15 49>, "iu = (*)";
58         };
59         memory-regions-qm2 {
60             assignments = <0  12>, "iu = (*)",
61                           <12 3>,  "(*)",             /* Used by Kernel */
62                           <15 49>, "iu = (*)";
63         };        
65         LOW_PRIORITY_QUEUE-qm1 {
66             /* this is loosely coupled with accumulator-ch channels 32-47.  These queues are
67              * just suggested to be paired with these channels, the accumulator can be sw
68              * configured to use any queue */
69             assignments = <0 128>,   "iu = (*)", /* suggested for channels 32-35 */
70                           <128 128>, "     (*)", /* used by linux (accumulator-low-#); linux pairs these to channels 36-39 */
71                           <256 256>, "iu = (*)"; /* suggested for channels 40-47 */
72         };
73         AIF_QUEUE-qm1 {
74             assignments = <512 128>, "iu = (*)";
75         };
76         PASS_QUEUE-qm1 {
77             assignments = <640  9>,  "iu = (*)";     /* used by both kernel and DSP */        
78         };
79         INTC_QUEUE-qm1 {
80             assignments = <652 6>, "iu = (*)";
81         }; 
82         INTC_SET2_QUEUE-qm1 {
83             assignments = <658 8>, "(*)"; /* potentially used by kernel */
84         }; 
85         INTC_SET3_QUEUE-qm1 {
86             assignments = <666 6>, "iu = (*)";
87         }; 
88         SRIO_QUEUE-qm1 {
89             assignments = <672 16>, "iu = (*)";
90         }; 
91         FFTC_A_QUEUE-qm1 {
92             assignments = <688 4>, "iu = (*)";
93         }; 
94         FFTC_B_QUEUE-qm1 {
95             assignments = <692 4>, "iu = (*)";
96         }; 
97         HIGH_PRIORITY_QUEUE-qm1 {
98             /* this is loosely coupled with accumulator-ch channels 0-15.  These queues are
99              * just suggested to be paired with these channels, the accumulator can be sw
100              * configured to use any queue */
101             assignments = <704 16>, "iu = (*)", /* suggested for channels 0-15 */
102                           <720 8>,  "iu = (*)", /* Declared, but not used, by linux (accumulator-high.values). */ 
103                           <728 8>,  "iu = (*)"; /* suggested for channels 24-31 */
104         };       
105         STARVATION_COUNTER_QUEUE-qm1 {
106             assignments = <736 64>, "iu = (*)";
107         };  
108         INFRASTRUCTURE_QUEUE-qm1 {
109             assignments = <800  16>,   "(*)",       /* Used by Kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
110                           <816  16>,   "iu = (*)";
111         }; 
112         TRAFFIC_SHAPING_QUEUE-qm1 {
113             assignments = <832 32>, "iu = (*)";
114         };         
115         BCP_QUEUE-qm1 {
116             assignments = <864 8>, "iu = (*)";
117         };         
118         FFTC_C_QUEUE-qm1 {
119             assignments = <872 4>, "iu = (*)";
120         }; 
121         FFTC_D_QUEUE-qm1 {
122             assignments = <876 4>, "iu = (*)";
123         }; 
124         FFTC_E_QUEUE-qm1 {
125             assignments = <880 4>, "iu = (*)";
126         }; 
127         FFTC_F_QUEUE-qm1 {
128             assignments = <884 4>, "iu = (*)";
129         }; 
130         GENERAL_PURPOSE_QUEUE-qm1 {
131             assignments = <896  3104>,  "iu = (*)",
132                           <4000 64>,    "(*)",       /* Used by Kernel */
133                           <4064 2336>,  "iu = (*)",
135                           /* 6400-6477 is taken by linux for qostree2, but DSP can transmit via "fastpath" queues */
136                           <6400 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
137                           <6472 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
138                           <6478 114>,   "(*)",       /* unconfigured QoS/Linux queues (qos-inputs-2) */
140                           <6592 1408>,  "iu = (*)",
142                           /* 8000-8191 is taken by linux for qostree but DSP can transmit via "fastpath" queues */
143                           <8000 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
144                           <8072 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
145                           <8078 114>,   "(*)";       /* unconfigured QoS/Linux queues (qos-inputs-1) */
146         };    
147         LOW_PRIORITY_QUEUE-qm2 {
148             assignments = <8192 512>, "iu = (*)";
149         };
150         INTC_SET4_QUEUE-qm2 {
151             assignments = <8844 20>, "iu = (*)";
152         }; 
153         GIC400_QUEUE-qm2 {
154             assignments = <8704 24>,   "iu = (RM_Client_NETAPI)",             /* Used by Kernel */
155                           <8728 8>,    "iu = (*)";
156         };    
157         EDMA_4_QUEUE-qm2 {
158             assignments = <8736 8>, "iu = (*)";
159         };     
160         HLINK_BROADCAST_QUEUE-qm2 {
161             assignments = <8744 8>, "iu = (*)";
162         }; 
163         XGE_QUEUE-qm2 {
164             assignments = <8752 8>, "iu = (*)";   /* can be used by both dsp and kernel */
165         };         
166         HLINK_0_QUEUE-qm2 {
167             assignments = <8796 16>, "iu = (*)";
168         };       
169         DXB_QUEUE-qm2 {
170             assignments = <8836 8>, "iu = (*)";
171         };         
172         HLINK_1_QUEUE-qm2 {
173             assignments = <8864 16>, "iu = (*)";
174         };
175         HIGH_PRIORITY_QUEUE-qm2 {
176             assignments = <8896 32>, "iu = (*)";
177         };       
178         STARVATION_COUNTER_QUEUE-qm2 {
179             assignments = <8928 64>, "iu = (*)";
180         };  
181         QM2_INFRASTRUCTURE_QUEUE-qm2 {
182             assignments = <8992 32>, "iu = (*)";
183         }; 
184         GENERAL_PURPOSE_QUEUE-qm2 {
185             assignments = <9024 7360>, "iu = (*)";
186         }; 
187         
188         firmware-pdsp {
189             assignments = <0 1>, "     (*)", /* pdsp0: accumulator 0 downloaded by linux */
190                           <1 1>, "iu = (*)", /* pdsp1: for em scheduler if event machine is used (not downloaded by linux) */
191                           <2 1>, "iu = (*)", /* pdsp2: for accumulator 1 on second intd (not downloaded by linux) */
192                           <3 1>, "     (*)", /* pdsp3: qostree downloaded by linux */
193                           <4 1>, "iu = (*)", /* pdsp4: for em scheduler if event machine is used (not downloaded by linux) */
194                           <5 1>, "iu = (*)", /* pdsp5: for em scheduler if event machine is used (not downloaded by linux) */
195                           <6 1>, "iu = (*)", /* pdsp6: for em router if event machine is used (not downloaded by linux) */
196                           <7 1>, "     (*)"; /* pdsp7: qostree2 downloaded by linux */
197         };        
198         accumulator0-ch { /* accumulator using first INTD */
199             assignments = <0 16>, "iu = (*)",    /* high priority 0-15 available for everyone */      
200                           <16 8>, "iu = (*)",    /* declared but not used by linux, subject to change */
201                           <24 8>, "iu = (*)",    /* last 8 high priority are used by event machine, available in non EM use case */
202                           <32 4>, "iu = (*)",    /* first 4 low priority are used by event machine, available in non EM use case */
203                           <36 4>, "     (*)",    /* next 4 low priority are used by linux (accumulator-low-#) */
204                           <40 8>, "iu = (*)";    /* available for all */
205         };             
206         accumulator1-ch { /* accumulator using second INTD */
207             assignments = <0 48>, "iu = (*)";    /* linux doesn't use it */
208         };             
209     }; /* qmss */
211     cppi {
212         srio-rx-ch {
213             assignments = <0 16>, "iu = (*)";
214         };
215         srio-tx-ch {
216             assignments = <0 16>, "iu = (*)";
217         };
218         srio-rx-flow-id {
219             assignments = <0 20>, "iu = (*)";
220         };   
222         aif-rx-ch {
223             assignments = <0 129>, "iu = (*)";
224         };
225         aif-tx-ch {
226             assignments = <0 129>, "iu = (*)";
227         };
228         aif-rx-flow-id {
229             assignments = <0 129>, "iu = (*)";
230         };      
232         fftc-a-rx-ch {
233             assignments = <0 4>, "iu = (*)";
234         };
235         fftc-a-tx-ch {
236             assignments = <0 4>, "iu = (*)";
237         };
238         fftc-a-rx-flow-id {
239             assignments = <0 8>, "iu = (*)";
240         };   
242         fftc-b-rx-ch {
243             assignments = <0 4>, "iu = (*)";
244         };
245         fftc-b-tx-ch {
246             assignments = <0 4>, "iu = (*)";
247         };
248         fftc-b-rx-flow-id {
249             assignments = <0 8>, "iu = (*)";
250         };   
252         fftc-c-rx-ch {
253             assignments = <0 4>, "iu = (*)";
254         };
255         fftc-c-tx-ch {
256             assignments = <0 4>, "iu = (*)";
257         };
258         fftc-c-rx-flow-id {
259             assignments = <0 8>, "iu = (*)";
260         };
262         fftc-d-rx-ch {
263             assignments = <0 4>, "iu = (*)";
264         };
265         fftc-d-tx-ch {
266             assignments = <0 4>, "iu = (*)";
267         };
268         fftc-d-rx-flow-id {
269             assignments = <0 8>, "iu = (*)";
270         };   
272         fftc-e-rx-ch {
273             assignments = <0 4>, "iu = (*)";
274         };
275         fftc-e-tx-ch {
276             assignments = <0 4>, "iu = (*)";
277         };
278         fftc-e-rx-flow-id {
279             assignments = <0 8>, "iu = (*)";
280         };
282         fftc-f-rx-ch {
283             assignments = <0 4>, "iu = (*)";
284         };
285         fftc-f-tx-ch {
286             assignments = <0 4>, "iu = (*)";
287         };
288         fftc-f-rx-flow-id {
289             assignments = <0 8>, "iu = (*)";
290         };         
291         
292         pass-rx-ch {
293             assignments = <0 24>, "     (*)"; /* initialized by kernel */
294         };
295         pass-tx-ch {
296             assignments = <0 7>, "     (*)", /* initialized by kernel, can directly open queuse */
297                           <7 1>, "iu = (*)", /* SA channel.  Linux initializes, but some applications need to enable/disable on fly */
298                           <8 1>, "     (*)"; /* initialized by kernel, can directly open queuse */
299         };
300         pass-rx-flow-id {
301             assignments = <0 22>, "iu = (*)", /* available */
302                           <22 5>, "     (*)", /* used by kernel (netrx0, netrx1, netrx2, netrx3, crypto-rx0) */
303                           <27 4>, "iu = (*)", /* available */
304                           <31 1>, "     (*)"; /* used by kernel (parx) */
305         };   
307         qmss-qm1-rx-ch {
308             assignments = <0  16>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
309                           <16 16>, "iu = (*)";
310         };
311         qmss-qm1-tx-ch {
312             assignments = <0  16>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
313                           <16 16>, "iu = (*)";
314         };
315         qmss-qm1-rx-flow-id {
316             assignments = <0  16>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
317                           <16 48>, "iu = (*)";
318         };   
320         qmss-qm2-rx-ch {
321             assignments = <0 32>, "iu = (*)";
322         };
323         qmss-qm2-tx-ch {
324             assignments = <0 32>, "iu = (*)";
325         };
326         qmss-qm2-rx-flow-id {
327             assignments = <0 64>, "iu = (*)";
328         };        
330         bcp-rx-ch {
331             assignments = <0 8>, "iu = (*)";
332         };
333         bcp-tx-ch {
334             assignments = <0 8>, "iu = (*)";
335         };
336         bcp-rx-flow-id {
337             assignments = <0 64>, "iu = (*)";
338         };           
340         xge-rx-ch {
341             assignments = <0 16>, "    (*)"; /* initialized by kernel */
342         };
343         xge-tx-ch {
344             assignments = <0 8>, "     (*)"; /* initialized by kernel, directly open the queues */
345         };
346         xge-rx-flow-id {
347             assignments = <0 1>,  "     (*)", /* used by kernel (xgerx0) */
348                           <1 7>,  "iu = (*)", /* available */
349                           <8 1>,  "     (*)", /* used by kernel (xgerx1) */
350                           <9 23>, "iu = (*)"; /* available */
351         };           
352     }; /* cppi */
354     pa {
355         pa-lut { 
356             assignments = <0 5>, "iu = (*)";
357         };
358         pa-firmware {
359             assignments = <0 1>, "(*)"; /* linux downloads PA firmware */
360         };
361         pa-32bUsrStats {
362             assignments = <0 512>, "iu = (*)";
363         };
364         pa-64bUsrStats {
365             assignments = <0 256>, "iu = (*)";
366         };
367     }; /* pa */
368     
369 };