86ee1e1d4f7c48de21a8e8f416d9adcbff961d99
[keystone-rtos/rm-lld.git] / device / k2e / 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         control-qm1 {
22             assignments = <0 1>, "iu = (*)";
23         };
24         
25         linkram-control-qm1 {
26             assignments = <0 1>, "(*)";             /* Used by Kernel */
27         };
28         
29         linkram-int-qm1 {
30             /* linux provided 0x14000 descriptors of linking RAM but uses 0x4000 to 0x6000 */
31             assignments = <0x00000000 0x00004000>, "iu = (*)";
32         };
33         linkram-ext-qm1 {
34             /* linux provided 0x14000 descriptors of linking RAM but uses 0x4000 to 0x6000 */
35             assignments = <0x00004000 0x00002000>, "(*)", /* used by Kernel */
36                           <0x00006000 0x0000E000>, "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>,   "(*)";             /* Used by Kernel */
55         };
56         EDMA_0_QUEUE-qm1 {
57             assignments = <560 10>, "iu = (*)";
58         };
59         EDMA_1_QUEUE-qm1 {
60             assignments = <570 11>, "iu = (*)";
61         };
62         EDMA_2_QUEUE-qm1 {
63             assignments = <581 8>, "iu = (*)";
64         };
65         EDMA_3_QUEUE-qm1 {
66             assignments = <589 16>, "iu = (*)";
67         };
68         EDMA_4_QUEUE-qm1 {
69             assignments = <605 8>, "iu = (*)";
70         };
71         INTC_QUEUE-qm1 {
72             assignments = <652 6>, "iu = (*)";             /* Used by Kernel and DSP */
73         }; 
74         SOC_SET0_QUEUE-qm1 {
75             assignments = <658 8>, "     (*)";           /* Used by Kernel */
76         };
77         INTC_SET2_QUEUE-qm1 {
78             assignments = <666 26>, "iu = (*)";
79         }; 
80         XGE_QUEUE-qm1 { 
81             assignments = <692 8>, "iu = (*)";            /* Used by Kernel and DSP */
82         };
83         HIGH_PRIORITY_QUEUE-qm1 {
84             /* this is loosely coupled with accumulator-ch channels 0-15.  These queues are
85              * just suggested to be paired with these channels, the accumulator can be sw
86              * configured to use any queue */
87             assignments = <704 16>, "iu = (*)", /* suggested for channels 0-15 */
88                           <720 8>,  "iu = (*)", /* Declared, but not used, by linux (accumulator-high.values). */ 
89                           <728 8>,  "iu = (*)"; /* suggested for channels 24-31 */
90         };       
91         STARVATION_COUNTER_QUEUE-qm1 {
92             assignments = <736 64>, "iu = (*)";
93         };  
94         INFRASTRUCTURE_QUEUE-qm1 {
95             assignments = <800  2>,   "(*)",             /* Used by Kernel */
96                           <802 30>,   "iu = (*)";
97         }; 
98         PASS_QUEUE-qm1 {
99             assignments = <896 21>, "iu = (*)";       /* used by both kernel and DSP */
100         };
101         GENERAL_PURPOSE_QUEUE-qm1 {
102             assignments = <1024 2976>,  "iu = (*)",
103                           <4000 64>,    "(*)",       /* Used by Kernel */
104                           <4064 2336>,  "iu = (*)",
106                           /* 6400-6477 is taken by linux for qostree2, but DSP can transmit via "fastpath" queues */
107                           <6400 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
108                           <6472 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
109                           <6478 114>,   "(*)",       /* unconfigured QoS/Linux queues (qos-inputs-2) */
111                           <6592 1408>,  "iu = (*)",
113                           /* 8000-8191 is taken by linux for qostree but DSP can transmit via "fastpath" queues */
114                           <8000 72>,    "u = (*)",   /* qos queues for DSP (fastpath-best-effort, fastpath-hp, 4g-cos#, 3g-cos#, wifi-cos#) use (open by number) not init */
115                           <8072 6>,     "(*)",       /* qos queues for linux (linux-best-effort, linux-cos#, linux-hp) - DSP can't use */
116                           <8078 114>,   "(*)";       /* unconfigured QoS/Linux queues (qos-inputs-1) */
117         };    
118         
119         firmware-pdsp {
120             assignments = <0 1>, "     (*)", /* pdsp0: accumulator 0 downloaded by linux */
121                           <1 1>, "iu = (*)", /* pdsp1: for em scheduler if event machine is used (not downloaded by linux) */
122                           <2 1>, "iu = (*)", /* pdsp2: for accumulator 1 on second intd (not downloaded by linux) */
123                           <3 1>, "     (*)", /* pdsp3: qostree downloaded by linux */
124                           <4 1>, "iu = (*)", /* pdsp4: for em scheduler if event machine is used (not downloaded by linux) */
125                           <5 1>, "iu = (*)", /* pdsp5: for em scheduler if event machine is used (not downloaded by linux) */
126                           <6 1>, "iu = (*)", /* pdsp6: for em router if event machine is used (not downloaded by linux) */
127                           <7 1>, "     (*)"; /* pdsp7: qostree2 downloaded by linux */
128         };        
129         accumulator0-ch { /* accumulator using first INTD */
130             assignments = <0 16>, "iu = (*)",    /* high priority 0-15 available for everyone */      
131                           <16 8>, "iu = (*)",    /* declared but not used by linux, subject to change */
132                           <24 8>, "iu = (*)",    /* last 8 high priority are used by event machine, available in non EM use case */
133                           <32 4>, "iu = (*)",    /* first 4 low priority are used by event machine, available in non EM use case */
134                           <36 4>, "     (*)",    /* next 4 low priority are used by linux (accumulator-low-#) */
135                           <40 8>, "iu = (*)";    /* available for all */
136         };             
137         accumulator1-ch { /* accumulator using second INTD */
138             assignments = <0 48>, "iu = (*)";    /* linux doesn't use it */
139         };             
141         netss-control-qm1 {
142             assignments = <0 1>, "iu = (*)";
143         };
144         netss-linkram-control-qm1 {
145             assignments = <0 1>, "iu = (*)";
146         };
147         netss-linkram-qm1 {
148             assignments = <0x00000000 0x00004000>, "iu = (*)";
149         };
150         netss-memory-regions-qm1 {
151             assignments = <0 16>, "iu = (*)";
152         };
154         netss-control-qm2 {
155             assignments = <0 1>, "iu = (*)";
156         };
157         netss-linkram-control-qm2 {
158             assignments = <0 1>, "iu = (*)";
159         };
160         netss-linkram-qm2 {
161             assignments = <0x00000000 0x00004000>, "iu = (*)";
162         };
163         netss-memory-regions-qm2 {
164             assignments = <0 16>, "iu = (*)";
165         };
167         NETSS_PASS_QUEUE-qm1 {
168             assignments = <0 21>, "iu = (*)";
169         };
170         NETSS_GENERAL_PURPOSE_QUEUE-qm1 {
171             assignments = <21 43>, "iu = (*)";
172         };
173         NETSS_GENERAL_PURPOSE_QUEUE-qm2 {
174             assignments = <0 64>, "iu = (*)";
175         };
176     }; /* qmss */
178     cppi {
179         netcp-rx-ch {
180             assignments = <0 91>, "iu = (*)";
181         };
182         netcp-tx-ch {
183             assignments = <0 21>, "iu = (*)";
184         };
185         netcp-rx-flow-id {
186             assignments = <0  1>, "(*)",  /* Used by kernel - netrx0 */
187                           <1  7>, "iu = (*)",
188                           <8  1>, "(*)",  /* Used by kernel - netrx1 */
189                           <9 21>, "iu = (*)",
190                           <31 1>, "(*)";  /* Used by kernel - parx */
191         };   
193         qmss-qm1-rx-ch {
194             assignments = <0   2>, "(*)",   /* Used by kernel */
195                           <2  30>, "iu = (*)";
196         };
197         qmss-qm1-tx-ch {
198             assignments = <0   2>, "(*)", /* Used by kernel */
199                           <2  30>, "iu = (*)";
200         };
201         qmss-qm1-rx-flow-id {
202             assignments = <0   2>, "(*)",    /* Used by kernel */
203                           <2  62>, "iu = (*)";
204         };   
206         netcp-local-rx-ch {
207             assignments = <0 91>, "iu = (*)";
208         };
209         netcp-local-tx-ch {
210             assignments = <0 21>, "iu = (*)";
211         };
212         netcp-local-rx-flow-id {
213             assignments = <0 32>, "iu = (*)";
214         };           
216         xge-rx-ch {
217             assignments = <0 16>, "    (*)"; /* initialized by kernel */
218         };
219         xge-tx-ch {
220             assignments = <0 8>, "     (*)"; /* initialized by kernel, directly open the queues */
221         };
222         xge-rx-flow-id {
223             assignments = <0 1>,  "     (*)", /* used by kernel (xgerx0) */
224                           <1 7>,  "iu = (*)", /* available */
225                           <8 1>,  "     (*)", /* used by kernel (xgerx1) */
226                           <9 23>, "iu = (*)"; /* available */
227         };           
228     }; /* cppi */
230     pa {
231         pa-lut { 
232             assignments = <0 8>, "iu = (*)";
233         };
234         pa-firmware {
235             assignments = <0 1>, "(*)"; /* linux downloads PA firmware */
236         };
237         pa-32bUsrStats {
238             assignments = <64 320>, "iu = (*)",
239                           <384 64>, "     (*)"; /* used by linux */
240         };
241         pa-64bUsrStats {
242             assignments = <0 48>,  "iu = (*)",
243                           <48 16>, "     (*)"; /* used by linux */
244         };
245     }; /* pa */
246 };