Synced K2E and K2L DSP+ARM policy file with latest kernel
[keystone-rtos/rm-lld.git] / device / k2l / 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         control-qm1 {
23             assignments = <0 1>, "iu = (*)";
24         };
25         
26         linkram-control-qm1 {
27             assignments = <0 1>, "(*)";             /* Used by Kernel */
28         };
29         
30         linkram-int-qm1 {
31             assignments = <0x00000000 0x00004000>, "iu = (*)";
32         };
33         linkram-ext-qm1 {
34             /* linux provided 0x14000 descriptors of linking RAM but uses 0x4000 to 0x8000 */
35             assignments = <0x00004000 0x00004000>, "(*)", /* used by Kernel */
36                           <0x00008000 0x0000C000>, "iu = (*)";
37         };
38         
39         memory-regions-qm1 {
40             assignments = <0  12>, "iu = (*)",
41                           <12 3>,  "(*)",             /* Used by Kernel */
42                           <15 49>, "iu = (*)";
43         };
45         LOW_PRIORITY_QUEUE-qm1 {
46             /* this is loosely coupled with accumulator-ch channels 32-47.  These queues are
47              * just suggested to be paired with these channels, the accumulator can be sw
48              * configured to use any queue */
49             assignments = <0 128>,   "iu = (*)", /* suggested for channels 32-35 */
50                           <128 128>, "     (*)", /* used by linux (accumulator-low-#); linux pairs these to channels 36-39 */
51                           <256 256>, "iu = (*)"; /* suggested for channels 40-47 */
52         };
53         GIC400_QUEUE-qm1 {
54             assignments = <528 32>,   "iu = (RM_Client_NETAPI)";             /* Used by Kernel */
55         };
56         EDMA_0_QUEUE-qm1 {
57             assignments = <560 6>, "iu = (*)";
58         };
59         INTC_QUEUE-qm1 {
60             assignments = <570 18>, "iu = (*)";           /* Used by Kernel and DSP */
61         }; 
62         INTC_EDMA_SET0_QUEUE-qm1 {
63             assignments = <589 2>,  "iu = (*)";
64         }; 
65         INTC_EDMA_SET1_QUEUE-qm1 {
66             assignments = <591 8>,  "iu = (*)";
67         }; 
68         INTC_SET5_QUEUE-qm1 {
69             assignments = <599 4>,  "iu = (*)";
70         }; 
71         INTC_EDMA_SET2_QUEUE-qm1 {
72             assignments = <603 2>,  "iu = (*)";
73         }; 
74         INTC_SET2_QUEUE-qm1 {
75             assignments = <605 32>, "iu = (*)";
76         }; 
77         SOC_SET0_QUEUE-qm1 {
78             assignments = <637 15>, "iu = (*)";
79         };
80         INTC_SET3_QUEUE-qm1 {
81             assignments = <652 6>,  "iu = (*)";
82         }; 
83         SOC_SET1_QUEUE-qm1 {
84             assignments = <658 4>, "     (*)", /* potentially used by kernel */
85                           <662 4>, "iu = (*)"; /* available for user mode lld and dsp */
86         };
87         INTC_SET4_QUEUE-qm1 {
88             assignments = <666 22>, "iu = (*)";
89         }; 
90         FFTC_A_QUEUE-qm1 {
91             assignments = <688 4>, "iu = (*)";
92         }; 
93         FFTC_B_QUEUE-qm1 {
94             assignments = <692 4>, "iu = (*)";
95         }; 
96         BCP_QUEUE-qm1 {
97             assignments = <696 8>, "iu = (*)";
98         };         
99         HIGH_PRIORITY_QUEUE-qm1 {
100             /* this is loosely coupled with accumulator-ch channels 0-15.  These queues are
101              * just suggested to be paired with these channels, the accumulator can be sw
102              * configured to use any queue */
103             assignments = <704 16>, "iu = (*)", /* suggested for channels 0-15 */
104                           <720 8>,  "iu = (*)", /* Declared, but not used, by linux (accumulator-high.values). */ 
105                           <728 8>,  "iu = (*)"; /* suggested for channels 24-31 */
106         };       
107         STARVATION_COUNTER_QUEUE-qm1 {
108             assignments = <736 64>, "iu = (*)";
109         };  
110         INFRASTRUCTURE_QUEUE-qm1 {
111             assignments = <800  12>,   "(*)",      /* Used by Kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
112                           <812  20>,   "iu = (*)";
113         }; 
114         IQNET_QUEUE-qm1 {
115             assignments = <832 48>, "iu = (*)";
116         };
117         PASS_QUEUE-qm1 {
118             assignments = <896 21>, "iu = (*)";       /* used by both kernel and DSP */
119         };
120         GENERAL_PURPOSE_QUEUE-qm1 {
121             assignments = <1024 2976>,  "iu = (*)",
122                           <4000 64>,    "(*)",       /* Used by Kernel */
123                           <4064 31>,    "iu = (*)",
124                           <4095 1>,     "iue = (*)",   /* Queues ending in 0xfff can't be used as return queue (hw reserved) */
125                           <4096 2304>,  "iu = (*)",
127                           /* 6400-6477 is taken by linux for qostree2, but DSP can transmit via "fastpath" queues */
128                           <6400 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
129                           <6472 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
130                           <6478 114>,   "(*)",       /* unconfigured QoS/Linux queues (qos-inputs-2) */
132                           <6592 1408>,  "iu = (*)",
134                           /* 8000-8191 is taken by linux for qostree but DSP can transmit via "fastpath" queues */
135                           <8000 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
136                           <8072 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
137                           <8078 114>,   "(*)";       /* unconfigured QoS/Linux queues (qos-inputs-1) */
138                                                      /* note for q 8191: Queues ending in 0xfff can't be used as return queue (hw reserved) */
139         };    
140         
141         firmware-pdsp {
142             assignments = <0 1>, "     (*)", /* pdsp0: accumulator 0 downloaded by linux */
143                           <1 1>, "iu = (*)", /* pdsp1: for em scheduler if event machine is used (not downloaded by linux) */
144                           <2 1>, "iu = (*)", /* pdsp2: for accumulator 1 on second intd (not downloaded by linux) */
145                           <3 1>, "     (*)", /* pdsp3: qostree downloaded by linux */
146                           <4 1>, "iu = (*)", /* pdsp4: for em scheduler if event machine is used (not downloaded by linux) */
147                           <5 1>, "iu = (*)", /* pdsp5: for em scheduler if event machine is used (not downloaded by linux) */
148                           <6 1>, "iu = (*)", /* pdsp6: for em router if event machine is used (not downloaded by linux) */
149                           <7 1>, "     (*)"; /* pdsp7: qostree2 downloaded by linux */
150         };        
151         accumulator0-ch { /* accumulator using first INTD */
152             assignments = <0 16>, "iu = (*)",    /* high priority 0-15 available for everyone */      
153                           <16 8>, "iu = (*)",    /* declared but not used by linux, subject to change */
154                           <24 8>, "iu = (*)",    /* last 8 high priority are used by event machine, available in non EM use case */
155                           <32 4>, "iu = (*)",    /* first 4 low priority are used by event machine, available in non EM use case */
156                           <36 4>, "     (*)",    /* next 4 low priority are used by linux (accumulator-low-#) */
157                           <40 8>, "iu = (*)";    /* available for all */
158         };             
159         accumulator1-ch { /* accumulator using second INTD */
160             assignments = <0 48>, "iu = (*)";    /* linux doesn't use it */
161         };             
163         netss-control-qm1 {
164             assignments = <0 1>, "iu = (*)";
165         };
166         netss-linkram-control-qm1 {
167             assignments = <0 1>, "iu = (*)";
168         };
169         netss-linkram-qm1 {
170             assignments = <0x00000000 0x00004000>, "iu = (*)";
171         };
172         netss-memory-regions-qm1 {
173             assignments = <0 16>, "iu = (*)";
174         };
176         netss-control-qm2 {
177             assignments = <0 1>, "iu = (*)";
178         };
179         netss-linkram-control-qm2 {
180             assignments = <0 1>, "iu = (*)";
181         };
182         netss-linkram-qm2 {
183             assignments = <0x00000000 0x00004000>, "iu = (*)";
184         };
185         netss-memory-regions-qm2 {
186             assignments = <0 16>, "iu = (*)";
187         };
189         NETSS_PASS_QUEUE-qm1 {
190             assignments = <0 21>, "iu = (*)";
191         };
192         NETSS_GENERAL_PURPOSE_QUEUE-qm1 {
193             assignments = <21 43>, "iu = (*)";
194         };
195         NETSS_GENERAL_PURPOSE_QUEUE-qm2 {
196             assignments = <0 64>, "iu = (*)";
197         };
198     }; /* qmss */
200     cppi {
201         fftc-a-hw-open {
202             assignments = <0 1>, "iu = (*)";
203         };
204         fftc-a-rx-ch {
205             assignments = <0 4>, "iu = (*)";
206         };
207         fftc-a-tx-ch {
208             assignments = <0 4>, "iu = (*)";
209         };
210         fftc-a-rx-flow-id {
211             assignments = <0 8>, "iu = (*)";
212         };   
214         fftc-b-hw-open {
215             assignments = <0 1>, "iu = (*)";
216         };
217         fftc-b-rx-ch {
218             assignments = <0 4>, "iu = (*)";
219         };
220         fftc-b-tx-ch {
221             assignments = <0 4>, "iu = (*)";
222         };
223         fftc-b-rx-flow-id {
224             assignments = <0 8>, "iu = (*)";
225         };   
227         netcp-hw-open {
228             assignments = <0 1>, "iu = (*)";
229         };
230         netcp-rx-ch {
231             assignments = <0 91>, "     (*)"; /* initialized by kernel */
232         };
233         netcp-tx-ch {
234             assignments = <0  19>, "     (*)", /* initialized by kernel, can directly open queuse */
235                           <19  1>, "iu = (*)", /* SA channel.  Linux initializes, but some applications need to enable/disable on fly */
236                           <20  1>, "     (*)"; /* initialized by kernel, can directly open queuse */
238         };
239         netcp-rx-flow-id {
240             assignments = <0 22>, "iu = (*)", /* available */
241                           <22 5>, "     (*)", /* used by kernel (netrx0, netrx1, netrx2, netrx3, crypto-rx0) */
242                           <27 4>, "iu = (*)", /* available */
243                           <31 1>, "(*)";  /* Used by kernel - parx */
244         };   
246         qmss-qm1-hw-open {
247             assignments = <0 1>, "iu = (*)";
248         };
249         qmss-qm1-rx-ch {
250             assignments = <0  12>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
251                           <12 20>, "iu = (*)";
252         };
253         qmss-qm1-tx-ch {
254             assignments = <0  12>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
255                           <12 20>, "iu = (*)";
256         };
257         qmss-qm1-rx-flow-id {
258             assignments = <0  12>, "(*)",    /* Used by kernel - 8 (data channel usage irrespective of device) +  1 (channel per DSP core) */
259                           <12 52>, "iu = (*)";
260         };   
262         bcp-hw-open {
263             assignments = <0 1>, "iu = (*)";
264         };
265         bcp-rx-ch {
266             assignments = <0 8>, "iu = (*)";
267         };
268         bcp-tx-ch {
269             assignments = <0 8>, "iu = (*)";
270         };
271         bcp-rx-flow-id {
272             assignments = <0 64>, "iu = (*)";
273         };           
274         
275         netcp-local-hw-open {
276             assignments = <0 1>, "iu = (*)";
277         };
278         netcp-local-rx-ch {
279             assignments = <0 91>, "iu = (*)";
280         };
281         netcp-local-tx-ch {
282             assignments = <0 21>, "iu = (*)";
283         };
284         netcp-local-rx-flow-id {
285             assignments = <0 32>, "iu = (*)";
286         };           
288         iqn-hw-open {
289             assignments = <0 1>, "iu = (*)";
290         };
291         iqn-rx-ch {
292             assignments = <0 47>, "iu = (*)";
293         };
294         iqn-tx-ch {
295             assignments = <0 47>, "iu = (*)";
296         };
297         iqn-rx-flow-id {
298             assignments = <0 47>, "iu = (*)";
299         };           
300     }; /* cppi */
302     pa {
303         pa-lut { 
304             assignments = <0 8>, "iu = (*)";
305         };
306         pa-firmware {
307             assignments = <0 1>, "(*)"; /* linux downloads PA firmware */
308         };
309         pa-32bUsrStats {
310             assignments = <0 512>, "iu = (*)";
311         };
312         pa-64bUsrStats {
313             assignments = <0 256>, "iu = (*)";
314         };
315     }; /* pa */
316 };