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 _UNIFORM_REO_STATUS_HEADER_H_
25 #define _UNIFORM_REO_STATUS_HEADER_H_
26 #if !defined(__ASSEMBLER__)
27 #endif
28 
29 
30 // ################ START SUMMARY #################
31 //
32 //	Dword	Fields
33 //	0	reo_status_number[15:0], cmd_execution_time[25:16], reo_cmd_execution_status[27:26], reserved_0a[31:28]
34 //	1	timestamp[31:0]
35 //
36 // ################ END SUMMARY #################
37 
38 #define NUM_OF_DWORDS_UNIFORM_REO_STATUS_HEADER 2
39 
40 struct uniform_reo_status_header {
41              uint32_t reo_status_number               : 16, //[15:0]
42                       cmd_execution_time              : 10, //[25:16]
43                       reo_cmd_execution_status        :  2, //[27:26]
44                       reserved_0a                     :  4; //[31:28]
45              uint32_t timestamp                       : 32; //[31:0]
46 };
47 
48 /*
49 
50 reo_status_number
51 
52 			Consumer: SW , DEBUG
53 
54 			Producer: REO
55 
56 
57 
58 			The value in this field is equal to value of the
59 			'REO_CMD_Number' field the REO command
60 
61 
62 
63 			This field helps to correlate the statuses with the REO
64 			commands.
65 
66 
67 
68 			<legal all>
69 
70 cmd_execution_time
71 
72 			Consumer: DEBUG
73 
74 			Producer: REO
75 
76 
77 
78 			The amount of time REO took to excecute the command.
79 			Note that this time does not include the duration of the
80 			command waiting in the command ring, before the execution
81 			started.
82 
83 
84 
85 			In us.
86 
87 
88 
89 			<legal all>
90 
91 reo_cmd_execution_status
92 
93 			Consumer: DEBUG
94 
95 			Producer: REO
96 
97 
98 
99 			Execution status of the command.
100 
101 
102 
103 			<enum 0 reo_successful_execution> Command has
104 			successfully be executed
105 
106 			<enum 1 reo_blocked_execution> Command could not be
107 			executed as the queue or cache was blocked
108 
109 			<enum 2 reo_failed_execution> Command has encountered
110 			problems when executing, like the queue descriptor not being
111 			valid. None of the status fields in the entire STATUS TLV
112 			are valid.
113 
114 			<enum 3 reo_resource_blocked> Command is NOT  executed
115 			because one or more descriptors were blocked. This is SW
116 			programming mistake.
117 
118 			None of the status fields in the entire STATUS TLV are
119 			valid.
120 
121 
122 
123 			<legal  0-3>
124 
125 reserved_0a
126 
127 			<legal 0>
128 
129 timestamp
130 
131 			Timestamp at the moment that this status report is
132 			written.
133 
134 
135 
136 			<legal all>
137 */
138 
139 
140 /* Description		UNIFORM_REO_STATUS_HEADER_0_REO_STATUS_NUMBER
141 
142 			Consumer: SW , DEBUG
143 
144 			Producer: REO
145 
146 
147 
148 			The value in this field is equal to value of the
149 			'REO_CMD_Number' field the REO command
150 
151 
152 
153 			This field helps to correlate the statuses with the REO
154 			commands.
155 
156 
157 
158 			<legal all>
159 */
160 #define UNIFORM_REO_STATUS_HEADER_0_REO_STATUS_NUMBER_OFFSET         0x00000000
161 #define UNIFORM_REO_STATUS_HEADER_0_REO_STATUS_NUMBER_LSB            0
162 #define UNIFORM_REO_STATUS_HEADER_0_REO_STATUS_NUMBER_MASK           0x0000ffff
163 
164 /* Description		UNIFORM_REO_STATUS_HEADER_0_CMD_EXECUTION_TIME
165 
166 			Consumer: DEBUG
167 
168 			Producer: REO
169 
170 
171 
172 			The amount of time REO took to excecute the command.
173 			Note that this time does not include the duration of the
174 			command waiting in the command ring, before the execution
175 			started.
176 
177 
178 
179 			In us.
180 
181 
182 
183 			<legal all>
184 */
185 #define UNIFORM_REO_STATUS_HEADER_0_CMD_EXECUTION_TIME_OFFSET        0x00000000
186 #define UNIFORM_REO_STATUS_HEADER_0_CMD_EXECUTION_TIME_LSB           16
187 #define UNIFORM_REO_STATUS_HEADER_0_CMD_EXECUTION_TIME_MASK          0x03ff0000
188 
189 /* Description		UNIFORM_REO_STATUS_HEADER_0_REO_CMD_EXECUTION_STATUS
190 
191 			Consumer: DEBUG
192 
193 			Producer: REO
194 
195 
196 
197 			Execution status of the command.
198 
199 
200 
201 			<enum 0 reo_successful_execution> Command has
202 			successfully be executed
203 
204 			<enum 1 reo_blocked_execution> Command could not be
205 			executed as the queue or cache was blocked
206 
207 			<enum 2 reo_failed_execution> Command has encountered
208 			problems when executing, like the queue descriptor not being
209 			valid. None of the status fields in the entire STATUS TLV
210 			are valid.
211 
212 			<enum 3 reo_resource_blocked> Command is NOT  executed
213 			because one or more descriptors were blocked. This is SW
214 			programming mistake.
215 
216 			None of the status fields in the entire STATUS TLV are
217 			valid.
218 
219 
220 
221 			<legal  0-3>
222 */
223 #define UNIFORM_REO_STATUS_HEADER_0_REO_CMD_EXECUTION_STATUS_OFFSET  0x00000000
224 #define UNIFORM_REO_STATUS_HEADER_0_REO_CMD_EXECUTION_STATUS_LSB     26
225 #define UNIFORM_REO_STATUS_HEADER_0_REO_CMD_EXECUTION_STATUS_MASK    0x0c000000
226 
227 /* Description		UNIFORM_REO_STATUS_HEADER_0_RESERVED_0A
228 
229 			<legal 0>
230 */
231 #define UNIFORM_REO_STATUS_HEADER_0_RESERVED_0A_OFFSET               0x00000000
232 #define UNIFORM_REO_STATUS_HEADER_0_RESERVED_0A_LSB                  28
233 #define UNIFORM_REO_STATUS_HEADER_0_RESERVED_0A_MASK                 0xf0000000
234 
235 /* Description		UNIFORM_REO_STATUS_HEADER_1_TIMESTAMP
236 
237 			Timestamp at the moment that this status report is
238 			written.
239 
240 
241 
242 			<legal all>
243 */
244 #define UNIFORM_REO_STATUS_HEADER_1_TIMESTAMP_OFFSET                 0x00000004
245 #define UNIFORM_REO_STATUS_HEADER_1_TIMESTAMP_LSB                    0
246 #define UNIFORM_REO_STATUS_HEADER_1_TIMESTAMP_MASK                   0xffffffff
247 
248 
249 #endif // _UNIFORM_REO_STATUS_HEADER_H_
250