xref: /wlan-driver/fw-api/hw/qca6290/v2/reo_unblock_cache.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 //
20 // DO NOT EDIT!  This file is automatically generated
21 //               These definitions are tied to a particular hardware layout
22 
23 
24 #ifndef _REO_UNBLOCK_CACHE_H_
25 #define _REO_UNBLOCK_CACHE_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 #include "uniform_reo_cmd_header.h"
30 
31 // ################ START SUMMARY #################
32 //
33 //	Dword	Fields
34 //	0	struct uniform_reo_cmd_header cmd_header;
35 //	1	unblock_type[0], cache_block_resource_index[2:1], reserved_1a[31:3]
36 //	2	reserved_2a[31:0]
37 //	3	reserved_3a[31:0]
38 //	4	reserved_4a[31:0]
39 //	5	reserved_5a[31:0]
40 //	6	reserved_6a[31:0]
41 //	7	reserved_7a[31:0]
42 //	8	reserved_8a[31:0]
43 //
44 // ################ END SUMMARY #################
45 
46 #define NUM_OF_DWORDS_REO_UNBLOCK_CACHE 9
47 
48 struct reo_unblock_cache {
49     struct            uniform_reo_cmd_header                       cmd_header;
50              uint32_t unblock_type                    :  1, //[0]
51                       cache_block_resource_index      :  2, //[2:1]
52                       reserved_1a                     : 29; //[31:3]
53              uint32_t reserved_2a                     : 32; //[31:0]
54              uint32_t reserved_3a                     : 32; //[31:0]
55              uint32_t reserved_4a                     : 32; //[31:0]
56              uint32_t reserved_5a                     : 32; //[31:0]
57              uint32_t reserved_6a                     : 32; //[31:0]
58              uint32_t reserved_7a                     : 32; //[31:0]
59              uint32_t reserved_8a                     : 32; //[31:0]
60 };
61 
62 /*
63 
64 struct uniform_reo_cmd_header cmd_header
65 
66 			Consumer: REO
67 
68 			Producer: SW
69 
70 
71 
72 			Details for command execution tracking purposes.
73 
74 unblock_type
75 
76 			Unblock type
77 
78 
79 
80 			<enum 0 unblock_resource_index> Unblock a block
81 			resource, whose index is given in field
82 			'cache_block_resource_index'.
83 
84 			If the indicated blocking resource is not in use (=> not
85 			blocking an address at the moment), the command status will
86 			indicate an error.
87 
88 
89 
90 			<enum 1 unblock_cache> The entire cache usage is
91 			unblocked.
92 
93 			If the entire cache is not in a blocked mode at the
94 			moment this command is received, the command status will
95 			indicate an error.
96 
97 			Note that unlocking the entire cache has no changes to
98 			the current settings of the blocking resource settings
99 
100 
101 
102 			<legal all>
103 
104 cache_block_resource_index
105 
106 			Field not valid when field Unblock_type is set to
107 			unblock_cache.
108 
109 
110 
111 			Indicates which of the four blocking resources in REO
112 			should be released from blocking a (descriptor) address.
113 
114 			<legal all>
115 
116 reserved_1a
117 
118 			<legal 0>
119 
120 reserved_2a
121 
122 			<legal 0>
123 
124 reserved_3a
125 
126 			<legal 0>
127 
128 reserved_4a
129 
130 			<legal 0>
131 
132 reserved_5a
133 
134 			<legal 0>
135 
136 reserved_6a
137 
138 			<legal 0>
139 
140 reserved_7a
141 
142 			<legal 0>
143 
144 reserved_8a
145 
146 			<legal 0>
147 */
148 
149 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000
150 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB    0
151 #define REO_UNBLOCK_CACHE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK   0xffffffff
152 
153 /* Description		REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE
154 
155 			Unblock type
156 
157 
158 
159 			<enum 0 unblock_resource_index> Unblock a block
160 			resource, whose index is given in field
161 			'cache_block_resource_index'.
162 
163 			If the indicated blocking resource is not in use (=> not
164 			blocking an address at the moment), the command status will
165 			indicate an error.
166 
167 
168 
169 			<enum 1 unblock_cache> The entire cache usage is
170 			unblocked.
171 
172 			If the entire cache is not in a blocked mode at the
173 			moment this command is received, the command status will
174 			indicate an error.
175 
176 			Note that unlocking the entire cache has no changes to
177 			the current settings of the blocking resource settings
178 
179 
180 
181 			<legal all>
182 */
183 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_OFFSET                      0x00000004
184 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_LSB                         0
185 #define REO_UNBLOCK_CACHE_1_UNBLOCK_TYPE_MASK                        0x00000001
186 
187 /* Description		REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX
188 
189 			Field not valid when field Unblock_type is set to
190 			unblock_cache.
191 
192 
193 
194 			Indicates which of the four blocking resources in REO
195 			should be released from blocking a (descriptor) address.
196 
197 			<legal all>
198 */
199 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_OFFSET        0x00000004
200 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_LSB           1
201 #define REO_UNBLOCK_CACHE_1_CACHE_BLOCK_RESOURCE_INDEX_MASK          0x00000006
202 
203 /* Description		REO_UNBLOCK_CACHE_1_RESERVED_1A
204 
205 			<legal 0>
206 */
207 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_OFFSET                       0x00000004
208 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_LSB                          3
209 #define REO_UNBLOCK_CACHE_1_RESERVED_1A_MASK                         0xfffffff8
210 
211 /* Description		REO_UNBLOCK_CACHE_2_RESERVED_2A
212 
213 			<legal 0>
214 */
215 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_OFFSET                       0x00000008
216 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_LSB                          0
217 #define REO_UNBLOCK_CACHE_2_RESERVED_2A_MASK                         0xffffffff
218 
219 /* Description		REO_UNBLOCK_CACHE_3_RESERVED_3A
220 
221 			<legal 0>
222 */
223 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_OFFSET                       0x0000000c
224 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_LSB                          0
225 #define REO_UNBLOCK_CACHE_3_RESERVED_3A_MASK                         0xffffffff
226 
227 /* Description		REO_UNBLOCK_CACHE_4_RESERVED_4A
228 
229 			<legal 0>
230 */
231 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_OFFSET                       0x00000010
232 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_LSB                          0
233 #define REO_UNBLOCK_CACHE_4_RESERVED_4A_MASK                         0xffffffff
234 
235 /* Description		REO_UNBLOCK_CACHE_5_RESERVED_5A
236 
237 			<legal 0>
238 */
239 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_OFFSET                       0x00000014
240 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_LSB                          0
241 #define REO_UNBLOCK_CACHE_5_RESERVED_5A_MASK                         0xffffffff
242 
243 /* Description		REO_UNBLOCK_CACHE_6_RESERVED_6A
244 
245 			<legal 0>
246 */
247 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_OFFSET                       0x00000018
248 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_LSB                          0
249 #define REO_UNBLOCK_CACHE_6_RESERVED_6A_MASK                         0xffffffff
250 
251 /* Description		REO_UNBLOCK_CACHE_7_RESERVED_7A
252 
253 			<legal 0>
254 */
255 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_OFFSET                       0x0000001c
256 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_LSB                          0
257 #define REO_UNBLOCK_CACHE_7_RESERVED_7A_MASK                         0xffffffff
258 
259 /* Description		REO_UNBLOCK_CACHE_8_RESERVED_8A
260 
261 			<legal 0>
262 */
263 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_OFFSET                       0x00000020
264 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_LSB                          0
265 #define REO_UNBLOCK_CACHE_8_RESERVED_8A_MASK                         0xffffffff
266 
267 
268 #endif // _REO_UNBLOCK_CACHE_H_
269