Home | History | Annotate | Line # | Download | only in include
vi_structs.h revision 1.2
      1 /*	$NetBSD: vi_structs.h,v 1.2 2018/08/27 04:58:20 riastradh Exp $	*/
      2 
      3 /*
      4  * Copyright 2012 Advanced Micro Devices, Inc.
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a
      7  * copy of this software and associated documentation files (the "Software"),
      8  * to deal in the Software without restriction, including without limitation
      9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
     10  * and/or sell copies of the Software, and to permit persons to whom the
     11  * Software is furnished to do so, subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice shall be included in
     14  * all copies or substantial portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     19  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     20  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     21  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     22  * OTHER DEALINGS IN THE SOFTWARE.
     23  *
     24  */
     25 
     26 #ifndef VI_STRUCTS_H_
     27 #define VI_STRUCTS_H_
     28 
     29 struct vi_sdma_mqd {
     30 	uint32_t sdmax_rlcx_rb_cntl;
     31 	uint32_t sdmax_rlcx_rb_base;
     32 	uint32_t sdmax_rlcx_rb_base_hi;
     33 	uint32_t sdmax_rlcx_rb_rptr;
     34 	uint32_t sdmax_rlcx_rb_wptr;
     35 	uint32_t sdmax_rlcx_rb_wptr_poll_cntl;
     36 	uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi;
     37 	uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo;
     38 	uint32_t sdmax_rlcx_rb_rptr_addr_hi;
     39 	uint32_t sdmax_rlcx_rb_rptr_addr_lo;
     40 	uint32_t sdmax_rlcx_ib_cntl;
     41 	uint32_t sdmax_rlcx_ib_rptr;
     42 	uint32_t sdmax_rlcx_ib_offset;
     43 	uint32_t sdmax_rlcx_ib_base_lo;
     44 	uint32_t sdmax_rlcx_ib_base_hi;
     45 	uint32_t sdmax_rlcx_ib_size;
     46 	uint32_t sdmax_rlcx_skip_cntl;
     47 	uint32_t sdmax_rlcx_context_status;
     48 	uint32_t sdmax_rlcx_doorbell;
     49 	uint32_t sdmax_rlcx_virtual_addr;
     50 	uint32_t sdmax_rlcx_ape1_cntl;
     51 	uint32_t sdmax_rlcx_doorbell_log;
     52 	uint32_t reserved_22;
     53 	uint32_t reserved_23;
     54 	uint32_t reserved_24;
     55 	uint32_t reserved_25;
     56 	uint32_t reserved_26;
     57 	uint32_t reserved_27;
     58 	uint32_t reserved_28;
     59 	uint32_t reserved_29;
     60 	uint32_t reserved_30;
     61 	uint32_t reserved_31;
     62 	uint32_t reserved_32;
     63 	uint32_t reserved_33;
     64 	uint32_t reserved_34;
     65 	uint32_t reserved_35;
     66 	uint32_t reserved_36;
     67 	uint32_t reserved_37;
     68 	uint32_t reserved_38;
     69 	uint32_t reserved_39;
     70 	uint32_t reserved_40;
     71 	uint32_t reserved_41;
     72 	uint32_t reserved_42;
     73 	uint32_t reserved_43;
     74 	uint32_t reserved_44;
     75 	uint32_t reserved_45;
     76 	uint32_t reserved_46;
     77 	uint32_t reserved_47;
     78 	uint32_t reserved_48;
     79 	uint32_t reserved_49;
     80 	uint32_t reserved_50;
     81 	uint32_t reserved_51;
     82 	uint32_t reserved_52;
     83 	uint32_t reserved_53;
     84 	uint32_t reserved_54;
     85 	uint32_t reserved_55;
     86 	uint32_t reserved_56;
     87 	uint32_t reserved_57;
     88 	uint32_t reserved_58;
     89 	uint32_t reserved_59;
     90 	uint32_t reserved_60;
     91 	uint32_t reserved_61;
     92 	uint32_t reserved_62;
     93 	uint32_t reserved_63;
     94 	uint32_t reserved_64;
     95 	uint32_t reserved_65;
     96 	uint32_t reserved_66;
     97 	uint32_t reserved_67;
     98 	uint32_t reserved_68;
     99 	uint32_t reserved_69;
    100 	uint32_t reserved_70;
    101 	uint32_t reserved_71;
    102 	uint32_t reserved_72;
    103 	uint32_t reserved_73;
    104 	uint32_t reserved_74;
    105 	uint32_t reserved_75;
    106 	uint32_t reserved_76;
    107 	uint32_t reserved_77;
    108 	uint32_t reserved_78;
    109 	uint32_t reserved_79;
    110 	uint32_t reserved_80;
    111 	uint32_t reserved_81;
    112 	uint32_t reserved_82;
    113 	uint32_t reserved_83;
    114 	uint32_t reserved_84;
    115 	uint32_t reserved_85;
    116 	uint32_t reserved_86;
    117 	uint32_t reserved_87;
    118 	uint32_t reserved_88;
    119 	uint32_t reserved_89;
    120 	uint32_t reserved_90;
    121 	uint32_t reserved_91;
    122 	uint32_t reserved_92;
    123 	uint32_t reserved_93;
    124 	uint32_t reserved_94;
    125 	uint32_t reserved_95;
    126 	uint32_t reserved_96;
    127 	uint32_t reserved_97;
    128 	uint32_t reserved_98;
    129 	uint32_t reserved_99;
    130 	uint32_t reserved_100;
    131 	uint32_t reserved_101;
    132 	uint32_t reserved_102;
    133 	uint32_t reserved_103;
    134 	uint32_t reserved_104;
    135 	uint32_t reserved_105;
    136 	uint32_t reserved_106;
    137 	uint32_t reserved_107;
    138 	uint32_t reserved_108;
    139 	uint32_t reserved_109;
    140 	uint32_t reserved_110;
    141 	uint32_t reserved_111;
    142 	uint32_t reserved_112;
    143 	uint32_t reserved_113;
    144 	uint32_t reserved_114;
    145 	uint32_t reserved_115;
    146 	uint32_t reserved_116;
    147 	uint32_t reserved_117;
    148 	uint32_t reserved_118;
    149 	uint32_t reserved_119;
    150 	uint32_t reserved_120;
    151 	uint32_t reserved_121;
    152 	uint32_t reserved_122;
    153 	uint32_t reserved_123;
    154 	uint32_t reserved_124;
    155 	uint32_t reserved_125;
    156 	uint32_t reserved_126;
    157 	uint32_t reserved_127;
    158 };
    159 
    160 struct vi_mqd {
    161 	uint32_t header;
    162 	uint32_t compute_dispatch_initiator;
    163 	uint32_t compute_dim_x;
    164 	uint32_t compute_dim_y;
    165 	uint32_t compute_dim_z;
    166 	uint32_t compute_start_x;
    167 	uint32_t compute_start_y;
    168 	uint32_t compute_start_z;
    169 	uint32_t compute_num_thread_x;
    170 	uint32_t compute_num_thread_y;
    171 	uint32_t compute_num_thread_z;
    172 	uint32_t compute_pipelinestat_enable;
    173 	uint32_t compute_perfcount_enable;
    174 	uint32_t compute_pgm_lo;
    175 	uint32_t compute_pgm_hi;
    176 	uint32_t compute_tba_lo;
    177 	uint32_t compute_tba_hi;
    178 	uint32_t compute_tma_lo;
    179 	uint32_t compute_tma_hi;
    180 	uint32_t compute_pgm_rsrc1;
    181 	uint32_t compute_pgm_rsrc2;
    182 	uint32_t compute_vmid;
    183 	uint32_t compute_resource_limits;
    184 	uint32_t compute_static_thread_mgmt_se0;
    185 	uint32_t compute_static_thread_mgmt_se1;
    186 	uint32_t compute_tmpring_size;
    187 	uint32_t compute_static_thread_mgmt_se2;
    188 	uint32_t compute_static_thread_mgmt_se3;
    189 	uint32_t compute_restart_x;
    190 	uint32_t compute_restart_y;
    191 	uint32_t compute_restart_z;
    192 	uint32_t compute_thread_trace_enable;
    193 	uint32_t compute_misc_reserved;
    194 	uint32_t compute_dispatch_id;
    195 	uint32_t compute_threadgroup_id;
    196 	uint32_t compute_relaunch;
    197 	uint32_t compute_wave_restore_addr_lo;
    198 	uint32_t compute_wave_restore_addr_hi;
    199 	uint32_t compute_wave_restore_control;
    200 	uint32_t reserved_39;
    201 	uint32_t reserved_40;
    202 	uint32_t reserved_41;
    203 	uint32_t reserved_42;
    204 	uint32_t reserved_43;
    205 	uint32_t reserved_44;
    206 	uint32_t reserved_45;
    207 	uint32_t reserved_46;
    208 	uint32_t reserved_47;
    209 	uint32_t reserved_48;
    210 	uint32_t reserved_49;
    211 	uint32_t reserved_50;
    212 	uint32_t reserved_51;
    213 	uint32_t reserved_52;
    214 	uint32_t reserved_53;
    215 	uint32_t reserved_54;
    216 	uint32_t reserved_55;
    217 	uint32_t reserved_56;
    218 	uint32_t reserved_57;
    219 	uint32_t reserved_58;
    220 	uint32_t reserved_59;
    221 	uint32_t reserved_60;
    222 	uint32_t reserved_61;
    223 	uint32_t reserved_62;
    224 	uint32_t reserved_63;
    225 	uint32_t reserved_64;
    226 	uint32_t compute_user_data_0;
    227 	uint32_t compute_user_data_1;
    228 	uint32_t compute_user_data_2;
    229 	uint32_t compute_user_data_3;
    230 	uint32_t compute_user_data_4;
    231 	uint32_t compute_user_data_5;
    232 	uint32_t compute_user_data_6;
    233 	uint32_t compute_user_data_7;
    234 	uint32_t compute_user_data_8;
    235 	uint32_t compute_user_data_9;
    236 	uint32_t compute_user_data_10;
    237 	uint32_t compute_user_data_11;
    238 	uint32_t compute_user_data_12;
    239 	uint32_t compute_user_data_13;
    240 	uint32_t compute_user_data_14;
    241 	uint32_t compute_user_data_15;
    242 	uint32_t cp_compute_csinvoc_count_lo;
    243 	uint32_t cp_compute_csinvoc_count_hi;
    244 	uint32_t reserved_83;
    245 	uint32_t reserved_84;
    246 	uint32_t reserved_85;
    247 	uint32_t cp_mqd_query_time_lo;
    248 	uint32_t cp_mqd_query_time_hi;
    249 	uint32_t cp_mqd_connect_start_time_lo;
    250 	uint32_t cp_mqd_connect_start_time_hi;
    251 	uint32_t cp_mqd_connect_end_time_lo;
    252 	uint32_t cp_mqd_connect_end_time_hi;
    253 	uint32_t cp_mqd_connect_end_wf_count;
    254 	uint32_t cp_mqd_connect_end_pq_rptr;
    255 	uint32_t cp_mqd_connect_end_pq_wptr;
    256 	uint32_t cp_mqd_connect_end_ib_rptr;
    257 	uint32_t reserved_96;
    258 	uint32_t reserved_97;
    259 	uint32_t cp_mqd_save_start_time_lo;
    260 	uint32_t cp_mqd_save_start_time_hi;
    261 	uint32_t cp_mqd_save_end_time_lo;
    262 	uint32_t cp_mqd_save_end_time_hi;
    263 	uint32_t cp_mqd_restore_start_time_lo;
    264 	uint32_t cp_mqd_restore_start_time_hi;
    265 	uint32_t cp_mqd_restore_end_time_lo;
    266 	uint32_t cp_mqd_restore_end_time_hi;
    267 	uint32_t reserved_106;
    268 	uint32_t reserved_107;
    269 	uint32_t gds_cs_ctxsw_cnt0;
    270 	uint32_t gds_cs_ctxsw_cnt1;
    271 	uint32_t gds_cs_ctxsw_cnt2;
    272 	uint32_t gds_cs_ctxsw_cnt3;
    273 	uint32_t reserved_112;
    274 	uint32_t reserved_113;
    275 	uint32_t cp_pq_exe_status_lo;
    276 	uint32_t cp_pq_exe_status_hi;
    277 	uint32_t cp_packet_id_lo;
    278 	uint32_t cp_packet_id_hi;
    279 	uint32_t cp_packet_exe_status_lo;
    280 	uint32_t cp_packet_exe_status_hi;
    281 	uint32_t gds_save_base_addr_lo;
    282 	uint32_t gds_save_base_addr_hi;
    283 	uint32_t gds_save_mask_lo;
    284 	uint32_t gds_save_mask_hi;
    285 	uint32_t ctx_save_base_addr_lo;
    286 	uint32_t ctx_save_base_addr_hi;
    287 	uint32_t reserved_126;
    288 	uint32_t reserved_127;
    289 	uint32_t cp_mqd_base_addr_lo;
    290 	uint32_t cp_mqd_base_addr_hi;
    291 	uint32_t cp_hqd_active;
    292 	uint32_t cp_hqd_vmid;
    293 	uint32_t cp_hqd_persistent_state;
    294 	uint32_t cp_hqd_pipe_priority;
    295 	uint32_t cp_hqd_queue_priority;
    296 	uint32_t cp_hqd_quantum;
    297 	uint32_t cp_hqd_pq_base_lo;
    298 	uint32_t cp_hqd_pq_base_hi;
    299 	uint32_t cp_hqd_pq_rptr;
    300 	uint32_t cp_hqd_pq_rptr_report_addr_lo;
    301 	uint32_t cp_hqd_pq_rptr_report_addr_hi;
    302 	uint32_t cp_hqd_pq_wptr_poll_addr_lo;
    303 	uint32_t cp_hqd_pq_wptr_poll_addr_hi;
    304 	uint32_t cp_hqd_pq_doorbell_control;
    305 	uint32_t cp_hqd_pq_wptr;
    306 	uint32_t cp_hqd_pq_control;
    307 	uint32_t cp_hqd_ib_base_addr_lo;
    308 	uint32_t cp_hqd_ib_base_addr_hi;
    309 	uint32_t cp_hqd_ib_rptr;
    310 	uint32_t cp_hqd_ib_control;
    311 	uint32_t cp_hqd_iq_timer;
    312 	uint32_t cp_hqd_iq_rptr;
    313 	uint32_t cp_hqd_dequeue_request;
    314 	uint32_t cp_hqd_dma_offload;
    315 	uint32_t cp_hqd_sema_cmd;
    316 	uint32_t cp_hqd_msg_type;
    317 	uint32_t cp_hqd_atomic0_preop_lo;
    318 	uint32_t cp_hqd_atomic0_preop_hi;
    319 	uint32_t cp_hqd_atomic1_preop_lo;
    320 	uint32_t cp_hqd_atomic1_preop_hi;
    321 	uint32_t cp_hqd_hq_status0;
    322 	uint32_t cp_hqd_hq_control0;
    323 	uint32_t cp_mqd_control;
    324 	uint32_t cp_hqd_hq_status1;
    325 	uint32_t cp_hqd_hq_control1;
    326 	uint32_t cp_hqd_eop_base_addr_lo;
    327 	uint32_t cp_hqd_eop_base_addr_hi;
    328 	uint32_t cp_hqd_eop_control;
    329 	uint32_t cp_hqd_eop_rptr;
    330 	uint32_t cp_hqd_eop_wptr;
    331 	uint32_t cp_hqd_eop_done_events;
    332 	uint32_t cp_hqd_ctx_save_base_addr_lo;
    333 	uint32_t cp_hqd_ctx_save_base_addr_hi;
    334 	uint32_t cp_hqd_ctx_save_control;
    335 	uint32_t cp_hqd_cntl_stack_offset;
    336 	uint32_t cp_hqd_cntl_stack_size;
    337 	uint32_t cp_hqd_wg_state_offset;
    338 	uint32_t cp_hqd_ctx_save_size;
    339 	uint32_t cp_hqd_gds_resource_state;
    340 	uint32_t cp_hqd_error;
    341 	uint32_t cp_hqd_eop_wptr_mem;
    342 	uint32_t cp_hqd_eop_dones;
    343 	uint32_t reserved_182;
    344 	uint32_t reserved_183;
    345 	uint32_t reserved_184;
    346 	uint32_t reserved_185;
    347 	uint32_t reserved_186;
    348 	uint32_t reserved_187;
    349 	uint32_t reserved_188;
    350 	uint32_t reserved_189;
    351 	uint32_t reserved_190;
    352 	uint32_t reserved_191;
    353 	uint32_t iqtimer_pkt_header;
    354 	uint32_t iqtimer_pkt_dw0;
    355 	uint32_t iqtimer_pkt_dw1;
    356 	uint32_t iqtimer_pkt_dw2;
    357 	uint32_t iqtimer_pkt_dw3;
    358 	uint32_t iqtimer_pkt_dw4;
    359 	uint32_t iqtimer_pkt_dw5;
    360 	uint32_t iqtimer_pkt_dw6;
    361 	uint32_t iqtimer_pkt_dw7;
    362 	uint32_t iqtimer_pkt_dw8;
    363 	uint32_t iqtimer_pkt_dw9;
    364 	uint32_t iqtimer_pkt_dw10;
    365 	uint32_t iqtimer_pkt_dw11;
    366 	uint32_t iqtimer_pkt_dw12;
    367 	uint32_t iqtimer_pkt_dw13;
    368 	uint32_t iqtimer_pkt_dw14;
    369 	uint32_t iqtimer_pkt_dw15;
    370 	uint32_t iqtimer_pkt_dw16;
    371 	uint32_t iqtimer_pkt_dw17;
    372 	uint32_t iqtimer_pkt_dw18;
    373 	uint32_t iqtimer_pkt_dw19;
    374 	uint32_t iqtimer_pkt_dw20;
    375 	uint32_t iqtimer_pkt_dw21;
    376 	uint32_t iqtimer_pkt_dw22;
    377 	uint32_t iqtimer_pkt_dw23;
    378 	uint32_t iqtimer_pkt_dw24;
    379 	uint32_t iqtimer_pkt_dw25;
    380 	uint32_t iqtimer_pkt_dw26;
    381 	uint32_t iqtimer_pkt_dw27;
    382 	uint32_t iqtimer_pkt_dw28;
    383 	uint32_t iqtimer_pkt_dw29;
    384 	uint32_t iqtimer_pkt_dw30;
    385 	uint32_t iqtimer_pkt_dw31;
    386 	uint32_t reserved_225;
    387 	uint32_t reserved_226;
    388 	uint32_t reserved_227;
    389 	uint32_t set_resources_header;
    390 	uint32_t set_resources_dw1;
    391 	uint32_t set_resources_dw2;
    392 	uint32_t set_resources_dw3;
    393 	uint32_t set_resources_dw4;
    394 	uint32_t set_resources_dw5;
    395 	uint32_t set_resources_dw6;
    396 	uint32_t set_resources_dw7;
    397 	uint32_t reserved_236;
    398 	uint32_t reserved_237;
    399 	uint32_t reserved_238;
    400 	uint32_t reserved_239;
    401 	uint32_t queue_doorbell_id0;
    402 	uint32_t queue_doorbell_id1;
    403 	uint32_t queue_doorbell_id2;
    404 	uint32_t queue_doorbell_id3;
    405 	uint32_t queue_doorbell_id4;
    406 	uint32_t queue_doorbell_id5;
    407 	uint32_t queue_doorbell_id6;
    408 	uint32_t queue_doorbell_id7;
    409 	uint32_t queue_doorbell_id8;
    410 	uint32_t queue_doorbell_id9;
    411 	uint32_t queue_doorbell_id10;
    412 	uint32_t queue_doorbell_id11;
    413 	uint32_t queue_doorbell_id12;
    414 	uint32_t queue_doorbell_id13;
    415 	uint32_t queue_doorbell_id14;
    416 	uint32_t queue_doorbell_id15;
    417 };
    418 
    419 #endif /* VI_STRUCTS_H_ */
    420