1 1.1 riastrad /* $NetBSD: vi_structs.h,v 1.3 2021/12/18 23:45:08 riastradh Exp $ */ 2 1.1 riastrad 3 1.1 riastrad /* 4 1.1 riastrad * Copyright 2012 Advanced Micro Devices, Inc. 5 1.1 riastrad * 6 1.1 riastrad * Permission is hereby granted, free of charge, to any person obtaining a 7 1.1 riastrad * copy of this software and associated documentation files (the "Software"), 8 1.1 riastrad * to deal in the Software without restriction, including without limitation 9 1.1 riastrad * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 1.1 riastrad * and/or sell copies of the Software, and to permit persons to whom the 11 1.1 riastrad * Software is furnished to do so, subject to the following conditions: 12 1.1 riastrad * 13 1.1 riastrad * The above copyright notice and this permission notice shall be included in 14 1.1 riastrad * all copies or substantial portions of the Software. 15 1.1 riastrad * 16 1.1 riastrad * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 1.1 riastrad * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 1.1 riastrad * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 1.1 riastrad * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 1.1 riastrad * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 1.1 riastrad * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 1.1 riastrad * OTHER DEALINGS IN THE SOFTWARE. 23 1.1 riastrad * 24 1.1 riastrad */ 25 1.1 riastrad 26 1.1 riastrad #ifndef VI_STRUCTS_H_ 27 1.1 riastrad #define VI_STRUCTS_H_ 28 1.1 riastrad 29 1.1 riastrad struct vi_sdma_mqd { 30 1.1 riastrad uint32_t sdmax_rlcx_rb_cntl; 31 1.1 riastrad uint32_t sdmax_rlcx_rb_base; 32 1.1 riastrad uint32_t sdmax_rlcx_rb_base_hi; 33 1.1 riastrad uint32_t sdmax_rlcx_rb_rptr; 34 1.1 riastrad uint32_t sdmax_rlcx_rb_wptr; 35 1.1 riastrad uint32_t sdmax_rlcx_rb_wptr_poll_cntl; 36 1.1 riastrad uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi; 37 1.1 riastrad uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo; 38 1.1 riastrad uint32_t sdmax_rlcx_rb_rptr_addr_hi; 39 1.1 riastrad uint32_t sdmax_rlcx_rb_rptr_addr_lo; 40 1.1 riastrad uint32_t sdmax_rlcx_ib_cntl; 41 1.1 riastrad uint32_t sdmax_rlcx_ib_rptr; 42 1.1 riastrad uint32_t sdmax_rlcx_ib_offset; 43 1.1 riastrad uint32_t sdmax_rlcx_ib_base_lo; 44 1.1 riastrad uint32_t sdmax_rlcx_ib_base_hi; 45 1.1 riastrad uint32_t sdmax_rlcx_ib_size; 46 1.1 riastrad uint32_t sdmax_rlcx_skip_cntl; 47 1.1 riastrad uint32_t sdmax_rlcx_context_status; 48 1.1 riastrad uint32_t sdmax_rlcx_doorbell; 49 1.1 riastrad uint32_t sdmax_rlcx_virtual_addr; 50 1.1 riastrad uint32_t sdmax_rlcx_ape1_cntl; 51 1.1 riastrad uint32_t sdmax_rlcx_doorbell_log; 52 1.1 riastrad uint32_t reserved_22; 53 1.1 riastrad uint32_t reserved_23; 54 1.1 riastrad uint32_t reserved_24; 55 1.1 riastrad uint32_t reserved_25; 56 1.1 riastrad uint32_t reserved_26; 57 1.1 riastrad uint32_t reserved_27; 58 1.1 riastrad uint32_t reserved_28; 59 1.1 riastrad uint32_t reserved_29; 60 1.1 riastrad uint32_t reserved_30; 61 1.1 riastrad uint32_t reserved_31; 62 1.1 riastrad uint32_t reserved_32; 63 1.1 riastrad uint32_t reserved_33; 64 1.1 riastrad uint32_t reserved_34; 65 1.1 riastrad uint32_t reserved_35; 66 1.1 riastrad uint32_t reserved_36; 67 1.1 riastrad uint32_t reserved_37; 68 1.1 riastrad uint32_t reserved_38; 69 1.1 riastrad uint32_t reserved_39; 70 1.1 riastrad uint32_t reserved_40; 71 1.1 riastrad uint32_t reserved_41; 72 1.1 riastrad uint32_t reserved_42; 73 1.1 riastrad uint32_t reserved_43; 74 1.1 riastrad uint32_t reserved_44; 75 1.1 riastrad uint32_t reserved_45; 76 1.1 riastrad uint32_t reserved_46; 77 1.1 riastrad uint32_t reserved_47; 78 1.1 riastrad uint32_t reserved_48; 79 1.1 riastrad uint32_t reserved_49; 80 1.1 riastrad uint32_t reserved_50; 81 1.1 riastrad uint32_t reserved_51; 82 1.1 riastrad uint32_t reserved_52; 83 1.1 riastrad uint32_t reserved_53; 84 1.1 riastrad uint32_t reserved_54; 85 1.1 riastrad uint32_t reserved_55; 86 1.1 riastrad uint32_t reserved_56; 87 1.1 riastrad uint32_t reserved_57; 88 1.1 riastrad uint32_t reserved_58; 89 1.1 riastrad uint32_t reserved_59; 90 1.1 riastrad uint32_t reserved_60; 91 1.1 riastrad uint32_t reserved_61; 92 1.1 riastrad uint32_t reserved_62; 93 1.1 riastrad uint32_t reserved_63; 94 1.1 riastrad uint32_t reserved_64; 95 1.1 riastrad uint32_t reserved_65; 96 1.1 riastrad uint32_t reserved_66; 97 1.1 riastrad uint32_t reserved_67; 98 1.1 riastrad uint32_t reserved_68; 99 1.1 riastrad uint32_t reserved_69; 100 1.1 riastrad uint32_t reserved_70; 101 1.1 riastrad uint32_t reserved_71; 102 1.1 riastrad uint32_t reserved_72; 103 1.1 riastrad uint32_t reserved_73; 104 1.1 riastrad uint32_t reserved_74; 105 1.1 riastrad uint32_t reserved_75; 106 1.1 riastrad uint32_t reserved_76; 107 1.1 riastrad uint32_t reserved_77; 108 1.1 riastrad uint32_t reserved_78; 109 1.1 riastrad uint32_t reserved_79; 110 1.1 riastrad uint32_t reserved_80; 111 1.1 riastrad uint32_t reserved_81; 112 1.1 riastrad uint32_t reserved_82; 113 1.1 riastrad uint32_t reserved_83; 114 1.1 riastrad uint32_t reserved_84; 115 1.1 riastrad uint32_t reserved_85; 116 1.1 riastrad uint32_t reserved_86; 117 1.1 riastrad uint32_t reserved_87; 118 1.1 riastrad uint32_t reserved_88; 119 1.1 riastrad uint32_t reserved_89; 120 1.1 riastrad uint32_t reserved_90; 121 1.1 riastrad uint32_t reserved_91; 122 1.1 riastrad uint32_t reserved_92; 123 1.1 riastrad uint32_t reserved_93; 124 1.1 riastrad uint32_t reserved_94; 125 1.1 riastrad uint32_t reserved_95; 126 1.1 riastrad uint32_t reserved_96; 127 1.1 riastrad uint32_t reserved_97; 128 1.1 riastrad uint32_t reserved_98; 129 1.1 riastrad uint32_t reserved_99; 130 1.1 riastrad uint32_t reserved_100; 131 1.1 riastrad uint32_t reserved_101; 132 1.1 riastrad uint32_t reserved_102; 133 1.1 riastrad uint32_t reserved_103; 134 1.1 riastrad uint32_t reserved_104; 135 1.1 riastrad uint32_t reserved_105; 136 1.1 riastrad uint32_t reserved_106; 137 1.1 riastrad uint32_t reserved_107; 138 1.1 riastrad uint32_t reserved_108; 139 1.1 riastrad uint32_t reserved_109; 140 1.1 riastrad uint32_t reserved_110; 141 1.1 riastrad uint32_t reserved_111; 142 1.1 riastrad uint32_t reserved_112; 143 1.1 riastrad uint32_t reserved_113; 144 1.1 riastrad uint32_t reserved_114; 145 1.1 riastrad uint32_t reserved_115; 146 1.1 riastrad uint32_t reserved_116; 147 1.1 riastrad uint32_t reserved_117; 148 1.1 riastrad uint32_t reserved_118; 149 1.1 riastrad uint32_t reserved_119; 150 1.1 riastrad uint32_t reserved_120; 151 1.1 riastrad uint32_t reserved_121; 152 1.1 riastrad uint32_t reserved_122; 153 1.1 riastrad uint32_t reserved_123; 154 1.1 riastrad uint32_t reserved_124; 155 1.1 riastrad uint32_t reserved_125; 156 1.3 riastrad /* reserved_126,127: repurposed for driver-internal use */ 157 1.3 riastrad uint32_t sdma_engine_id; 158 1.3 riastrad uint32_t sdma_queue_id; 159 1.1 riastrad }; 160 1.1 riastrad 161 1.1 riastrad struct vi_mqd { 162 1.1 riastrad uint32_t header; 163 1.1 riastrad uint32_t compute_dispatch_initiator; 164 1.1 riastrad uint32_t compute_dim_x; 165 1.1 riastrad uint32_t compute_dim_y; 166 1.1 riastrad uint32_t compute_dim_z; 167 1.1 riastrad uint32_t compute_start_x; 168 1.1 riastrad uint32_t compute_start_y; 169 1.1 riastrad uint32_t compute_start_z; 170 1.1 riastrad uint32_t compute_num_thread_x; 171 1.1 riastrad uint32_t compute_num_thread_y; 172 1.1 riastrad uint32_t compute_num_thread_z; 173 1.1 riastrad uint32_t compute_pipelinestat_enable; 174 1.1 riastrad uint32_t compute_perfcount_enable; 175 1.1 riastrad uint32_t compute_pgm_lo; 176 1.1 riastrad uint32_t compute_pgm_hi; 177 1.1 riastrad uint32_t compute_tba_lo; 178 1.1 riastrad uint32_t compute_tba_hi; 179 1.1 riastrad uint32_t compute_tma_lo; 180 1.1 riastrad uint32_t compute_tma_hi; 181 1.1 riastrad uint32_t compute_pgm_rsrc1; 182 1.1 riastrad uint32_t compute_pgm_rsrc2; 183 1.1 riastrad uint32_t compute_vmid; 184 1.1 riastrad uint32_t compute_resource_limits; 185 1.1 riastrad uint32_t compute_static_thread_mgmt_se0; 186 1.1 riastrad uint32_t compute_static_thread_mgmt_se1; 187 1.1 riastrad uint32_t compute_tmpring_size; 188 1.1 riastrad uint32_t compute_static_thread_mgmt_se2; 189 1.1 riastrad uint32_t compute_static_thread_mgmt_se3; 190 1.1 riastrad uint32_t compute_restart_x; 191 1.1 riastrad uint32_t compute_restart_y; 192 1.1 riastrad uint32_t compute_restart_z; 193 1.1 riastrad uint32_t compute_thread_trace_enable; 194 1.1 riastrad uint32_t compute_misc_reserved; 195 1.1 riastrad uint32_t compute_dispatch_id; 196 1.1 riastrad uint32_t compute_threadgroup_id; 197 1.1 riastrad uint32_t compute_relaunch; 198 1.1 riastrad uint32_t compute_wave_restore_addr_lo; 199 1.1 riastrad uint32_t compute_wave_restore_addr_hi; 200 1.1 riastrad uint32_t compute_wave_restore_control; 201 1.3 riastrad uint32_t reserved9; 202 1.3 riastrad uint32_t reserved10; 203 1.3 riastrad uint32_t reserved11; 204 1.3 riastrad uint32_t reserved12; 205 1.3 riastrad uint32_t reserved13; 206 1.3 riastrad uint32_t reserved14; 207 1.3 riastrad uint32_t reserved15; 208 1.3 riastrad uint32_t reserved16; 209 1.3 riastrad uint32_t reserved17; 210 1.3 riastrad uint32_t reserved18; 211 1.3 riastrad uint32_t reserved19; 212 1.3 riastrad uint32_t reserved20; 213 1.3 riastrad uint32_t reserved21; 214 1.3 riastrad uint32_t reserved22; 215 1.3 riastrad uint32_t reserved23; 216 1.3 riastrad uint32_t reserved24; 217 1.3 riastrad uint32_t reserved25; 218 1.3 riastrad uint32_t reserved26; 219 1.3 riastrad uint32_t reserved27; 220 1.3 riastrad uint32_t reserved28; 221 1.3 riastrad uint32_t reserved29; 222 1.3 riastrad uint32_t reserved30; 223 1.3 riastrad uint32_t reserved31; 224 1.3 riastrad uint32_t reserved32; 225 1.3 riastrad uint32_t reserved33; 226 1.3 riastrad uint32_t reserved34; 227 1.1 riastrad uint32_t compute_user_data_0; 228 1.1 riastrad uint32_t compute_user_data_1; 229 1.1 riastrad uint32_t compute_user_data_2; 230 1.1 riastrad uint32_t compute_user_data_3; 231 1.1 riastrad uint32_t compute_user_data_4; 232 1.1 riastrad uint32_t compute_user_data_5; 233 1.1 riastrad uint32_t compute_user_data_6; 234 1.1 riastrad uint32_t compute_user_data_7; 235 1.1 riastrad uint32_t compute_user_data_8; 236 1.1 riastrad uint32_t compute_user_data_9; 237 1.1 riastrad uint32_t compute_user_data_10; 238 1.1 riastrad uint32_t compute_user_data_11; 239 1.1 riastrad uint32_t compute_user_data_12; 240 1.1 riastrad uint32_t compute_user_data_13; 241 1.1 riastrad uint32_t compute_user_data_14; 242 1.1 riastrad uint32_t compute_user_data_15; 243 1.1 riastrad uint32_t cp_compute_csinvoc_count_lo; 244 1.1 riastrad uint32_t cp_compute_csinvoc_count_hi; 245 1.3 riastrad uint32_t reserved35; 246 1.3 riastrad uint32_t reserved36; 247 1.3 riastrad uint32_t reserved37; 248 1.1 riastrad uint32_t cp_mqd_query_time_lo; 249 1.1 riastrad uint32_t cp_mqd_query_time_hi; 250 1.1 riastrad uint32_t cp_mqd_connect_start_time_lo; 251 1.1 riastrad uint32_t cp_mqd_connect_start_time_hi; 252 1.1 riastrad uint32_t cp_mqd_connect_end_time_lo; 253 1.1 riastrad uint32_t cp_mqd_connect_end_time_hi; 254 1.1 riastrad uint32_t cp_mqd_connect_end_wf_count; 255 1.1 riastrad uint32_t cp_mqd_connect_end_pq_rptr; 256 1.3 riastrad uint32_t cp_mqd_connect_endvi_sdma_mqd_pq_wptr; 257 1.1 riastrad uint32_t cp_mqd_connect_end_ib_rptr; 258 1.3 riastrad uint32_t reserved38; 259 1.3 riastrad uint32_t reserved39; 260 1.1 riastrad uint32_t cp_mqd_save_start_time_lo; 261 1.1 riastrad uint32_t cp_mqd_save_start_time_hi; 262 1.1 riastrad uint32_t cp_mqd_save_end_time_lo; 263 1.1 riastrad uint32_t cp_mqd_save_end_time_hi; 264 1.1 riastrad uint32_t cp_mqd_restore_start_time_lo; 265 1.1 riastrad uint32_t cp_mqd_restore_start_time_hi; 266 1.1 riastrad uint32_t cp_mqd_restore_end_time_lo; 267 1.1 riastrad uint32_t cp_mqd_restore_end_time_hi; 268 1.3 riastrad uint32_t disable_queue; 269 1.3 riastrad uint32_t reserved41; 270 1.1 riastrad uint32_t gds_cs_ctxsw_cnt0; 271 1.1 riastrad uint32_t gds_cs_ctxsw_cnt1; 272 1.1 riastrad uint32_t gds_cs_ctxsw_cnt2; 273 1.1 riastrad uint32_t gds_cs_ctxsw_cnt3; 274 1.3 riastrad uint32_t reserved42; 275 1.3 riastrad uint32_t reserved43; 276 1.1 riastrad uint32_t cp_pq_exe_status_lo; 277 1.1 riastrad uint32_t cp_pq_exe_status_hi; 278 1.1 riastrad uint32_t cp_packet_id_lo; 279 1.1 riastrad uint32_t cp_packet_id_hi; 280 1.1 riastrad uint32_t cp_packet_exe_status_lo; 281 1.1 riastrad uint32_t cp_packet_exe_status_hi; 282 1.1 riastrad uint32_t gds_save_base_addr_lo; 283 1.1 riastrad uint32_t gds_save_base_addr_hi; 284 1.1 riastrad uint32_t gds_save_mask_lo; 285 1.1 riastrad uint32_t gds_save_mask_hi; 286 1.1 riastrad uint32_t ctx_save_base_addr_lo; 287 1.1 riastrad uint32_t ctx_save_base_addr_hi; 288 1.3 riastrad uint32_t dynamic_cu_mask_addr_lo; 289 1.3 riastrad uint32_t dynamic_cu_mask_addr_hi; 290 1.1 riastrad uint32_t cp_mqd_base_addr_lo; 291 1.1 riastrad uint32_t cp_mqd_base_addr_hi; 292 1.1 riastrad uint32_t cp_hqd_active; 293 1.1 riastrad uint32_t cp_hqd_vmid; 294 1.1 riastrad uint32_t cp_hqd_persistent_state; 295 1.1 riastrad uint32_t cp_hqd_pipe_priority; 296 1.1 riastrad uint32_t cp_hqd_queue_priority; 297 1.1 riastrad uint32_t cp_hqd_quantum; 298 1.1 riastrad uint32_t cp_hqd_pq_base_lo; 299 1.1 riastrad uint32_t cp_hqd_pq_base_hi; 300 1.1 riastrad uint32_t cp_hqd_pq_rptr; 301 1.1 riastrad uint32_t cp_hqd_pq_rptr_report_addr_lo; 302 1.1 riastrad uint32_t cp_hqd_pq_rptr_report_addr_hi; 303 1.1 riastrad uint32_t cp_hqd_pq_wptr_poll_addr_lo; 304 1.1 riastrad uint32_t cp_hqd_pq_wptr_poll_addr_hi; 305 1.1 riastrad uint32_t cp_hqd_pq_doorbell_control; 306 1.1 riastrad uint32_t cp_hqd_pq_wptr; 307 1.1 riastrad uint32_t cp_hqd_pq_control; 308 1.1 riastrad uint32_t cp_hqd_ib_base_addr_lo; 309 1.1 riastrad uint32_t cp_hqd_ib_base_addr_hi; 310 1.1 riastrad uint32_t cp_hqd_ib_rptr; 311 1.1 riastrad uint32_t cp_hqd_ib_control; 312 1.1 riastrad uint32_t cp_hqd_iq_timer; 313 1.1 riastrad uint32_t cp_hqd_iq_rptr; 314 1.1 riastrad uint32_t cp_hqd_dequeue_request; 315 1.1 riastrad uint32_t cp_hqd_dma_offload; 316 1.1 riastrad uint32_t cp_hqd_sema_cmd; 317 1.1 riastrad uint32_t cp_hqd_msg_type; 318 1.1 riastrad uint32_t cp_hqd_atomic0_preop_lo; 319 1.1 riastrad uint32_t cp_hqd_atomic0_preop_hi; 320 1.1 riastrad uint32_t cp_hqd_atomic1_preop_lo; 321 1.1 riastrad uint32_t cp_hqd_atomic1_preop_hi; 322 1.1 riastrad uint32_t cp_hqd_hq_status0; 323 1.1 riastrad uint32_t cp_hqd_hq_control0; 324 1.1 riastrad uint32_t cp_mqd_control; 325 1.1 riastrad uint32_t cp_hqd_hq_status1; 326 1.1 riastrad uint32_t cp_hqd_hq_control1; 327 1.1 riastrad uint32_t cp_hqd_eop_base_addr_lo; 328 1.1 riastrad uint32_t cp_hqd_eop_base_addr_hi; 329 1.1 riastrad uint32_t cp_hqd_eop_control; 330 1.1 riastrad uint32_t cp_hqd_eop_rptr; 331 1.1 riastrad uint32_t cp_hqd_eop_wptr; 332 1.1 riastrad uint32_t cp_hqd_eop_done_events; 333 1.1 riastrad uint32_t cp_hqd_ctx_save_base_addr_lo; 334 1.1 riastrad uint32_t cp_hqd_ctx_save_base_addr_hi; 335 1.1 riastrad uint32_t cp_hqd_ctx_save_control; 336 1.1 riastrad uint32_t cp_hqd_cntl_stack_offset; 337 1.1 riastrad uint32_t cp_hqd_cntl_stack_size; 338 1.1 riastrad uint32_t cp_hqd_wg_state_offset; 339 1.1 riastrad uint32_t cp_hqd_ctx_save_size; 340 1.1 riastrad uint32_t cp_hqd_gds_resource_state; 341 1.1 riastrad uint32_t cp_hqd_error; 342 1.1 riastrad uint32_t cp_hqd_eop_wptr_mem; 343 1.1 riastrad uint32_t cp_hqd_eop_dones; 344 1.3 riastrad uint32_t reserved46; 345 1.3 riastrad uint32_t reserved47; 346 1.3 riastrad uint32_t reserved48; 347 1.3 riastrad uint32_t reserved49; 348 1.3 riastrad uint32_t reserved50; 349 1.3 riastrad uint32_t reserved51; 350 1.3 riastrad uint32_t reserved52; 351 1.3 riastrad uint32_t reserved53; 352 1.3 riastrad uint32_t reserved54; 353 1.3 riastrad uint32_t reserved55; 354 1.1 riastrad uint32_t iqtimer_pkt_header; 355 1.1 riastrad uint32_t iqtimer_pkt_dw0; 356 1.1 riastrad uint32_t iqtimer_pkt_dw1; 357 1.1 riastrad uint32_t iqtimer_pkt_dw2; 358 1.1 riastrad uint32_t iqtimer_pkt_dw3; 359 1.1 riastrad uint32_t iqtimer_pkt_dw4; 360 1.1 riastrad uint32_t iqtimer_pkt_dw5; 361 1.1 riastrad uint32_t iqtimer_pkt_dw6; 362 1.1 riastrad uint32_t iqtimer_pkt_dw7; 363 1.1 riastrad uint32_t iqtimer_pkt_dw8; 364 1.1 riastrad uint32_t iqtimer_pkt_dw9; 365 1.1 riastrad uint32_t iqtimer_pkt_dw10; 366 1.1 riastrad uint32_t iqtimer_pkt_dw11; 367 1.1 riastrad uint32_t iqtimer_pkt_dw12; 368 1.1 riastrad uint32_t iqtimer_pkt_dw13; 369 1.1 riastrad uint32_t iqtimer_pkt_dw14; 370 1.1 riastrad uint32_t iqtimer_pkt_dw15; 371 1.1 riastrad uint32_t iqtimer_pkt_dw16; 372 1.1 riastrad uint32_t iqtimer_pkt_dw17; 373 1.1 riastrad uint32_t iqtimer_pkt_dw18; 374 1.1 riastrad uint32_t iqtimer_pkt_dw19; 375 1.1 riastrad uint32_t iqtimer_pkt_dw20; 376 1.1 riastrad uint32_t iqtimer_pkt_dw21; 377 1.1 riastrad uint32_t iqtimer_pkt_dw22; 378 1.1 riastrad uint32_t iqtimer_pkt_dw23; 379 1.1 riastrad uint32_t iqtimer_pkt_dw24; 380 1.1 riastrad uint32_t iqtimer_pkt_dw25; 381 1.1 riastrad uint32_t iqtimer_pkt_dw26; 382 1.1 riastrad uint32_t iqtimer_pkt_dw27; 383 1.1 riastrad uint32_t iqtimer_pkt_dw28; 384 1.1 riastrad uint32_t iqtimer_pkt_dw29; 385 1.1 riastrad uint32_t iqtimer_pkt_dw30; 386 1.1 riastrad uint32_t iqtimer_pkt_dw31; 387 1.3 riastrad uint32_t reserved56; 388 1.3 riastrad uint32_t reserved57; 389 1.3 riastrad uint32_t reserved58; 390 1.1 riastrad uint32_t set_resources_header; 391 1.1 riastrad uint32_t set_resources_dw1; 392 1.1 riastrad uint32_t set_resources_dw2; 393 1.1 riastrad uint32_t set_resources_dw3; 394 1.1 riastrad uint32_t set_resources_dw4; 395 1.1 riastrad uint32_t set_resources_dw5; 396 1.1 riastrad uint32_t set_resources_dw6; 397 1.1 riastrad uint32_t set_resources_dw7; 398 1.3 riastrad uint32_t reserved59; 399 1.3 riastrad uint32_t reserved60; 400 1.3 riastrad uint32_t reserved61; 401 1.3 riastrad uint32_t reserved62; 402 1.3 riastrad uint32_t reserved63; 403 1.3 riastrad uint32_t reserved64; 404 1.3 riastrad uint32_t reserved65; 405 1.3 riastrad uint32_t reserved66; 406 1.3 riastrad uint32_t reserved67; 407 1.3 riastrad uint32_t reserved68; 408 1.3 riastrad uint32_t reserved69; 409 1.3 riastrad uint32_t reserved70; 410 1.3 riastrad uint32_t reserved71; 411 1.3 riastrad uint32_t reserved72; 412 1.3 riastrad uint32_t reserved73; 413 1.3 riastrad uint32_t reserved74; 414 1.3 riastrad uint32_t reserved75; 415 1.3 riastrad uint32_t reserved76; 416 1.3 riastrad uint32_t reserved77; 417 1.3 riastrad uint32_t reserved78; 418 1.3 riastrad uint32_t reserved_t[256]; 419 1.1 riastrad }; 420 1.1 riastrad 421 1.3 riastrad struct vi_mqd_allocation { 422 1.3 riastrad struct vi_mqd mqd; 423 1.3 riastrad uint32_t wptr_poll_mem; 424 1.3 riastrad uint32_t rptr_report_mem; 425 1.3 riastrad uint32_t dynamic_cu_mask; 426 1.3 riastrad uint32_t dynamic_rb_mask; 427 1.3 riastrad }; 428 1.3 riastrad 429 1.3 riastrad struct vi_ce_ib_state { 430 1.3 riastrad uint32_t ce_ib_completion_status; 431 1.3 riastrad uint32_t ce_constegnine_count; 432 1.3 riastrad uint32_t ce_ibOffset_ib1; 433 1.3 riastrad uint32_t ce_ibOffset_ib2; 434 1.3 riastrad }; /* Total of 4 DWORD */ 435 1.3 riastrad 436 1.3 riastrad struct vi_de_ib_state { 437 1.3 riastrad uint32_t ib_completion_status; 438 1.3 riastrad uint32_t de_constEngine_count; 439 1.3 riastrad uint32_t ib_offset_ib1; 440 1.3 riastrad uint32_t ib_offset_ib2; 441 1.3 riastrad uint32_t preamble_begin_ib1; 442 1.3 riastrad uint32_t preamble_begin_ib2; 443 1.3 riastrad uint32_t preamble_end_ib1; 444 1.3 riastrad uint32_t preamble_end_ib2; 445 1.3 riastrad uint32_t draw_indirect_baseLo; 446 1.3 riastrad uint32_t draw_indirect_baseHi; 447 1.3 riastrad uint32_t disp_indirect_baseLo; 448 1.3 riastrad uint32_t disp_indirect_baseHi; 449 1.3 riastrad uint32_t gds_backup_addrlo; 450 1.3 riastrad uint32_t gds_backup_addrhi; 451 1.3 riastrad uint32_t index_base_addrlo; 452 1.3 riastrad uint32_t index_base_addrhi; 453 1.3 riastrad uint32_t sample_cntl; 454 1.3 riastrad }; /* Total of 17 DWORD */ 455 1.3 riastrad 456 1.3 riastrad struct vi_ce_ib_state_chained_ib { 457 1.3 riastrad /* section of non chained ib part */ 458 1.3 riastrad uint32_t ce_ib_completion_status; 459 1.3 riastrad uint32_t ce_constegnine_count; 460 1.3 riastrad uint32_t ce_ibOffset_ib1; 461 1.3 riastrad uint32_t ce_ibOffset_ib2; 462 1.3 riastrad 463 1.3 riastrad /* section of chained ib */ 464 1.3 riastrad uint32_t ce_chainib_addrlo_ib1; 465 1.3 riastrad uint32_t ce_chainib_addrlo_ib2; 466 1.3 riastrad uint32_t ce_chainib_addrhi_ib1; 467 1.3 riastrad uint32_t ce_chainib_addrhi_ib2; 468 1.3 riastrad uint32_t ce_chainib_size_ib1; 469 1.3 riastrad uint32_t ce_chainib_size_ib2; 470 1.3 riastrad }; /* total 10 DWORD */ 471 1.3 riastrad 472 1.3 riastrad struct vi_de_ib_state_chained_ib { 473 1.3 riastrad /* section of non chained ib part */ 474 1.3 riastrad uint32_t ib_completion_status; 475 1.3 riastrad uint32_t de_constEngine_count; 476 1.3 riastrad uint32_t ib_offset_ib1; 477 1.3 riastrad uint32_t ib_offset_ib2; 478 1.3 riastrad 479 1.3 riastrad /* section of chained ib */ 480 1.3 riastrad uint32_t chain_ib_addrlo_ib1; 481 1.3 riastrad uint32_t chain_ib_addrlo_ib2; 482 1.3 riastrad uint32_t chain_ib_addrhi_ib1; 483 1.3 riastrad uint32_t chain_ib_addrhi_ib2; 484 1.3 riastrad uint32_t chain_ib_size_ib1; 485 1.3 riastrad uint32_t chain_ib_size_ib2; 486 1.3 riastrad 487 1.3 riastrad /* section of non chained ib part */ 488 1.3 riastrad uint32_t preamble_begin_ib1; 489 1.3 riastrad uint32_t preamble_begin_ib2; 490 1.3 riastrad uint32_t preamble_end_ib1; 491 1.3 riastrad uint32_t preamble_end_ib2; 492 1.3 riastrad 493 1.3 riastrad /* section of chained ib */ 494 1.3 riastrad uint32_t chain_ib_pream_addrlo_ib1; 495 1.3 riastrad uint32_t chain_ib_pream_addrlo_ib2; 496 1.3 riastrad uint32_t chain_ib_pream_addrhi_ib1; 497 1.3 riastrad uint32_t chain_ib_pream_addrhi_ib2; 498 1.3 riastrad 499 1.3 riastrad /* section of non chained ib part */ 500 1.3 riastrad uint32_t draw_indirect_baseLo; 501 1.3 riastrad uint32_t draw_indirect_baseHi; 502 1.3 riastrad uint32_t disp_indirect_baseLo; 503 1.3 riastrad uint32_t disp_indirect_baseHi; 504 1.3 riastrad uint32_t gds_backup_addrlo; 505 1.3 riastrad uint32_t gds_backup_addrhi; 506 1.3 riastrad uint32_t index_base_addrlo; 507 1.3 riastrad uint32_t index_base_addrhi; 508 1.3 riastrad uint32_t sample_cntl; 509 1.3 riastrad }; /* Total of 27 DWORD */ 510 1.3 riastrad 511 1.3 riastrad struct vi_gfx_meta_data { 512 1.3 riastrad /* 4 DWORD, address must be 4KB aligned */ 513 1.3 riastrad struct vi_ce_ib_state ce_payload; 514 1.3 riastrad uint32_t reserved1[60]; 515 1.3 riastrad /* 17 DWORD, address must be 64B aligned */ 516 1.3 riastrad struct vi_de_ib_state de_payload; 517 1.3 riastrad /* PFP IB base address which get pre-empted */ 518 1.3 riastrad uint32_t DeIbBaseAddrLo; 519 1.3 riastrad uint32_t DeIbBaseAddrHi; 520 1.3 riastrad uint32_t reserved2[941]; 521 1.3 riastrad }; /* Total of 4K Bytes */ 522 1.3 riastrad 523 1.3 riastrad struct vi_gfx_meta_data_chained_ib { 524 1.3 riastrad /* 10 DWORD, address must be 4KB aligned */ 525 1.3 riastrad struct vi_ce_ib_state_chained_ib ce_payload; 526 1.3 riastrad uint32_t reserved1[54]; 527 1.3 riastrad /* 27 DWORD, address must be 64B aligned */ 528 1.3 riastrad struct vi_de_ib_state_chained_ib de_payload; 529 1.3 riastrad /* PFP IB base address which get pre-empted */ 530 1.3 riastrad uint32_t DeIbBaseAddrLo; 531 1.3 riastrad uint32_t DeIbBaseAddrHi; 532 1.3 riastrad uint32_t reserved2[931]; 533 1.3 riastrad }; /* Total of 4K Bytes */ 534 1.3 riastrad 535 1.1 riastrad #endif /* VI_STRUCTS_H_ */ 536