xref: /openbsd-src/sys/dev/pci/drm/amd/include/v9_structs.h (revision f005ef32267c16bdb134f0e9fa4477dbe07c263a)
1fb4d8502Sjsg /*
2fb4d8502Sjsg  * Copyright 2012-2016 Advanced Micro Devices, Inc.
3fb4d8502Sjsg  *
4fb4d8502Sjsg  * Permission is hereby granted, free of charge, to any person obtaining a
5fb4d8502Sjsg  * copy of this software and associated documentation files (the "Software"),
6fb4d8502Sjsg  * to deal in the Software without restriction, including without limitation
7fb4d8502Sjsg  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8fb4d8502Sjsg  * and/or sell copies of the Software, and to permit persons to whom the
9fb4d8502Sjsg  * Software is furnished to do so, subject to the following conditions:
10fb4d8502Sjsg  *
11fb4d8502Sjsg  * The above copyright notice and this permission notice shall be included in
12fb4d8502Sjsg  * all copies or substantial portions of the Software.
13fb4d8502Sjsg  *
14fb4d8502Sjsg  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15fb4d8502Sjsg  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16fb4d8502Sjsg  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17fb4d8502Sjsg  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18fb4d8502Sjsg  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19fb4d8502Sjsg  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20fb4d8502Sjsg  * OTHER DEALINGS IN THE SOFTWARE.
21fb4d8502Sjsg  *
22fb4d8502Sjsg  */
23fb4d8502Sjsg 
24fb4d8502Sjsg #ifndef V9_STRUCTS_H_
25fb4d8502Sjsg #define V9_STRUCTS_H_
26fb4d8502Sjsg 
27fb4d8502Sjsg struct v9_sdma_mqd {
28fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_cntl;
29fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_base;
30fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_base_hi;
31fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_rptr;
32fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_rptr_hi;
33fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_wptr;
34fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_wptr_hi;
35fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_wptr_poll_cntl;
36fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_rptr_addr_hi;
37fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_rptr_addr_lo;
38fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_cntl;
39fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_rptr;
40fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_offset;
41fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_base_lo;
42fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_base_hi;
43fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_size;
44fb4d8502Sjsg 	uint32_t sdmax_rlcx_skip_cntl;
45fb4d8502Sjsg 	uint32_t sdmax_rlcx_context_status;
46fb4d8502Sjsg 	uint32_t sdmax_rlcx_doorbell;
47fb4d8502Sjsg 	uint32_t sdmax_rlcx_status;
48fb4d8502Sjsg 	uint32_t sdmax_rlcx_doorbell_log;
49fb4d8502Sjsg 	uint32_t sdmax_rlcx_watermark;
50fb4d8502Sjsg 	uint32_t sdmax_rlcx_doorbell_offset;
51fb4d8502Sjsg 	uint32_t sdmax_rlcx_csa_addr_lo;
52fb4d8502Sjsg 	uint32_t sdmax_rlcx_csa_addr_hi;
53fb4d8502Sjsg 	uint32_t sdmax_rlcx_ib_sub_remain;
54fb4d8502Sjsg 	uint32_t sdmax_rlcx_preempt;
55fb4d8502Sjsg 	uint32_t sdmax_rlcx_dummy_reg;
56fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi;
57fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo;
58fb4d8502Sjsg 	uint32_t sdmax_rlcx_rb_aql_cntl;
59fb4d8502Sjsg 	uint32_t sdmax_rlcx_minor_ptr_update;
60fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data0;
61fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data1;
62fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data2;
63fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data3;
64fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data4;
65fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data5;
66fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data6;
67fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data7;
68fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_data8;
69fb4d8502Sjsg 	uint32_t sdmax_rlcx_midcmd_cntl;
70fb4d8502Sjsg 	uint32_t reserved_42;
71fb4d8502Sjsg 	uint32_t reserved_43;
72fb4d8502Sjsg 	uint32_t reserved_44;
73fb4d8502Sjsg 	uint32_t reserved_45;
74fb4d8502Sjsg 	uint32_t reserved_46;
75fb4d8502Sjsg 	uint32_t reserved_47;
76fb4d8502Sjsg 	uint32_t reserved_48;
77fb4d8502Sjsg 	uint32_t reserved_49;
78fb4d8502Sjsg 	uint32_t reserved_50;
79fb4d8502Sjsg 	uint32_t reserved_51;
80fb4d8502Sjsg 	uint32_t reserved_52;
81fb4d8502Sjsg 	uint32_t reserved_53;
82fb4d8502Sjsg 	uint32_t reserved_54;
83fb4d8502Sjsg 	uint32_t reserved_55;
84fb4d8502Sjsg 	uint32_t reserved_56;
85fb4d8502Sjsg 	uint32_t reserved_57;
86fb4d8502Sjsg 	uint32_t reserved_58;
87fb4d8502Sjsg 	uint32_t reserved_59;
88fb4d8502Sjsg 	uint32_t reserved_60;
89fb4d8502Sjsg 	uint32_t reserved_61;
90fb4d8502Sjsg 	uint32_t reserved_62;
91fb4d8502Sjsg 	uint32_t reserved_63;
92fb4d8502Sjsg 	uint32_t reserved_64;
93fb4d8502Sjsg 	uint32_t reserved_65;
94fb4d8502Sjsg 	uint32_t reserved_66;
95fb4d8502Sjsg 	uint32_t reserved_67;
96fb4d8502Sjsg 	uint32_t reserved_68;
97fb4d8502Sjsg 	uint32_t reserved_69;
98fb4d8502Sjsg 	uint32_t reserved_70;
99fb4d8502Sjsg 	uint32_t reserved_71;
100fb4d8502Sjsg 	uint32_t reserved_72;
101fb4d8502Sjsg 	uint32_t reserved_73;
102fb4d8502Sjsg 	uint32_t reserved_74;
103fb4d8502Sjsg 	uint32_t reserved_75;
104fb4d8502Sjsg 	uint32_t reserved_76;
105fb4d8502Sjsg 	uint32_t reserved_77;
106fb4d8502Sjsg 	uint32_t reserved_78;
107fb4d8502Sjsg 	uint32_t reserved_79;
108fb4d8502Sjsg 	uint32_t reserved_80;
109fb4d8502Sjsg 	uint32_t reserved_81;
110fb4d8502Sjsg 	uint32_t reserved_82;
111fb4d8502Sjsg 	uint32_t reserved_83;
112fb4d8502Sjsg 	uint32_t reserved_84;
113fb4d8502Sjsg 	uint32_t reserved_85;
114fb4d8502Sjsg 	uint32_t reserved_86;
115fb4d8502Sjsg 	uint32_t reserved_87;
116fb4d8502Sjsg 	uint32_t reserved_88;
117fb4d8502Sjsg 	uint32_t reserved_89;
118fb4d8502Sjsg 	uint32_t reserved_90;
119fb4d8502Sjsg 	uint32_t reserved_91;
120fb4d8502Sjsg 	uint32_t reserved_92;
121fb4d8502Sjsg 	uint32_t reserved_93;
122fb4d8502Sjsg 	uint32_t reserved_94;
123fb4d8502Sjsg 	uint32_t reserved_95;
124fb4d8502Sjsg 	uint32_t reserved_96;
125fb4d8502Sjsg 	uint32_t reserved_97;
126fb4d8502Sjsg 	uint32_t reserved_98;
127fb4d8502Sjsg 	uint32_t reserved_99;
128fb4d8502Sjsg 	uint32_t reserved_100;
129fb4d8502Sjsg 	uint32_t reserved_101;
130fb4d8502Sjsg 	uint32_t reserved_102;
131fb4d8502Sjsg 	uint32_t reserved_103;
132fb4d8502Sjsg 	uint32_t reserved_104;
133fb4d8502Sjsg 	uint32_t reserved_105;
134fb4d8502Sjsg 	uint32_t reserved_106;
135fb4d8502Sjsg 	uint32_t reserved_107;
136fb4d8502Sjsg 	uint32_t reserved_108;
137fb4d8502Sjsg 	uint32_t reserved_109;
138fb4d8502Sjsg 	uint32_t reserved_110;
139fb4d8502Sjsg 	uint32_t reserved_111;
140fb4d8502Sjsg 	uint32_t reserved_112;
141fb4d8502Sjsg 	uint32_t reserved_113;
142fb4d8502Sjsg 	uint32_t reserved_114;
143fb4d8502Sjsg 	uint32_t reserved_115;
144fb4d8502Sjsg 	uint32_t reserved_116;
145fb4d8502Sjsg 	uint32_t reserved_117;
146fb4d8502Sjsg 	uint32_t reserved_118;
147fb4d8502Sjsg 	uint32_t reserved_119;
148fb4d8502Sjsg 	uint32_t reserved_120;
149fb4d8502Sjsg 	uint32_t reserved_121;
150fb4d8502Sjsg 	uint32_t reserved_122;
151fb4d8502Sjsg 	uint32_t reserved_123;
152fb4d8502Sjsg 	uint32_t reserved_124;
153fb4d8502Sjsg 	uint32_t reserved_125;
154c349dbc7Sjsg 	/* reserved_126,127: repurposed for driver-internal use */
155fb4d8502Sjsg 	uint32_t sdma_engine_id;
156fb4d8502Sjsg 	uint32_t sdma_queue_id;
157fb4d8502Sjsg };
158fb4d8502Sjsg 
159fb4d8502Sjsg struct v9_mqd {
160fb4d8502Sjsg 	uint32_t header;
161fb4d8502Sjsg 	uint32_t compute_dispatch_initiator;
162fb4d8502Sjsg 	uint32_t compute_dim_x;
163fb4d8502Sjsg 	uint32_t compute_dim_y;
164fb4d8502Sjsg 	uint32_t compute_dim_z;
165fb4d8502Sjsg 	uint32_t compute_start_x;
166fb4d8502Sjsg 	uint32_t compute_start_y;
167fb4d8502Sjsg 	uint32_t compute_start_z;
168fb4d8502Sjsg 	uint32_t compute_num_thread_x;
169fb4d8502Sjsg 	uint32_t compute_num_thread_y;
170fb4d8502Sjsg 	uint32_t compute_num_thread_z;
171fb4d8502Sjsg 	uint32_t compute_pipelinestat_enable;
172fb4d8502Sjsg 	uint32_t compute_perfcount_enable;
173fb4d8502Sjsg 	uint32_t compute_pgm_lo;
174fb4d8502Sjsg 	uint32_t compute_pgm_hi;
175fb4d8502Sjsg 	uint32_t compute_tba_lo;
176fb4d8502Sjsg 	uint32_t compute_tba_hi;
177fb4d8502Sjsg 	uint32_t compute_tma_lo;
178fb4d8502Sjsg 	uint32_t compute_tma_hi;
179fb4d8502Sjsg 	uint32_t compute_pgm_rsrc1;
180fb4d8502Sjsg 	uint32_t compute_pgm_rsrc2;
181fb4d8502Sjsg 	uint32_t compute_vmid;
182fb4d8502Sjsg 	uint32_t compute_resource_limits;
183fb4d8502Sjsg 	uint32_t compute_static_thread_mgmt_se0;
184fb4d8502Sjsg 	uint32_t compute_static_thread_mgmt_se1;
185fb4d8502Sjsg 	uint32_t compute_tmpring_size;
186fb4d8502Sjsg 	uint32_t compute_static_thread_mgmt_se2;
187fb4d8502Sjsg 	uint32_t compute_static_thread_mgmt_se3;
188fb4d8502Sjsg 	uint32_t compute_restart_x;
189fb4d8502Sjsg 	uint32_t compute_restart_y;
190fb4d8502Sjsg 	uint32_t compute_restart_z;
191fb4d8502Sjsg 	uint32_t compute_thread_trace_enable;
192fb4d8502Sjsg 	uint32_t compute_misc_reserved;
193fb4d8502Sjsg 	uint32_t compute_dispatch_id;
194fb4d8502Sjsg 	uint32_t compute_threadgroup_id;
195fb4d8502Sjsg 	uint32_t compute_relaunch;
196fb4d8502Sjsg 	uint32_t compute_wave_restore_addr_lo;
197fb4d8502Sjsg 	uint32_t compute_wave_restore_addr_hi;
198fb4d8502Sjsg 	uint32_t compute_wave_restore_control;
199*f005ef32Sjsg 	union {
200*f005ef32Sjsg 		struct {
201c349dbc7Sjsg 			uint32_t compute_static_thread_mgmt_se4;
202c349dbc7Sjsg 			uint32_t compute_static_thread_mgmt_se5;
203c349dbc7Sjsg 			uint32_t compute_static_thread_mgmt_se6;
204c349dbc7Sjsg 			uint32_t compute_static_thread_mgmt_se7;
205*f005ef32Sjsg 		};
206*f005ef32Sjsg 		struct {
207*f005ef32Sjsg 			uint32_t compute_current_logic_xcc_id; // offset: 39  (0x27)
208*f005ef32Sjsg 			uint32_t compute_restart_cg_tg_id; // offset: 40  (0x28)
209*f005ef32Sjsg 			uint32_t compute_tg_chunk_size; // offset: 41  (0x29)
210*f005ef32Sjsg 			uint32_t compute_restore_tg_chunk_size; // offset: 42  (0x2A)
211*f005ef32Sjsg 		};
212*f005ef32Sjsg 	};
213fb4d8502Sjsg 	uint32_t reserved_43;
214fb4d8502Sjsg 	uint32_t reserved_44;
215fb4d8502Sjsg 	uint32_t reserved_45;
216fb4d8502Sjsg 	uint32_t reserved_46;
217fb4d8502Sjsg 	uint32_t reserved_47;
218fb4d8502Sjsg 	uint32_t reserved_48;
219fb4d8502Sjsg 	uint32_t reserved_49;
220fb4d8502Sjsg 	uint32_t reserved_50;
221fb4d8502Sjsg 	uint32_t reserved_51;
222fb4d8502Sjsg 	uint32_t reserved_52;
223fb4d8502Sjsg 	uint32_t reserved_53;
224fb4d8502Sjsg 	uint32_t reserved_54;
225fb4d8502Sjsg 	uint32_t reserved_55;
226fb4d8502Sjsg 	uint32_t reserved_56;
227fb4d8502Sjsg 	uint32_t reserved_57;
228fb4d8502Sjsg 	uint32_t reserved_58;
229fb4d8502Sjsg 	uint32_t reserved_59;
230fb4d8502Sjsg 	uint32_t reserved_60;
231fb4d8502Sjsg 	uint32_t reserved_61;
232fb4d8502Sjsg 	uint32_t reserved_62;
233fb4d8502Sjsg 	uint32_t reserved_63;
234fb4d8502Sjsg 	uint32_t reserved_64;
235fb4d8502Sjsg 	uint32_t compute_user_data_0;
236fb4d8502Sjsg 	uint32_t compute_user_data_1;
237fb4d8502Sjsg 	uint32_t compute_user_data_2;
238fb4d8502Sjsg 	uint32_t compute_user_data_3;
239fb4d8502Sjsg 	uint32_t compute_user_data_4;
240fb4d8502Sjsg 	uint32_t compute_user_data_5;
241fb4d8502Sjsg 	uint32_t compute_user_data_6;
242fb4d8502Sjsg 	uint32_t compute_user_data_7;
243fb4d8502Sjsg 	uint32_t compute_user_data_8;
244fb4d8502Sjsg 	uint32_t compute_user_data_9;
245fb4d8502Sjsg 	uint32_t compute_user_data_10;
246fb4d8502Sjsg 	uint32_t compute_user_data_11;
247fb4d8502Sjsg 	uint32_t compute_user_data_12;
248fb4d8502Sjsg 	uint32_t compute_user_data_13;
249fb4d8502Sjsg 	uint32_t compute_user_data_14;
250fb4d8502Sjsg 	uint32_t compute_user_data_15;
251fb4d8502Sjsg 	uint32_t cp_compute_csinvoc_count_lo;
252fb4d8502Sjsg 	uint32_t cp_compute_csinvoc_count_hi;
253fb4d8502Sjsg 	uint32_t reserved_83;
254fb4d8502Sjsg 	uint32_t reserved_84;
255fb4d8502Sjsg 	uint32_t reserved_85;
256fb4d8502Sjsg 	uint32_t cp_mqd_query_time_lo;
257fb4d8502Sjsg 	uint32_t cp_mqd_query_time_hi;
258fb4d8502Sjsg 	uint32_t cp_mqd_connect_start_time_lo;
259fb4d8502Sjsg 	uint32_t cp_mqd_connect_start_time_hi;
260fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_time_lo;
261fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_time_hi;
262fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_wf_count;
263fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_pq_rptr;
264fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_pq_wptr;
265fb4d8502Sjsg 	uint32_t cp_mqd_connect_end_ib_rptr;
266fb4d8502Sjsg 	uint32_t cp_mqd_readindex_lo;
267fb4d8502Sjsg 	uint32_t cp_mqd_readindex_hi;
268fb4d8502Sjsg 	uint32_t cp_mqd_save_start_time_lo;
269fb4d8502Sjsg 	uint32_t cp_mqd_save_start_time_hi;
270fb4d8502Sjsg 	uint32_t cp_mqd_save_end_time_lo;
271fb4d8502Sjsg 	uint32_t cp_mqd_save_end_time_hi;
272fb4d8502Sjsg 	uint32_t cp_mqd_restore_start_time_lo;
273fb4d8502Sjsg 	uint32_t cp_mqd_restore_start_time_hi;
274fb4d8502Sjsg 	uint32_t cp_mqd_restore_end_time_lo;
275fb4d8502Sjsg 	uint32_t cp_mqd_restore_end_time_hi;
276fb4d8502Sjsg 	uint32_t disable_queue;
277fb4d8502Sjsg 	uint32_t reserved_107;
278fb4d8502Sjsg 	uint32_t gds_cs_ctxsw_cnt0;
279fb4d8502Sjsg 	uint32_t gds_cs_ctxsw_cnt1;
280fb4d8502Sjsg 	uint32_t gds_cs_ctxsw_cnt2;
281fb4d8502Sjsg 	uint32_t gds_cs_ctxsw_cnt3;
282fb4d8502Sjsg 	uint32_t reserved_112;
283fb4d8502Sjsg 	uint32_t reserved_113;
284fb4d8502Sjsg 	uint32_t cp_pq_exe_status_lo;
285fb4d8502Sjsg 	uint32_t cp_pq_exe_status_hi;
286fb4d8502Sjsg 	uint32_t cp_packet_id_lo;
287fb4d8502Sjsg 	uint32_t cp_packet_id_hi;
288fb4d8502Sjsg 	uint32_t cp_packet_exe_status_lo;
289fb4d8502Sjsg 	uint32_t cp_packet_exe_status_hi;
290fb4d8502Sjsg 	uint32_t gds_save_base_addr_lo;
291fb4d8502Sjsg 	uint32_t gds_save_base_addr_hi;
292fb4d8502Sjsg 	uint32_t gds_save_mask_lo;
293fb4d8502Sjsg 	uint32_t gds_save_mask_hi;
294fb4d8502Sjsg 	uint32_t ctx_save_base_addr_lo;
295fb4d8502Sjsg 	uint32_t ctx_save_base_addr_hi;
296fb4d8502Sjsg 	uint32_t dynamic_cu_mask_addr_lo;
297fb4d8502Sjsg 	uint32_t dynamic_cu_mask_addr_hi;
298fb4d8502Sjsg 	uint32_t cp_mqd_base_addr_lo;
299fb4d8502Sjsg 	uint32_t cp_mqd_base_addr_hi;
300fb4d8502Sjsg 	uint32_t cp_hqd_active;
301fb4d8502Sjsg 	uint32_t cp_hqd_vmid;
302fb4d8502Sjsg 	uint32_t cp_hqd_persistent_state;
303fb4d8502Sjsg 	uint32_t cp_hqd_pipe_priority;
304fb4d8502Sjsg 	uint32_t cp_hqd_queue_priority;
305fb4d8502Sjsg 	uint32_t cp_hqd_quantum;
306fb4d8502Sjsg 	uint32_t cp_hqd_pq_base_lo;
307fb4d8502Sjsg 	uint32_t cp_hqd_pq_base_hi;
308fb4d8502Sjsg 	uint32_t cp_hqd_pq_rptr;
309fb4d8502Sjsg 	uint32_t cp_hqd_pq_rptr_report_addr_lo;
310fb4d8502Sjsg 	uint32_t cp_hqd_pq_rptr_report_addr_hi;
311fb4d8502Sjsg 	uint32_t cp_hqd_pq_wptr_poll_addr_lo;
312fb4d8502Sjsg 	uint32_t cp_hqd_pq_wptr_poll_addr_hi;
313fb4d8502Sjsg 	uint32_t cp_hqd_pq_doorbell_control;
314fb4d8502Sjsg 	uint32_t reserved_144;
315fb4d8502Sjsg 	uint32_t cp_hqd_pq_control;
316fb4d8502Sjsg 	uint32_t cp_hqd_ib_base_addr_lo;
317fb4d8502Sjsg 	uint32_t cp_hqd_ib_base_addr_hi;
318fb4d8502Sjsg 	uint32_t cp_hqd_ib_rptr;
319fb4d8502Sjsg 	uint32_t cp_hqd_ib_control;
320fb4d8502Sjsg 	uint32_t cp_hqd_iq_timer;
321fb4d8502Sjsg 	uint32_t cp_hqd_iq_rptr;
322fb4d8502Sjsg 	uint32_t cp_hqd_dequeue_request;
323fb4d8502Sjsg 	uint32_t cp_hqd_dma_offload;
324fb4d8502Sjsg 	uint32_t cp_hqd_sema_cmd;
325fb4d8502Sjsg 	uint32_t cp_hqd_msg_type;
326fb4d8502Sjsg 	uint32_t cp_hqd_atomic0_preop_lo;
327fb4d8502Sjsg 	uint32_t cp_hqd_atomic0_preop_hi;
328fb4d8502Sjsg 	uint32_t cp_hqd_atomic1_preop_lo;
329fb4d8502Sjsg 	uint32_t cp_hqd_atomic1_preop_hi;
330fb4d8502Sjsg 	uint32_t cp_hqd_hq_status0;
331fb4d8502Sjsg 	uint32_t cp_hqd_hq_control0;
332fb4d8502Sjsg 	uint32_t cp_mqd_control;
333fb4d8502Sjsg 	uint32_t cp_hqd_hq_status1;
334fb4d8502Sjsg 	uint32_t cp_hqd_hq_control1;
335fb4d8502Sjsg 	uint32_t cp_hqd_eop_base_addr_lo;
336fb4d8502Sjsg 	uint32_t cp_hqd_eop_base_addr_hi;
337fb4d8502Sjsg 	uint32_t cp_hqd_eop_control;
338fb4d8502Sjsg 	uint32_t cp_hqd_eop_rptr;
339fb4d8502Sjsg 	uint32_t cp_hqd_eop_wptr;
340fb4d8502Sjsg 	uint32_t cp_hqd_eop_done_events;
341fb4d8502Sjsg 	uint32_t cp_hqd_ctx_save_base_addr_lo;
342fb4d8502Sjsg 	uint32_t cp_hqd_ctx_save_base_addr_hi;
343fb4d8502Sjsg 	uint32_t cp_hqd_ctx_save_control;
344fb4d8502Sjsg 	uint32_t cp_hqd_cntl_stack_offset;
345fb4d8502Sjsg 	uint32_t cp_hqd_cntl_stack_size;
346fb4d8502Sjsg 	uint32_t cp_hqd_wg_state_offset;
347fb4d8502Sjsg 	uint32_t cp_hqd_ctx_save_size;
348fb4d8502Sjsg 	uint32_t cp_hqd_gds_resource_state;
349fb4d8502Sjsg 	uint32_t cp_hqd_error;
350fb4d8502Sjsg 	uint32_t cp_hqd_eop_wptr_mem;
351fb4d8502Sjsg 	uint32_t cp_hqd_aql_control;
352fb4d8502Sjsg 	uint32_t cp_hqd_pq_wptr_lo;
353fb4d8502Sjsg 	uint32_t cp_hqd_pq_wptr_hi;
354fb4d8502Sjsg 	uint32_t reserved_184;
355fb4d8502Sjsg 	uint32_t reserved_185;
356fb4d8502Sjsg 	uint32_t reserved_186;
357fb4d8502Sjsg 	uint32_t reserved_187;
358fb4d8502Sjsg 	uint32_t reserved_188;
359fb4d8502Sjsg 	uint32_t reserved_189;
360fb4d8502Sjsg 	uint32_t reserved_190;
361fb4d8502Sjsg 	uint32_t reserved_191;
362fb4d8502Sjsg 	uint32_t iqtimer_pkt_header;
363fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw0;
364fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw1;
365fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw2;
366fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw3;
367fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw4;
368fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw5;
369fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw6;
370fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw7;
371fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw8;
372fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw9;
373fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw10;
374fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw11;
375fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw12;
376fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw13;
377fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw14;
378fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw15;
379fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw16;
380fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw17;
381fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw18;
382fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw19;
383fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw20;
384fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw21;
385fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw22;
386fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw23;
387fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw24;
388fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw25;
389fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw26;
390fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw27;
391fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw28;
392fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw29;
393fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw30;
394fb4d8502Sjsg 	uint32_t iqtimer_pkt_dw31;
395*f005ef32Sjsg 	union {
396*f005ef32Sjsg 		struct {
397fb4d8502Sjsg 			uint32_t reserved_225;
398fb4d8502Sjsg 			uint32_t reserved_226;
399*f005ef32Sjsg 		};
400*f005ef32Sjsg 		struct {
401*f005ef32Sjsg 			uint32_t pm4_target_xcc_in_xcp; // offset: 225  (0xE1)
402*f005ef32Sjsg 			uint32_t cp_mqd_stride_size; // offset: 226  (0xE2)
403*f005ef32Sjsg 		};
404*f005ef32Sjsg 	};
405fb4d8502Sjsg 	uint32_t reserved_227;
406fb4d8502Sjsg 	uint32_t set_resources_header;
407fb4d8502Sjsg 	uint32_t set_resources_dw1;
408fb4d8502Sjsg 	uint32_t set_resources_dw2;
409fb4d8502Sjsg 	uint32_t set_resources_dw3;
410fb4d8502Sjsg 	uint32_t set_resources_dw4;
411fb4d8502Sjsg 	uint32_t set_resources_dw5;
412fb4d8502Sjsg 	uint32_t set_resources_dw6;
413fb4d8502Sjsg 	uint32_t set_resources_dw7;
414fb4d8502Sjsg 	uint32_t reserved_236;
415fb4d8502Sjsg 	uint32_t reserved_237;
416fb4d8502Sjsg 	uint32_t reserved_238;
417fb4d8502Sjsg 	uint32_t reserved_239;
418fb4d8502Sjsg 	uint32_t queue_doorbell_id0;
419fb4d8502Sjsg 	uint32_t queue_doorbell_id1;
420fb4d8502Sjsg 	uint32_t queue_doorbell_id2;
421fb4d8502Sjsg 	uint32_t queue_doorbell_id3;
422fb4d8502Sjsg 	uint32_t queue_doorbell_id4;
423fb4d8502Sjsg 	uint32_t queue_doorbell_id5;
424fb4d8502Sjsg 	uint32_t queue_doorbell_id6;
425fb4d8502Sjsg 	uint32_t queue_doorbell_id7;
426fb4d8502Sjsg 	uint32_t queue_doorbell_id8;
427fb4d8502Sjsg 	uint32_t queue_doorbell_id9;
428fb4d8502Sjsg 	uint32_t queue_doorbell_id10;
429fb4d8502Sjsg 	uint32_t queue_doorbell_id11;
430fb4d8502Sjsg 	uint32_t queue_doorbell_id12;
431fb4d8502Sjsg 	uint32_t queue_doorbell_id13;
432fb4d8502Sjsg 	uint32_t queue_doorbell_id14;
433fb4d8502Sjsg 	uint32_t queue_doorbell_id15;
434fb4d8502Sjsg 	uint32_t reserved_256;
435fb4d8502Sjsg 	uint32_t reserved_257;
436fb4d8502Sjsg 	uint32_t reserved_258;
437fb4d8502Sjsg 	uint32_t reserved_259;
438fb4d8502Sjsg 	uint32_t reserved_260;
439fb4d8502Sjsg 	uint32_t reserved_261;
440fb4d8502Sjsg 	uint32_t reserved_262;
441fb4d8502Sjsg 	uint32_t reserved_263;
442fb4d8502Sjsg 	uint32_t reserved_264;
443fb4d8502Sjsg 	uint32_t reserved_265;
444fb4d8502Sjsg 	uint32_t reserved_266;
445fb4d8502Sjsg 	uint32_t reserved_267;
446fb4d8502Sjsg 	uint32_t reserved_268;
447fb4d8502Sjsg 	uint32_t reserved_269;
448fb4d8502Sjsg 	uint32_t reserved_270;
449fb4d8502Sjsg 	uint32_t reserved_271;
450fb4d8502Sjsg 	uint32_t reserved_272;
451fb4d8502Sjsg 	uint32_t reserved_273;
452fb4d8502Sjsg 	uint32_t reserved_274;
453fb4d8502Sjsg 	uint32_t reserved_275;
454fb4d8502Sjsg 	uint32_t reserved_276;
455fb4d8502Sjsg 	uint32_t reserved_277;
456fb4d8502Sjsg 	uint32_t reserved_278;
457fb4d8502Sjsg 	uint32_t reserved_279;
458fb4d8502Sjsg 	uint32_t reserved_280;
459fb4d8502Sjsg 	uint32_t reserved_281;
460fb4d8502Sjsg 	uint32_t reserved_282;
461fb4d8502Sjsg 	uint32_t reserved_283;
462fb4d8502Sjsg 	uint32_t reserved_284;
463fb4d8502Sjsg 	uint32_t reserved_285;
464fb4d8502Sjsg 	uint32_t reserved_286;
465fb4d8502Sjsg 	uint32_t reserved_287;
466fb4d8502Sjsg 	uint32_t reserved_288;
467fb4d8502Sjsg 	uint32_t reserved_289;
468fb4d8502Sjsg 	uint32_t reserved_290;
469fb4d8502Sjsg 	uint32_t reserved_291;
470fb4d8502Sjsg 	uint32_t reserved_292;
471fb4d8502Sjsg 	uint32_t reserved_293;
472fb4d8502Sjsg 	uint32_t reserved_294;
473fb4d8502Sjsg 	uint32_t reserved_295;
474fb4d8502Sjsg 	uint32_t reserved_296;
475fb4d8502Sjsg 	uint32_t reserved_297;
476fb4d8502Sjsg 	uint32_t reserved_298;
477fb4d8502Sjsg 	uint32_t reserved_299;
478fb4d8502Sjsg 	uint32_t reserved_300;
479fb4d8502Sjsg 	uint32_t reserved_301;
480fb4d8502Sjsg 	uint32_t reserved_302;
481fb4d8502Sjsg 	uint32_t reserved_303;
482fb4d8502Sjsg 	uint32_t reserved_304;
483fb4d8502Sjsg 	uint32_t reserved_305;
484fb4d8502Sjsg 	uint32_t reserved_306;
485fb4d8502Sjsg 	uint32_t reserved_307;
486fb4d8502Sjsg 	uint32_t reserved_308;
487fb4d8502Sjsg 	uint32_t reserved_309;
488fb4d8502Sjsg 	uint32_t reserved_310;
489fb4d8502Sjsg 	uint32_t reserved_311;
490fb4d8502Sjsg 	uint32_t reserved_312;
491fb4d8502Sjsg 	uint32_t reserved_313;
492fb4d8502Sjsg 	uint32_t reserved_314;
493fb4d8502Sjsg 	uint32_t reserved_315;
494fb4d8502Sjsg 	uint32_t reserved_316;
495fb4d8502Sjsg 	uint32_t reserved_317;
496fb4d8502Sjsg 	uint32_t reserved_318;
497fb4d8502Sjsg 	uint32_t reserved_319;
498fb4d8502Sjsg 	uint32_t reserved_320;
499fb4d8502Sjsg 	uint32_t reserved_321;
500fb4d8502Sjsg 	uint32_t reserved_322;
501fb4d8502Sjsg 	uint32_t reserved_323;
502fb4d8502Sjsg 	uint32_t reserved_324;
503fb4d8502Sjsg 	uint32_t reserved_325;
504fb4d8502Sjsg 	uint32_t reserved_326;
505fb4d8502Sjsg 	uint32_t reserved_327;
506fb4d8502Sjsg 	uint32_t reserved_328;
507fb4d8502Sjsg 	uint32_t reserved_329;
508fb4d8502Sjsg 	uint32_t reserved_330;
509fb4d8502Sjsg 	uint32_t reserved_331;
510fb4d8502Sjsg 	uint32_t reserved_332;
511fb4d8502Sjsg 	uint32_t reserved_333;
512fb4d8502Sjsg 	uint32_t reserved_334;
513fb4d8502Sjsg 	uint32_t reserved_335;
514fb4d8502Sjsg 	uint32_t reserved_336;
515fb4d8502Sjsg 	uint32_t reserved_337;
516fb4d8502Sjsg 	uint32_t reserved_338;
517fb4d8502Sjsg 	uint32_t reserved_339;
518fb4d8502Sjsg 	uint32_t reserved_340;
519fb4d8502Sjsg 	uint32_t reserved_341;
520fb4d8502Sjsg 	uint32_t reserved_342;
521fb4d8502Sjsg 	uint32_t reserved_343;
522fb4d8502Sjsg 	uint32_t reserved_344;
523fb4d8502Sjsg 	uint32_t reserved_345;
524fb4d8502Sjsg 	uint32_t reserved_346;
525fb4d8502Sjsg 	uint32_t reserved_347;
526fb4d8502Sjsg 	uint32_t reserved_348;
527fb4d8502Sjsg 	uint32_t reserved_349;
528fb4d8502Sjsg 	uint32_t reserved_350;
529fb4d8502Sjsg 	uint32_t reserved_351;
530fb4d8502Sjsg 	uint32_t reserved_352;
531fb4d8502Sjsg 	uint32_t reserved_353;
532fb4d8502Sjsg 	uint32_t reserved_354;
533fb4d8502Sjsg 	uint32_t reserved_355;
534fb4d8502Sjsg 	uint32_t reserved_356;
535fb4d8502Sjsg 	uint32_t reserved_357;
536fb4d8502Sjsg 	uint32_t reserved_358;
537fb4d8502Sjsg 	uint32_t reserved_359;
538fb4d8502Sjsg 	uint32_t reserved_360;
539fb4d8502Sjsg 	uint32_t reserved_361;
540fb4d8502Sjsg 	uint32_t reserved_362;
541fb4d8502Sjsg 	uint32_t reserved_363;
542fb4d8502Sjsg 	uint32_t reserved_364;
543fb4d8502Sjsg 	uint32_t reserved_365;
544fb4d8502Sjsg 	uint32_t reserved_366;
545fb4d8502Sjsg 	uint32_t reserved_367;
546fb4d8502Sjsg 	uint32_t reserved_368;
547fb4d8502Sjsg 	uint32_t reserved_369;
548fb4d8502Sjsg 	uint32_t reserved_370;
549fb4d8502Sjsg 	uint32_t reserved_371;
550fb4d8502Sjsg 	uint32_t reserved_372;
551fb4d8502Sjsg 	uint32_t reserved_373;
552fb4d8502Sjsg 	uint32_t reserved_374;
553fb4d8502Sjsg 	uint32_t reserved_375;
554fb4d8502Sjsg 	uint32_t reserved_376;
555fb4d8502Sjsg 	uint32_t reserved_377;
556fb4d8502Sjsg 	uint32_t reserved_378;
557fb4d8502Sjsg 	uint32_t reserved_379;
558fb4d8502Sjsg 	uint32_t reserved_380;
559fb4d8502Sjsg 	uint32_t reserved_381;
560fb4d8502Sjsg 	uint32_t reserved_382;
561fb4d8502Sjsg 	uint32_t reserved_383;
562fb4d8502Sjsg 	uint32_t reserved_384;
563fb4d8502Sjsg 	uint32_t reserved_385;
564fb4d8502Sjsg 	uint32_t reserved_386;
565fb4d8502Sjsg 	uint32_t reserved_387;
566fb4d8502Sjsg 	uint32_t reserved_388;
567fb4d8502Sjsg 	uint32_t reserved_389;
568fb4d8502Sjsg 	uint32_t reserved_390;
569fb4d8502Sjsg 	uint32_t reserved_391;
570fb4d8502Sjsg 	uint32_t reserved_392;
571fb4d8502Sjsg 	uint32_t reserved_393;
572fb4d8502Sjsg 	uint32_t reserved_394;
573fb4d8502Sjsg 	uint32_t reserved_395;
574fb4d8502Sjsg 	uint32_t reserved_396;
575fb4d8502Sjsg 	uint32_t reserved_397;
576fb4d8502Sjsg 	uint32_t reserved_398;
577fb4d8502Sjsg 	uint32_t reserved_399;
578fb4d8502Sjsg 	uint32_t reserved_400;
579fb4d8502Sjsg 	uint32_t reserved_401;
580fb4d8502Sjsg 	uint32_t reserved_402;
581fb4d8502Sjsg 	uint32_t reserved_403;
582fb4d8502Sjsg 	uint32_t reserved_404;
583fb4d8502Sjsg 	uint32_t reserved_405;
584fb4d8502Sjsg 	uint32_t reserved_406;
585fb4d8502Sjsg 	uint32_t reserved_407;
586fb4d8502Sjsg 	uint32_t reserved_408;
587fb4d8502Sjsg 	uint32_t reserved_409;
588fb4d8502Sjsg 	uint32_t reserved_410;
589fb4d8502Sjsg 	uint32_t reserved_411;
590fb4d8502Sjsg 	uint32_t reserved_412;
591fb4d8502Sjsg 	uint32_t reserved_413;
592fb4d8502Sjsg 	uint32_t reserved_414;
593fb4d8502Sjsg 	uint32_t reserved_415;
594fb4d8502Sjsg 	uint32_t reserved_416;
595fb4d8502Sjsg 	uint32_t reserved_417;
596fb4d8502Sjsg 	uint32_t reserved_418;
597fb4d8502Sjsg 	uint32_t reserved_419;
598fb4d8502Sjsg 	uint32_t reserved_420;
599fb4d8502Sjsg 	uint32_t reserved_421;
600fb4d8502Sjsg 	uint32_t reserved_422;
601fb4d8502Sjsg 	uint32_t reserved_423;
602fb4d8502Sjsg 	uint32_t reserved_424;
603fb4d8502Sjsg 	uint32_t reserved_425;
604fb4d8502Sjsg 	uint32_t reserved_426;
605fb4d8502Sjsg 	uint32_t reserved_427;
606fb4d8502Sjsg 	uint32_t reserved_428;
607fb4d8502Sjsg 	uint32_t reserved_429;
608fb4d8502Sjsg 	uint32_t reserved_430;
609fb4d8502Sjsg 	uint32_t reserved_431;
610fb4d8502Sjsg 	uint32_t reserved_432;
611fb4d8502Sjsg 	uint32_t reserved_433;
612fb4d8502Sjsg 	uint32_t reserved_434;
613fb4d8502Sjsg 	uint32_t reserved_435;
614fb4d8502Sjsg 	uint32_t reserved_436;
615fb4d8502Sjsg 	uint32_t reserved_437;
616fb4d8502Sjsg 	uint32_t reserved_438;
617fb4d8502Sjsg 	uint32_t reserved_439;
618fb4d8502Sjsg 	uint32_t reserved_440;
619fb4d8502Sjsg 	uint32_t reserved_441;
620fb4d8502Sjsg 	uint32_t reserved_442;
621fb4d8502Sjsg 	uint32_t reserved_443;
622fb4d8502Sjsg 	uint32_t reserved_444;
623fb4d8502Sjsg 	uint32_t reserved_445;
624fb4d8502Sjsg 	uint32_t reserved_446;
625fb4d8502Sjsg 	uint32_t reserved_447;
626fb4d8502Sjsg 	uint32_t reserved_448;
627fb4d8502Sjsg 	uint32_t reserved_449;
628fb4d8502Sjsg 	uint32_t reserved_450;
629fb4d8502Sjsg 	uint32_t reserved_451;
630fb4d8502Sjsg 	uint32_t reserved_452;
631fb4d8502Sjsg 	uint32_t reserved_453;
632fb4d8502Sjsg 	uint32_t reserved_454;
633fb4d8502Sjsg 	uint32_t reserved_455;
634fb4d8502Sjsg 	uint32_t reserved_456;
635fb4d8502Sjsg 	uint32_t reserved_457;
636fb4d8502Sjsg 	uint32_t reserved_458;
637fb4d8502Sjsg 	uint32_t reserved_459;
638fb4d8502Sjsg 	uint32_t reserved_460;
639fb4d8502Sjsg 	uint32_t reserved_461;
640fb4d8502Sjsg 	uint32_t reserved_462;
641fb4d8502Sjsg 	uint32_t reserved_463;
642fb4d8502Sjsg 	uint32_t reserved_464;
643fb4d8502Sjsg 	uint32_t reserved_465;
644fb4d8502Sjsg 	uint32_t reserved_466;
645fb4d8502Sjsg 	uint32_t reserved_467;
646fb4d8502Sjsg 	uint32_t reserved_468;
647fb4d8502Sjsg 	uint32_t reserved_469;
648fb4d8502Sjsg 	uint32_t reserved_470;
649fb4d8502Sjsg 	uint32_t reserved_471;
650fb4d8502Sjsg 	uint32_t reserved_472;
651fb4d8502Sjsg 	uint32_t reserved_473;
652fb4d8502Sjsg 	uint32_t reserved_474;
653fb4d8502Sjsg 	uint32_t reserved_475;
654fb4d8502Sjsg 	uint32_t reserved_476;
655fb4d8502Sjsg 	uint32_t reserved_477;
656fb4d8502Sjsg 	uint32_t reserved_478;
657fb4d8502Sjsg 	uint32_t reserved_479;
658fb4d8502Sjsg 	uint32_t reserved_480;
659fb4d8502Sjsg 	uint32_t reserved_481;
660fb4d8502Sjsg 	uint32_t reserved_482;
661fb4d8502Sjsg 	uint32_t reserved_483;
662fb4d8502Sjsg 	uint32_t reserved_484;
663fb4d8502Sjsg 	uint32_t reserved_485;
664fb4d8502Sjsg 	uint32_t reserved_486;
665fb4d8502Sjsg 	uint32_t reserved_487;
666fb4d8502Sjsg 	uint32_t reserved_488;
667fb4d8502Sjsg 	uint32_t reserved_489;
668fb4d8502Sjsg 	uint32_t reserved_490;
669fb4d8502Sjsg 	uint32_t reserved_491;
670fb4d8502Sjsg 	uint32_t reserved_492;
671fb4d8502Sjsg 	uint32_t reserved_493;
672fb4d8502Sjsg 	uint32_t reserved_494;
673fb4d8502Sjsg 	uint32_t reserved_495;
674fb4d8502Sjsg 	uint32_t reserved_496;
675fb4d8502Sjsg 	uint32_t reserved_497;
676fb4d8502Sjsg 	uint32_t reserved_498;
677fb4d8502Sjsg 	uint32_t reserved_499;
678fb4d8502Sjsg 	uint32_t reserved_500;
679fb4d8502Sjsg 	uint32_t reserved_501;
680fb4d8502Sjsg 	uint32_t reserved_502;
681fb4d8502Sjsg 	uint32_t reserved_503;
682fb4d8502Sjsg 	uint32_t reserved_504;
683fb4d8502Sjsg 	uint32_t reserved_505;
684fb4d8502Sjsg 	uint32_t reserved_506;
685fb4d8502Sjsg 	uint32_t reserved_507;
686fb4d8502Sjsg 	uint32_t reserved_508;
687fb4d8502Sjsg 	uint32_t reserved_509;
688fb4d8502Sjsg 	uint32_t reserved_510;
689fb4d8502Sjsg 	uint32_t reserved_511;
690fb4d8502Sjsg };
691fb4d8502Sjsg 
692fb4d8502Sjsg struct v9_mqd_allocation {
693fb4d8502Sjsg 	struct v9_mqd mqd;
694fb4d8502Sjsg 	uint32_t wptr_poll_mem;
695fb4d8502Sjsg 	uint32_t rptr_report_mem;
696fb4d8502Sjsg 	uint32_t dynamic_cu_mask;
697fb4d8502Sjsg 	uint32_t dynamic_rb_mask;
698fb4d8502Sjsg };
699fb4d8502Sjsg 
700fb4d8502Sjsg /* from vega10 all CSA format is shifted to chain ib compatible mode */
701fb4d8502Sjsg struct v9_ce_ib_state {
702fb4d8502Sjsg     /* section of non chained ib part */
703fb4d8502Sjsg     uint32_t ce_ib_completion_status;
704fb4d8502Sjsg     uint32_t ce_constegnine_count;
705fb4d8502Sjsg     uint32_t ce_ibOffset_ib1;
706fb4d8502Sjsg     uint32_t ce_ibOffset_ib2;
707fb4d8502Sjsg 
708fb4d8502Sjsg     /* section of chained ib */
709fb4d8502Sjsg     uint32_t ce_chainib_addrlo_ib1;
710fb4d8502Sjsg     uint32_t ce_chainib_addrlo_ib2;
711fb4d8502Sjsg     uint32_t ce_chainib_addrhi_ib1;
712fb4d8502Sjsg     uint32_t ce_chainib_addrhi_ib2;
713fb4d8502Sjsg     uint32_t ce_chainib_size_ib1;
714fb4d8502Sjsg     uint32_t ce_chainib_size_ib2;
715fb4d8502Sjsg }; /* total 10 DWORD */
716fb4d8502Sjsg 
717fb4d8502Sjsg struct v9_de_ib_state {
718fb4d8502Sjsg     /* section of non chained ib part */
719fb4d8502Sjsg     uint32_t ib_completion_status;
720fb4d8502Sjsg     uint32_t de_constEngine_count;
721fb4d8502Sjsg     uint32_t ib_offset_ib1;
722fb4d8502Sjsg     uint32_t ib_offset_ib2;
723fb4d8502Sjsg 
724fb4d8502Sjsg     /* section of chained ib */
725fb4d8502Sjsg     uint32_t chain_ib_addrlo_ib1;
726fb4d8502Sjsg     uint32_t chain_ib_addrlo_ib2;
727fb4d8502Sjsg     uint32_t chain_ib_addrhi_ib1;
728fb4d8502Sjsg     uint32_t chain_ib_addrhi_ib2;
729fb4d8502Sjsg     uint32_t chain_ib_size_ib1;
730fb4d8502Sjsg     uint32_t chain_ib_size_ib2;
731fb4d8502Sjsg 
732fb4d8502Sjsg     /* section of non chained ib part */
733fb4d8502Sjsg     uint32_t preamble_begin_ib1;
734fb4d8502Sjsg     uint32_t preamble_begin_ib2;
735fb4d8502Sjsg     uint32_t preamble_end_ib1;
736fb4d8502Sjsg     uint32_t preamble_end_ib2;
737fb4d8502Sjsg 
738fb4d8502Sjsg     /* section of chained ib */
739fb4d8502Sjsg     uint32_t chain_ib_pream_addrlo_ib1;
740fb4d8502Sjsg     uint32_t chain_ib_pream_addrlo_ib2;
741fb4d8502Sjsg     uint32_t chain_ib_pream_addrhi_ib1;
742fb4d8502Sjsg     uint32_t chain_ib_pream_addrhi_ib2;
743fb4d8502Sjsg 
744fb4d8502Sjsg     /* section of non chained ib part */
745fb4d8502Sjsg     uint32_t draw_indirect_baseLo;
746fb4d8502Sjsg     uint32_t draw_indirect_baseHi;
747fb4d8502Sjsg     uint32_t disp_indirect_baseLo;
748fb4d8502Sjsg     uint32_t disp_indirect_baseHi;
749fb4d8502Sjsg     uint32_t gds_backup_addrlo;
750fb4d8502Sjsg     uint32_t gds_backup_addrhi;
751fb4d8502Sjsg     uint32_t index_base_addrlo;
752fb4d8502Sjsg     uint32_t index_base_addrhi;
753fb4d8502Sjsg     uint32_t sample_cntl;
754fb4d8502Sjsg }; /* Total of 27 DWORD */
755fb4d8502Sjsg 
756fb4d8502Sjsg struct v9_gfx_meta_data {
757fb4d8502Sjsg     /* 10 DWORD, address must be 4KB aligned */
758fb4d8502Sjsg     struct v9_ce_ib_state ce_payload;
759fb4d8502Sjsg     uint32_t reserved1[54];
760fb4d8502Sjsg     /* 27 DWORD, address must be 64B aligned */
761fb4d8502Sjsg     struct v9_de_ib_state de_payload;
762fb4d8502Sjsg     /* PFP IB base address which get pre-empted */
763fb4d8502Sjsg     uint32_t DeIbBaseAddrLo;
764fb4d8502Sjsg     uint32_t DeIbBaseAddrHi;
765fb4d8502Sjsg     uint32_t reserved2[931];
766fb4d8502Sjsg }; /* Total of 4K Bytes */
767fb4d8502Sjsg 
768fb4d8502Sjsg #endif /* V9_STRUCTS_H_ */
769