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