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