gem5  v22.1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
pm4_queues.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 Advanced Micro Devices, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * 3. Neither the name of the copyright holder nor the names of its
16  * contributors may be used to endorse or promote products derived from this
17  * software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  *
31  */
32 
33 #ifndef __DEV_AMDGPU_PM4_QUEUES_HH__
34 #define __DEV_AMDGPU_PM4_QUEUES_HH__
35 
36 namespace gem5
37 {
38 
44 typedef struct GEM5_PACKED
45 {
46  union
47  {
48  struct
49  {
52  };
53  uint64_t mqdReadIndex;
54  };
63  uint32_t disable_queue;
64  uint32_t reserved_107;
69  uint32_t reserved_112;
70  uint32_t reserved_113;
73  uint32_t cp_packet_id_lo;
74  uint32_t cp_packet_id_hi;
79  uint32_t gds_save_mask_lo;
80  uint32_t gds_save_mask_hi;
85  union
86  {
87  struct
88  {
89  uint32_t mqd_base_addr_lo;
90  uint32_t mqd_base_addr_hi;
91  };
92  uint64_t mqdBase;
93  };
94  uint32_t hqd_active;
95  uint32_t hqd_vmid;
99  uint32_t hqd_quantum;
100  union
101  {
102  struct
103  {
104  uint32_t hqd_pq_base_lo;
105  uint32_t hqd_pq_base_hi;
106  };
107  uint64_t base;
108  };
109  union
110  {
111  uint32_t hqd_pq_rptr;
112  uint32_t rptr;
113  };
114  union
115  {
116  struct
117  {
120  };
121  uint64_t aqlRptr;
122  };
125  union
126  {
128  uint32_t doorbell;
129  };
130  uint32_t reserved_144;
131  uint32_t hqd_pq_control;
132  union
133  {
134  struct
135  {
138  };
140  };
141  union
142  {
143  uint32_t hqd_ib_rptr;
144  uint32_t ibRptr;
145  };
146  uint32_t hqd_ib_control;
147  uint32_t hqd_iq_timer;
148  uint32_t hqd_iq_rptr;
151  uint32_t cp_hqd_sema_cmd;
152  uint32_t cp_hqd_msg_type;
159  uint32_t cp_mqd_control;
165  uint32_t cp_hqd_eop_rptr;
166  uint32_t cp_hqd_eop_wptr;
176  uint32_t cp_hqd_error;
178  union
179  {
181  uint32_t aql;
182  };
186 
192 typedef struct GEM5_PACKED
193 {
195  union
196  {
197  struct
198  {
201  };
202  uint64_t rb_base;
203  };
243  uint32_t reserved_42;
244  uint32_t reserved_43;
245  uint32_t reserved_44;
246  uint32_t reserved_45;
247  uint32_t reserved_46;
248  uint32_t reserved_47;
249  uint32_t reserved_48;
250  uint32_t reserved_49;
251  uint32_t reserved_50;
252  uint32_t reserved_51;
253  uint32_t reserved_52;
254  uint32_t reserved_53;
255  uint32_t reserved_54;
256  uint32_t reserved_55;
257  uint32_t reserved_56;
258  uint32_t reserved_57;
259  uint32_t reserved_58;
260  uint32_t reserved_59;
261  uint32_t reserved_60;
262  uint32_t reserved_61;
263  uint32_t reserved_62;
264  uint32_t reserved_63;
265  uint32_t reserved_64;
266  uint32_t reserved_65;
267  uint32_t reserved_66;
268  uint32_t reserved_67;
269  uint32_t reserved_68;
270  uint32_t reserved_69;
271  uint32_t reserved_70;
272  uint32_t reserved_71;
273  uint32_t reserved_72;
274  uint32_t reserved_73;
275  uint32_t reserved_74;
276  uint32_t reserved_75;
277  uint32_t reserved_76;
278  uint32_t reserved_77;
279  uint32_t reserved_78;
280  uint32_t reserved_79;
281  uint32_t reserved_80;
282  uint32_t reserved_81;
283  uint32_t reserved_82;
284  uint32_t reserved_83;
285  uint32_t reserved_84;
286  uint32_t reserved_85;
287  uint32_t reserved_86;
288  uint32_t reserved_87;
289  uint32_t reserved_88;
290  uint32_t reserved_89;
291  uint32_t reserved_90;
292  uint32_t reserved_91;
293  uint32_t reserved_92;
294  uint32_t reserved_93;
295  uint32_t reserved_94;
296  uint32_t reserved_95;
297  uint32_t reserved_96;
298  uint32_t reserved_97;
299  uint32_t reserved_98;
300  uint32_t reserved_99;
301  uint32_t reserved_100;
302  uint32_t reserved_101;
303  uint32_t reserved_102;
304  uint32_t reserved_103;
305  uint32_t reserved_104;
306  uint32_t reserved_105;
307  uint32_t reserved_106;
308  uint32_t reserved_107;
309  uint32_t reserved_108;
310  uint32_t reserved_109;
311  uint32_t reserved_110;
312  uint32_t reserved_111;
313  uint32_t reserved_112;
314  uint32_t reserved_113;
315  uint32_t reserved_114;
316  uint32_t reserved_115;
317  uint32_t reserved_116;
318  uint32_t reserved_117;
319  uint32_t reserved_118;
320  uint32_t reserved_119;
321  uint32_t reserved_120;
322  uint32_t reserved_121;
323  uint32_t reserved_122;
324  uint32_t reserved_123;
325  uint32_t reserved_124;
326  uint32_t reserved_125;
327  /* reserved_126,127: repurposed for driver-internal use */
328  uint32_t sdma_engine_id;
329  uint32_t sdma_queue_id;
331 
332 /* The Primary Queue has extra attributes, which will be stored separately. */
333 typedef struct PrimaryQueue : QueueDesc
334 {
335  union
336  {
337  struct
338  {
339  uint32_t queueRptrAddrLo;
340  uint32_t queueRptrAddrHi;
341  };
343  };
344  union
345  {
346  struct
347  {
348  uint32_t queueWptrLo;
349  uint32_t queueWptrHi;
350  };
352  };
353  uint32_t doorbellOffset;
354  uint32_t doorbellRangeLo;
355  uint32_t doorbellRangeHi;
357 
361 class PM4Queue
362 {
363  int _id;
364 
365  /* Queue descriptor read from the system memory of the simulated system. */
367 
377  bool _ib;
379  public:
380  PM4Queue() : _id(0), q(nullptr), _wptr(0), _offset(0), _processing(false),
381  _ib(false), _pkt() {}
384  _processing(false), _ib(false), _pkt() {}
387  _processing(false), _ib(false), _pkt(*pkt) {}
388 
389  QueueDesc *getMQD() { return q; }
390  int id() { return _id; }
391  Addr mqdBase() { return q->mqdBase; }
392  Addr base() { return q->base; }
393  Addr ibBase() { return q->ibBase; }
394 
395  Addr
397  {
398  if (ib()) return q->ibBase + q->ibRptr;
399  else return q->base + (q->rptr % size());
400  }
401 
402  Addr
404  {
405  if (ib()) return q->ibBase + _ibWptr;
406  else return q->base + (_wptr % size());
407  }
408 
409  Addr
411  {
412  if (ib()) return q->ibRptr;
413  else return q->rptr;
414  }
415 
416  Addr
418  {
419  if (ib()) return _ibWptr;
420  else return _wptr;
421  }
422 
423  Addr offset() { return _offset; }
424  bool processing() { return _processing; }
425  bool ib() { return _ib; }
426 
427  void id(int value) { _id = value; }
428  void base(Addr value) { q->base = value; }
429  void ibBase(Addr value) { q->ibBase = value; }
430 
438  void
440  {
441  if (ib()) q->ibRptr = _ibWptr;
442  else q->rptr = _wptr;
443  }
444 
445  void
446  incRptr(Addr value)
447  {
448  if (ib()) q->ibRptr += value;
449  else q->rptr += value;
450  }
451 
452  void
453  rptr(Addr value)
454  {
455  if (ib()) q->ibRptr = value;
456  else q->rptr = value;
457  }
458 
459  void
460  wptr(Addr value)
461  {
462  if (ib()) _ibWptr = value;
463  else _wptr = value;
464  }
465 
466  void offset(Addr value) { _offset = value; }
467  void processing(bool value) { _processing = value; }
468  void ib(bool value) { _ib = value; }
469  uint32_t me() { return _pkt.me + 1; }
470  uint32_t pipe() { return _pkt.pipe; }
471  uint32_t queue() { return _pkt.queueSlot; }
472  bool privileged() { return _pkt.queueSel == 0 ? 1 : 0; }
473 
474  // Same computation as processMQD. See comment there for details.
475  uint64_t size() { return 4UL << ((q->hqd_pq_control & 0x3f) + 1); }
476 };
477 
478 } // namespace gem5
479 
480 #endif // __DEV_AMDGPU_PM4_QUEUES_HH__
Class defining a PM4 queue.
Definition: pm4_queues.hh:362
void incRptr(Addr value)
Definition: pm4_queues.hh:446
void id(int value)
Definition: pm4_queues.hh:427
void wptr(Addr value)
Definition: pm4_queues.hh:460
uint32_t me()
Definition: pm4_queues.hh:469
const PM4MapQueues _pkt
Definition: pm4_queues.hh:378
void processing(bool value)
Definition: pm4_queues.hh:467
QueueDesc * getMQD()
Definition: pm4_queues.hh:389
void offset(Addr value)
Definition: pm4_queues.hh:466
PM4Queue(int id, QueueDesc *queue, Addr offset)
Definition: pm4_queues.hh:382
uint64_t size()
Definition: pm4_queues.hh:475
bool privileged()
Definition: pm4_queues.hh:472
bool processing()
Definition: pm4_queues.hh:424
void ibBase(Addr value)
Definition: pm4_queues.hh:429
void base(Addr value)
Definition: pm4_queues.hh:428
void fastforwardRptr()
It seems that PM4 nop packets with count 0x3fff, not only do not consider the count value,...
Definition: pm4_queues.hh:439
uint32_t pipe()
Definition: pm4_queues.hh:470
PM4Queue(int id, QueueDesc *queue, Addr offset, PM4MapQueues *pkt)
Definition: pm4_queues.hh:385
void rptr(Addr value)
Definition: pm4_queues.hh:453
uint32_t queue()
Definition: pm4_queues.hh:471
void ib(bool value)
Definition: pm4_queues.hh:468
QueueDesc * q
Definition: pm4_queues.hh:366
Addr _wptr
Most important fields of a PM4 queue are stored in the queue descriptor (i.e., QueueDesc).
Definition: pm4_queues.hh:373
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
gem5::PrimaryQueue PrimaryQueue
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
struct gem5::GEM5_PACKED SDMAQueueDesc
Queue descriptor for SDMA-based user queues (RLC queues).
struct gem5::GEM5_PACKED QueueDesc
Queue descriptor with relevant MQD attributes.
PM4 packets.
Definition: pm4_defines.hh:78
uint32_t gds_save_mask_hi
Definition: pm4_queues.hh:80
uint32_t reserved_100
Definition: pm4_queues.hh:301
uint32_t sdmax_rlcx_ib_base_lo
Definition: pm4_queues.hh:214
uint32_t sdmax_rlcx_rb_rptr
Definition: pm4_queues.hh:204
uint32_t reserved_59
Definition: pm4_queues.hh:260
uint32_t mqd_base_addr_hi
Definition: pm4_queues.hh:90
uint32_t hqd_pq_base_lo
Definition: pm4_queues.hh:104
uint32_t reserved_104
Definition: pm4_queues.hh:305
uint32_t reserved_61
Definition: pm4_queues.hh:262
uint32_t sdmax_rlcx_rb_wptr_poll_cntl
Definition: pm4_queues.hh:208
uint32_t reserved_114
Definition: pm4_queues.hh:315
uint32_t sdmax_rlcx_ib_cntl
Definition: pm4_queues.hh:211
uint32_t reserved_49
Definition: pm4_queues.hh:250
uint32_t cp_hqd_eop_done_events
Definition: pm4_queues.hh:167
uint32_t reserved_122
Definition: pm4_queues.hh:323
uint32_t reserved_53
Definition: pm4_queues.hh:254
uint32_t reserved_98
Definition: pm4_queues.hh:299
uint32_t gds_save_base_addr_hi
Definition: pm4_queues.hh:78
uint32_t reserved_125
Definition: pm4_queues.hh:326
uint32_t reserved_110
Definition: pm4_queues.hh:311
uint32_t reserved_56
Definition: pm4_queues.hh:257
uint32_t sdmax_rlcx_ib_sub_remain
Definition: pm4_queues.hh:226
uint32_t hqd_ib_base_addr_hi
Definition: pm4_queues.hh:137
uint32_t cp_mqd_save_end_time_hi
Definition: pm4_queues.hh:58
uint32_t reserved_144
Definition: pm4_queues.hh:130
uint32_t cp_mqd_restore_start_time_hi
Definition: pm4_queues.hh:60
uint32_t mqd_base_addr_lo
Definition: pm4_queues.hh:89
uint32_t cp_hqd_aql_control
Definition: pm4_queues.hh:180
uint32_t reserved_47
Definition: pm4_queues.hh:248
uint32_t cp_packet_id_lo
Definition: pm4_queues.hh:73
uint32_t sdmax_rlcx_preempt
Definition: pm4_queues.hh:227
uint32_t reserved_46
Definition: pm4_queues.hh:247
uint32_t cp_hqd_eop_control
Definition: pm4_queues.hh:164
uint32_t sdmax_rlcx_rb_rptr_addr_hi
Definition: pm4_queues.hh:209
uint32_t cp_hqd_cntl_stack_offset
Definition: pm4_queues.hh:171
uint32_t cp_hqd_ctx_save_base_addr_lo
Definition: pm4_queues.hh:168
uint32_t reserved_79
Definition: pm4_queues.hh:280
uint32_t hqd_queue_priority
Definition: pm4_queues.hh:98
uint32_t reserved_93
Definition: pm4_queues.hh:294
uint32_t cp_hqd_error
Definition: pm4_queues.hh:176
uint32_t sdmax_rlcx_rb_cntl
Definition: pm4_queues.hh:194
uint32_t cp_hqd_dma_offload
Definition: pm4_queues.hh:150
uint32_t reserved_85
Definition: pm4_queues.hh:286
uint32_t cp_hqd_atomic0_preop_lo
Definition: pm4_queues.hh:153
uint32_t reserved_69
Definition: pm4_queues.hh:270
uint32_t sdmax_rlcx_skip_cntl
Definition: pm4_queues.hh:217
uint32_t reserved_117
Definition: pm4_queues.hh:318
uint32_t hqd_pq_wptr_poll_addr_hi
Definition: pm4_queues.hh:124
uint32_t hqd_pq_base_hi
Definition: pm4_queues.hh:105
uint32_t sdmax_rlcx_rb_base_hi
Definition: pm4_queues.hh:200
uint32_t sdmax_rlcx_doorbell_log
Definition: pm4_queues.hh:221
uint32_t cp_pq_exe_status_hi
Definition: pm4_queues.hh:72
uint32_t reserved_77
Definition: pm4_queues.hh:278
uint32_t cp_hqd_atomic1_preop_hi
Definition: pm4_queues.hh:156
uint32_t cp_mqd_readindex_hi
Definition: pm4_queues.hh:51
uint32_t reserved_97
Definition: pm4_queues.hh:298
uint32_t cp_mqd_control
Definition: pm4_queues.hh:159
uint32_t reserved_82
Definition: pm4_queues.hh:283
uint32_t reserved_78
Definition: pm4_queues.hh:279
uint32_t cp_packet_exe_status_lo
Definition: pm4_queues.hh:75
uint32_t sdmax_rlcx_rb_wptr_hi
Definition: pm4_queues.hh:207
uint32_t reserved_42
Definition: pm4_queues.hh:243
uint32_t gds_cs_ctxsw_cnt2
Definition: pm4_queues.hh:67
uint32_t reserved_63
Definition: pm4_queues.hh:264
uint32_t reserved_113
Definition: pm4_queues.hh:70
uint32_t cp_mqd_readindex_lo
Definition: pm4_queues.hh:50
uint32_t sdmax_rlcx_ib_base_hi
Definition: pm4_queues.hh:215
uint32_t reserved_75
Definition: pm4_queues.hh:276
uint32_t reserved_89
Definition: pm4_queues.hh:290
uint32_t hqd_pq_wptr_poll_addr_lo
Definition: pm4_queues.hh:123
uint32_t cp_mqd_restore_end_time_hi
Definition: pm4_queues.hh:62
uint32_t sdmax_rlcx_rb_base
Definition: pm4_queues.hh:199
uint32_t cp_hqd_eop_base_addr_hi
Definition: pm4_queues.hh:163
uint32_t dynamic_cu_mask_addr_hi
Definition: pm4_queues.hh:84
uint32_t sdmax_rlcx_midcmd_data8
Definition: pm4_queues.hh:241
uint32_t sdma_queue_id
Definition: pm4_queues.hh:329
uint32_t sdmax_rlcx_midcmd_data0
Definition: pm4_queues.hh:233
uint32_t cp_hqd_atomic1_preop_lo
Definition: pm4_queues.hh:155
uint32_t hqd_persistent_state
Definition: pm4_queues.hh:96
uint32_t cp_hqd_atomic0_preop_hi
Definition: pm4_queues.hh:154
uint32_t reserved_66
Definition: pm4_queues.hh:267
uint32_t reserved_45
Definition: pm4_queues.hh:246
uint32_t cp_hqd_pq_wptr_lo
Definition: pm4_queues.hh:183
uint32_t reserved_84
Definition: pm4_queues.hh:285
uint32_t reserved_55
Definition: pm4_queues.hh:256
uint32_t sdmax_rlcx_status
Definition: pm4_queues.hh:220
uint32_t sdmax_rlcx_midcmd_data6
Definition: pm4_queues.hh:239
uint32_t reserved_67
Definition: pm4_queues.hh:268
uint32_t ctx_save_base_addr_lo
Definition: pm4_queues.hh:81
uint32_t sdmax_rlcx_rb_aql_cntl
Definition: pm4_queues.hh:231
uint32_t sdmax_rlcx_watermark
Definition: pm4_queues.hh:222
uint32_t reserved_62
Definition: pm4_queues.hh:263
uint32_t gds_cs_ctxsw_cnt1
Definition: pm4_queues.hh:66
uint32_t reserved_91
Definition: pm4_queues.hh:292
uint32_t sdmax_rlcx_ib_rptr
Definition: pm4_queues.hh:212
uint32_t reserved_101
Definition: pm4_queues.hh:302
uint32_t reserved_80
Definition: pm4_queues.hh:281
uint32_t sdmax_rlcx_csa_addr_lo
Definition: pm4_queues.hh:224
uint32_t cp_mqd_restore_start_time_lo
Definition: pm4_queues.hh:59
uint32_t hqd_pipe_priority
Definition: pm4_queues.hh:97
uint32_t reserved_58
Definition: pm4_queues.hh:259
uint32_t sdmax_rlcx_csa_addr_hi
Definition: pm4_queues.hh:225
uint32_t sdmax_rlcx_doorbell_offset
Definition: pm4_queues.hh:223
uint32_t cp_mqd_save_end_time_lo
Definition: pm4_queues.hh:57
uint32_t reserved_96
Definition: pm4_queues.hh:297
uint32_t gds_cs_ctxsw_cnt0
Definition: pm4_queues.hh:65
uint32_t reserved_92
Definition: pm4_queues.hh:293
uint32_t reserved_44
Definition: pm4_queues.hh:245
uint32_t hqd_ib_base_addr_lo
Definition: pm4_queues.hh:136
uint32_t reserved_57
Definition: pm4_queues.hh:258
uint32_t reserved_50
Definition: pm4_queues.hh:251
uint32_t cp_hqd_gds_resource_state
Definition: pm4_queues.hh:175
uint32_t reserved_107
Definition: pm4_queues.hh:64
uint32_t cp_hqd_eop_base_addr_lo
Definition: pm4_queues.hh:162
uint32_t reserved_54
Definition: pm4_queues.hh:255
uint32_t cp_hqd_pq_wptr_hi
Definition: pm4_queues.hh:184
uint32_t cp_hqd_eop_rptr
Definition: pm4_queues.hh:165
uint32_t gds_save_mask_lo
Definition: pm4_queues.hh:79
uint32_t hqd_pq_rptr_report_addr_hi
Definition: pm4_queues.hh:119
uint32_t hqd_pq_rptr
Definition: pm4_queues.hh:111
uint32_t sdmax_rlcx_midcmd_data3
Definition: pm4_queues.hh:236
uint32_t cp_packet_exe_status_hi
Definition: pm4_queues.hh:76
uint32_t hqd_quantum
Definition: pm4_queues.hh:99
uint32_t hqd_vmid
Definition: pm4_queues.hh:95
uint32_t reserved_118
Definition: pm4_queues.hh:319
uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo
Definition: pm4_queues.hh:230
uint32_t reserved_112
Definition: pm4_queues.hh:69
uint32_t cp_hqd_wg_state_offset
Definition: pm4_queues.hh:173
uint32_t sdmax_rlcx_midcmd_data4
Definition: pm4_queues.hh:237
uint32_t reserved_102
Definition: pm4_queues.hh:303
uint32_t reserved_74
Definition: pm4_queues.hh:275
uint32_t hqd_pq_control
Definition: pm4_queues.hh:131
uint32_t sdmax_rlcx_midcmd_cntl
Definition: pm4_queues.hh:242
uint32_t cp_mqd_save_start_time_lo
Definition: pm4_queues.hh:55
uint32_t sdmax_rlcx_context_status
Definition: pm4_queues.hh:218
uint32_t reserved_51
Definition: pm4_queues.hh:252
uint32_t cp_pq_exe_status_lo
Definition: pm4_queues.hh:71
uint32_t sdma_engine_id
Definition: pm4_queues.hh:328
uint32_t hqd_pq_rptr_report_addr_lo
Definition: pm4_queues.hh:118
uint32_t hqd_active
Definition: pm4_queues.hh:94
uint32_t cp_hqd_hq_control1
Definition: pm4_queues.hh:161
uint32_t reserved_81
Definition: pm4_queues.hh:282
uint32_t hqd_pq_doorbell_control
Definition: pm4_queues.hh:127
uint32_t sdmax_rlcx_rb_rptr_addr_lo
Definition: pm4_queues.hh:210
uint32_t reserved_121
Definition: pm4_queues.hh:322
uint32_t reserved_115
Definition: pm4_queues.hh:316
uint32_t reserved_95
Definition: pm4_queues.hh:296
uint32_t cp_hqd_ctx_save_control
Definition: pm4_queues.hh:170
uint32_t reserved_99
Definition: pm4_queues.hh:300
uint32_t sdmax_rlcx_doorbell
Definition: pm4_queues.hh:219
uint32_t hqd_ib_rptr
Definition: pm4_queues.hh:143
uint32_t sdmax_rlcx_rb_wptr
Definition: pm4_queues.hh:206
uint32_t cp_hqd_hq_status1
Definition: pm4_queues.hh:160
uint32_t ctx_save_base_addr_hi
Definition: pm4_queues.hh:82
uint32_t sdmax_rlcx_ib_size
Definition: pm4_queues.hh:216
uint32_t reserved_72
Definition: pm4_queues.hh:273
uint32_t sdmax_rlcx_minor_ptr_update
Definition: pm4_queues.hh:232
uint32_t hqd_iq_rptr
Definition: pm4_queues.hh:148
uint32_t sdmax_rlcx_rb_rptr_hi
Definition: pm4_queues.hh:205
uint32_t reserved_106
Definition: pm4_queues.hh:307
uint32_t cp_hqd_dequeue_request
Definition: pm4_queues.hh:149
uint32_t cp_hqd_hq_control0
Definition: pm4_queues.hh:158
uint64_t mqdBase
Definition: pm4_queues.hh:92
uint32_t sdmax_rlcx_midcmd_data5
Definition: pm4_queues.hh:238
uint32_t reserved_119
Definition: pm4_queues.hh:320
uint32_t reserved_116
Definition: pm4_queues.hh:317
uint64_t mqdReadIndex
Definition: pm4_queues.hh:53
uint32_t reserved_105
Definition: pm4_queues.hh:306
uint32_t disable_queue
Definition: pm4_queues.hh:63
uint32_t gds_save_base_addr_lo
Definition: pm4_queues.hh:77
uint32_t sdmax_rlcx_dummy_reg
Definition: pm4_queues.hh:228
uint32_t reserved_71
Definition: pm4_queues.hh:272
uint32_t reserved_103
Definition: pm4_queues.hh:304
uint32_t reserved_60
Definition: pm4_queues.hh:261
uint32_t reserved_64
Definition: pm4_queues.hh:265
uint32_t reserved_65
Definition: pm4_queues.hh:266
uint32_t reserved_90
Definition: pm4_queues.hh:291
uint32_t reserved_73
Definition: pm4_queues.hh:274
uint32_t sdmax_rlcx_ib_offset
Definition: pm4_queues.hh:213
uint32_t reserved_83
Definition: pm4_queues.hh:284
uint32_t sdmax_rlcx_midcmd_data7
Definition: pm4_queues.hh:240
uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi
Definition: pm4_queues.hh:229
uint32_t reserved_76
Definition: pm4_queues.hh:277
uint32_t reserved_87
Definition: pm4_queues.hh:288
uint32_t reserved_86
Definition: pm4_queues.hh:287
uint32_t hqd_ib_control
Definition: pm4_queues.hh:146
uint32_t reserved_124
Definition: pm4_queues.hh:325
uint32_t reserved_94
Definition: pm4_queues.hh:295
uint32_t reserved_123
Definition: pm4_queues.hh:324
uint32_t cp_hqd_cntl_stack_size
Definition: pm4_queues.hh:172
uint32_t reserved_48
Definition: pm4_queues.hh:249
uint32_t gds_cs_ctxsw_cnt3
Definition: pm4_queues.hh:68
uint32_t cp_hqd_eop_wptr_mem
Definition: pm4_queues.hh:177
uint32_t reserved_52
Definition: pm4_queues.hh:253
uint32_t cp_mqd_save_start_time_hi
Definition: pm4_queues.hh:56
uint32_t sdmax_rlcx_midcmd_data1
Definition: pm4_queues.hh:234
uint32_t dynamic_cu_mask_addr_lo
Definition: pm4_queues.hh:83
uint32_t cp_hqd_hq_status0
Definition: pm4_queues.hh:157
uint32_t reserved_70
Definition: pm4_queues.hh:271
uint32_t cp_mqd_restore_end_time_lo
Definition: pm4_queues.hh:61
uint32_t reserved_68
Definition: pm4_queues.hh:269
uint32_t cp_packet_id_hi
Definition: pm4_queues.hh:74
uint32_t hqd_iq_timer
Definition: pm4_queues.hh:147
uint32_t reserved_109
Definition: pm4_queues.hh:310
uint32_t reserved_88
Definition: pm4_queues.hh:289
uint32_t sdmax_rlcx_midcmd_data2
Definition: pm4_queues.hh:235
uint32_t cp_hqd_msg_type
Definition: pm4_queues.hh:152
uint32_t reserved_108
Definition: pm4_queues.hh:309
uint32_t cp_hqd_sema_cmd
Definition: pm4_queues.hh:151
uint32_t cp_hqd_ctx_save_size
Definition: pm4_queues.hh:174
uint32_t reserved_43
Definition: pm4_queues.hh:244
uint32_t reserved_111
Definition: pm4_queues.hh:312
uint32_t reserved_120
Definition: pm4_queues.hh:321
uint32_t cp_hqd_ctx_save_base_addr_hi
Definition: pm4_queues.hh:169
uint32_t cp_hqd_eop_wptr
Definition: pm4_queues.hh:166
uint32_t queueWptrLo
Definition: pm4_queues.hh:348
uint32_t queueRptrAddrLo
Definition: pm4_queues.hh:339
uint32_t queueWptrHi
Definition: pm4_queues.hh:349
uint32_t doorbellRangeHi
Definition: pm4_queues.hh:355
uint32_t queueRptrAddrHi
Definition: pm4_queues.hh:340
uint32_t doorbellRangeLo
Definition: pm4_queues.hh:354
uint32_t doorbellOffset
Definition: pm4_queues.hh:353

Generated on Wed Dec 21 2022 10:22:32 for gem5 by doxygen 1.9.1