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