1fb4d8502Sjsg /* 2fb4d8502Sjsg * Copyright 2012 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 VI_STRUCTS_H_ 25fb4d8502Sjsg #define VI_STRUCTS_H_ 26fb4d8502Sjsg 27fb4d8502Sjsg struct vi_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_wptr; 33fb4d8502Sjsg uint32_t sdmax_rlcx_rb_wptr_poll_cntl; 34fb4d8502Sjsg uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi; 35fb4d8502Sjsg uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo; 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_virtual_addr; 48fb4d8502Sjsg uint32_t sdmax_rlcx_ape1_cntl; 49fb4d8502Sjsg uint32_t sdmax_rlcx_doorbell_log; 50fb4d8502Sjsg uint32_t reserved_22; 51fb4d8502Sjsg uint32_t reserved_23; 52fb4d8502Sjsg uint32_t reserved_24; 53fb4d8502Sjsg uint32_t reserved_25; 54fb4d8502Sjsg uint32_t reserved_26; 55fb4d8502Sjsg uint32_t reserved_27; 56fb4d8502Sjsg uint32_t reserved_28; 57fb4d8502Sjsg uint32_t reserved_29; 58fb4d8502Sjsg uint32_t reserved_30; 59fb4d8502Sjsg uint32_t reserved_31; 60fb4d8502Sjsg uint32_t reserved_32; 61fb4d8502Sjsg uint32_t reserved_33; 62fb4d8502Sjsg uint32_t reserved_34; 63fb4d8502Sjsg uint32_t reserved_35; 64fb4d8502Sjsg uint32_t reserved_36; 65fb4d8502Sjsg uint32_t reserved_37; 66fb4d8502Sjsg uint32_t reserved_38; 67fb4d8502Sjsg uint32_t reserved_39; 68fb4d8502Sjsg uint32_t reserved_40; 69fb4d8502Sjsg uint32_t reserved_41; 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 vi_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; 199fb4d8502Sjsg uint32_t reserved9; 200fb4d8502Sjsg uint32_t reserved10; 201fb4d8502Sjsg uint32_t reserved11; 202fb4d8502Sjsg uint32_t reserved12; 203fb4d8502Sjsg uint32_t reserved13; 204fb4d8502Sjsg uint32_t reserved14; 205fb4d8502Sjsg uint32_t reserved15; 206fb4d8502Sjsg uint32_t reserved16; 207fb4d8502Sjsg uint32_t reserved17; 208fb4d8502Sjsg uint32_t reserved18; 209fb4d8502Sjsg uint32_t reserved19; 210fb4d8502Sjsg uint32_t reserved20; 211fb4d8502Sjsg uint32_t reserved21; 212fb4d8502Sjsg uint32_t reserved22; 213fb4d8502Sjsg uint32_t reserved23; 214fb4d8502Sjsg uint32_t reserved24; 215fb4d8502Sjsg uint32_t reserved25; 216fb4d8502Sjsg uint32_t reserved26; 217fb4d8502Sjsg uint32_t reserved27; 218fb4d8502Sjsg uint32_t reserved28; 219fb4d8502Sjsg uint32_t reserved29; 220fb4d8502Sjsg uint32_t reserved30; 221fb4d8502Sjsg uint32_t reserved31; 222fb4d8502Sjsg uint32_t reserved32; 223fb4d8502Sjsg uint32_t reserved33; 224fb4d8502Sjsg uint32_t reserved34; 225fb4d8502Sjsg uint32_t compute_user_data_0; 226fb4d8502Sjsg uint32_t compute_user_data_1; 227fb4d8502Sjsg uint32_t compute_user_data_2; 228fb4d8502Sjsg uint32_t compute_user_data_3; 229fb4d8502Sjsg uint32_t compute_user_data_4; 230fb4d8502Sjsg uint32_t compute_user_data_5; 231fb4d8502Sjsg uint32_t compute_user_data_6; 232fb4d8502Sjsg uint32_t compute_user_data_7; 233fb4d8502Sjsg uint32_t compute_user_data_8; 234fb4d8502Sjsg uint32_t compute_user_data_9; 235fb4d8502Sjsg uint32_t compute_user_data_10; 236fb4d8502Sjsg uint32_t compute_user_data_11; 237fb4d8502Sjsg uint32_t compute_user_data_12; 238fb4d8502Sjsg uint32_t compute_user_data_13; 239fb4d8502Sjsg uint32_t compute_user_data_14; 240fb4d8502Sjsg uint32_t compute_user_data_15; 241fb4d8502Sjsg uint32_t cp_compute_csinvoc_count_lo; 242fb4d8502Sjsg uint32_t cp_compute_csinvoc_count_hi; 243fb4d8502Sjsg uint32_t reserved35; 244fb4d8502Sjsg uint32_t reserved36; 245fb4d8502Sjsg uint32_t reserved37; 246fb4d8502Sjsg uint32_t cp_mqd_query_time_lo; 247fb4d8502Sjsg uint32_t cp_mqd_query_time_hi; 248fb4d8502Sjsg uint32_t cp_mqd_connect_start_time_lo; 249fb4d8502Sjsg uint32_t cp_mqd_connect_start_time_hi; 250fb4d8502Sjsg uint32_t cp_mqd_connect_end_time_lo; 251fb4d8502Sjsg uint32_t cp_mqd_connect_end_time_hi; 252fb4d8502Sjsg uint32_t cp_mqd_connect_end_wf_count; 253fb4d8502Sjsg uint32_t cp_mqd_connect_end_pq_rptr; 254fb4d8502Sjsg uint32_t cp_mqd_connect_endvi_sdma_mqd_pq_wptr; 255fb4d8502Sjsg uint32_t cp_mqd_connect_end_ib_rptr; 256fb4d8502Sjsg uint32_t reserved38; 257fb4d8502Sjsg uint32_t reserved39; 258fb4d8502Sjsg uint32_t cp_mqd_save_start_time_lo; 259fb4d8502Sjsg uint32_t cp_mqd_save_start_time_hi; 260fb4d8502Sjsg uint32_t cp_mqd_save_end_time_lo; 261fb4d8502Sjsg uint32_t cp_mqd_save_end_time_hi; 262fb4d8502Sjsg uint32_t cp_mqd_restore_start_time_lo; 263fb4d8502Sjsg uint32_t cp_mqd_restore_start_time_hi; 264fb4d8502Sjsg uint32_t cp_mqd_restore_end_time_lo; 265fb4d8502Sjsg uint32_t cp_mqd_restore_end_time_hi; 266fb4d8502Sjsg uint32_t disable_queue; 267fb4d8502Sjsg uint32_t reserved41; 268fb4d8502Sjsg uint32_t gds_cs_ctxsw_cnt0; 269fb4d8502Sjsg uint32_t gds_cs_ctxsw_cnt1; 270fb4d8502Sjsg uint32_t gds_cs_ctxsw_cnt2; 271fb4d8502Sjsg uint32_t gds_cs_ctxsw_cnt3; 272fb4d8502Sjsg uint32_t reserved42; 273fb4d8502Sjsg uint32_t reserved43; 274fb4d8502Sjsg uint32_t cp_pq_exe_status_lo; 275fb4d8502Sjsg uint32_t cp_pq_exe_status_hi; 276fb4d8502Sjsg uint32_t cp_packet_id_lo; 277fb4d8502Sjsg uint32_t cp_packet_id_hi; 278fb4d8502Sjsg uint32_t cp_packet_exe_status_lo; 279fb4d8502Sjsg uint32_t cp_packet_exe_status_hi; 280fb4d8502Sjsg uint32_t gds_save_base_addr_lo; 281fb4d8502Sjsg uint32_t gds_save_base_addr_hi; 282fb4d8502Sjsg uint32_t gds_save_mask_lo; 283fb4d8502Sjsg uint32_t gds_save_mask_hi; 284fb4d8502Sjsg uint32_t ctx_save_base_addr_lo; 285fb4d8502Sjsg uint32_t ctx_save_base_addr_hi; 286fb4d8502Sjsg uint32_t dynamic_cu_mask_addr_lo; 287fb4d8502Sjsg uint32_t dynamic_cu_mask_addr_hi; 288fb4d8502Sjsg uint32_t cp_mqd_base_addr_lo; 289fb4d8502Sjsg uint32_t cp_mqd_base_addr_hi; 290fb4d8502Sjsg uint32_t cp_hqd_active; 291fb4d8502Sjsg uint32_t cp_hqd_vmid; 292fb4d8502Sjsg uint32_t cp_hqd_persistent_state; 293fb4d8502Sjsg uint32_t cp_hqd_pipe_priority; 294fb4d8502Sjsg uint32_t cp_hqd_queue_priority; 295fb4d8502Sjsg uint32_t cp_hqd_quantum; 296fb4d8502Sjsg uint32_t cp_hqd_pq_base_lo; 297fb4d8502Sjsg uint32_t cp_hqd_pq_base_hi; 298fb4d8502Sjsg uint32_t cp_hqd_pq_rptr; 299fb4d8502Sjsg uint32_t cp_hqd_pq_rptr_report_addr_lo; 300fb4d8502Sjsg uint32_t cp_hqd_pq_rptr_report_addr_hi; 301fb4d8502Sjsg uint32_t cp_hqd_pq_wptr_poll_addr_lo; 302fb4d8502Sjsg uint32_t cp_hqd_pq_wptr_poll_addr_hi; 303fb4d8502Sjsg uint32_t cp_hqd_pq_doorbell_control; 304fb4d8502Sjsg uint32_t cp_hqd_pq_wptr; 305fb4d8502Sjsg uint32_t cp_hqd_pq_control; 306fb4d8502Sjsg uint32_t cp_hqd_ib_base_addr_lo; 307fb4d8502Sjsg uint32_t cp_hqd_ib_base_addr_hi; 308fb4d8502Sjsg uint32_t cp_hqd_ib_rptr; 309fb4d8502Sjsg uint32_t cp_hqd_ib_control; 310fb4d8502Sjsg uint32_t cp_hqd_iq_timer; 311fb4d8502Sjsg uint32_t cp_hqd_iq_rptr; 312fb4d8502Sjsg uint32_t cp_hqd_dequeue_request; 313fb4d8502Sjsg uint32_t cp_hqd_dma_offload; 314fb4d8502Sjsg uint32_t cp_hqd_sema_cmd; 315fb4d8502Sjsg uint32_t cp_hqd_msg_type; 316fb4d8502Sjsg uint32_t cp_hqd_atomic0_preop_lo; 317fb4d8502Sjsg uint32_t cp_hqd_atomic0_preop_hi; 318fb4d8502Sjsg uint32_t cp_hqd_atomic1_preop_lo; 319fb4d8502Sjsg uint32_t cp_hqd_atomic1_preop_hi; 320fb4d8502Sjsg uint32_t cp_hqd_hq_status0; 321fb4d8502Sjsg uint32_t cp_hqd_hq_control0; 322fb4d8502Sjsg uint32_t cp_mqd_control; 323fb4d8502Sjsg uint32_t cp_hqd_hq_status1; 324fb4d8502Sjsg uint32_t cp_hqd_hq_control1; 325fb4d8502Sjsg uint32_t cp_hqd_eop_base_addr_lo; 326fb4d8502Sjsg uint32_t cp_hqd_eop_base_addr_hi; 327fb4d8502Sjsg uint32_t cp_hqd_eop_control; 328fb4d8502Sjsg uint32_t cp_hqd_eop_rptr; 329fb4d8502Sjsg uint32_t cp_hqd_eop_wptr; 330fb4d8502Sjsg uint32_t cp_hqd_eop_done_events; 331fb4d8502Sjsg uint32_t cp_hqd_ctx_save_base_addr_lo; 332fb4d8502Sjsg uint32_t cp_hqd_ctx_save_base_addr_hi; 333fb4d8502Sjsg uint32_t cp_hqd_ctx_save_control; 334fb4d8502Sjsg uint32_t cp_hqd_cntl_stack_offset; 335fb4d8502Sjsg uint32_t cp_hqd_cntl_stack_size; 336fb4d8502Sjsg uint32_t cp_hqd_wg_state_offset; 337fb4d8502Sjsg uint32_t cp_hqd_ctx_save_size; 338fb4d8502Sjsg uint32_t cp_hqd_gds_resource_state; 339fb4d8502Sjsg uint32_t cp_hqd_error; 340fb4d8502Sjsg uint32_t cp_hqd_eop_wptr_mem; 341fb4d8502Sjsg uint32_t cp_hqd_eop_dones; 342fb4d8502Sjsg uint32_t reserved46; 343fb4d8502Sjsg uint32_t reserved47; 344fb4d8502Sjsg uint32_t reserved48; 345fb4d8502Sjsg uint32_t reserved49; 346fb4d8502Sjsg uint32_t reserved50; 347fb4d8502Sjsg uint32_t reserved51; 348fb4d8502Sjsg uint32_t reserved52; 349fb4d8502Sjsg uint32_t reserved53; 350fb4d8502Sjsg uint32_t reserved54; 351fb4d8502Sjsg uint32_t reserved55; 352fb4d8502Sjsg uint32_t iqtimer_pkt_header; 353fb4d8502Sjsg uint32_t iqtimer_pkt_dw0; 354fb4d8502Sjsg uint32_t iqtimer_pkt_dw1; 355fb4d8502Sjsg uint32_t iqtimer_pkt_dw2; 356fb4d8502Sjsg uint32_t iqtimer_pkt_dw3; 357fb4d8502Sjsg uint32_t iqtimer_pkt_dw4; 358fb4d8502Sjsg uint32_t iqtimer_pkt_dw5; 359fb4d8502Sjsg uint32_t iqtimer_pkt_dw6; 360fb4d8502Sjsg uint32_t iqtimer_pkt_dw7; 361fb4d8502Sjsg uint32_t iqtimer_pkt_dw8; 362fb4d8502Sjsg uint32_t iqtimer_pkt_dw9; 363fb4d8502Sjsg uint32_t iqtimer_pkt_dw10; 364fb4d8502Sjsg uint32_t iqtimer_pkt_dw11; 365fb4d8502Sjsg uint32_t iqtimer_pkt_dw12; 366fb4d8502Sjsg uint32_t iqtimer_pkt_dw13; 367fb4d8502Sjsg uint32_t iqtimer_pkt_dw14; 368fb4d8502Sjsg uint32_t iqtimer_pkt_dw15; 369fb4d8502Sjsg uint32_t iqtimer_pkt_dw16; 370fb4d8502Sjsg uint32_t iqtimer_pkt_dw17; 371fb4d8502Sjsg uint32_t iqtimer_pkt_dw18; 372fb4d8502Sjsg uint32_t iqtimer_pkt_dw19; 373fb4d8502Sjsg uint32_t iqtimer_pkt_dw20; 374fb4d8502Sjsg uint32_t iqtimer_pkt_dw21; 375fb4d8502Sjsg uint32_t iqtimer_pkt_dw22; 376fb4d8502Sjsg uint32_t iqtimer_pkt_dw23; 377fb4d8502Sjsg uint32_t iqtimer_pkt_dw24; 378fb4d8502Sjsg uint32_t iqtimer_pkt_dw25; 379fb4d8502Sjsg uint32_t iqtimer_pkt_dw26; 380fb4d8502Sjsg uint32_t iqtimer_pkt_dw27; 381fb4d8502Sjsg uint32_t iqtimer_pkt_dw28; 382fb4d8502Sjsg uint32_t iqtimer_pkt_dw29; 383fb4d8502Sjsg uint32_t iqtimer_pkt_dw30; 384fb4d8502Sjsg uint32_t iqtimer_pkt_dw31; 385fb4d8502Sjsg uint32_t reserved56; 386fb4d8502Sjsg uint32_t reserved57; 387fb4d8502Sjsg uint32_t reserved58; 388fb4d8502Sjsg uint32_t set_resources_header; 389fb4d8502Sjsg uint32_t set_resources_dw1; 390fb4d8502Sjsg uint32_t set_resources_dw2; 391fb4d8502Sjsg uint32_t set_resources_dw3; 392fb4d8502Sjsg uint32_t set_resources_dw4; 393fb4d8502Sjsg uint32_t set_resources_dw5; 394fb4d8502Sjsg uint32_t set_resources_dw6; 395fb4d8502Sjsg uint32_t set_resources_dw7; 396fb4d8502Sjsg uint32_t reserved59; 397fb4d8502Sjsg uint32_t reserved60; 398fb4d8502Sjsg uint32_t reserved61; 399fb4d8502Sjsg uint32_t reserved62; 400*5ca02815Sjsg uint32_t queue_doorbell_id0; 401*5ca02815Sjsg uint32_t queue_doorbell_id1; 402*5ca02815Sjsg uint32_t queue_doorbell_id2; 403*5ca02815Sjsg uint32_t queue_doorbell_id3; 404*5ca02815Sjsg uint32_t queue_doorbell_id4; 405*5ca02815Sjsg uint32_t queue_doorbell_id5; 406*5ca02815Sjsg uint32_t queue_doorbell_id6; 407*5ca02815Sjsg uint32_t queue_doorbell_id7; 408*5ca02815Sjsg uint32_t queue_doorbell_id8; 409*5ca02815Sjsg uint32_t queue_doorbell_id9; 410*5ca02815Sjsg uint32_t queue_doorbell_id10; 411*5ca02815Sjsg uint32_t queue_doorbell_id11; 412*5ca02815Sjsg uint32_t queue_doorbell_id12; 413*5ca02815Sjsg uint32_t queue_doorbell_id13; 414*5ca02815Sjsg uint32_t queue_doorbell_id14; 415*5ca02815Sjsg uint32_t queue_doorbell_id15; 416fb4d8502Sjsg uint32_t reserved_t[256]; 417fb4d8502Sjsg }; 418fb4d8502Sjsg 419fb4d8502Sjsg struct vi_mqd_allocation { 420fb4d8502Sjsg struct vi_mqd mqd; 421fb4d8502Sjsg uint32_t wptr_poll_mem; 422fb4d8502Sjsg uint32_t rptr_report_mem; 423fb4d8502Sjsg uint32_t dynamic_cu_mask; 424fb4d8502Sjsg uint32_t dynamic_rb_mask; 425fb4d8502Sjsg }; 426fb4d8502Sjsg 427fb4d8502Sjsg struct vi_ce_ib_state { 428fb4d8502Sjsg uint32_t ce_ib_completion_status; 429fb4d8502Sjsg uint32_t ce_constegnine_count; 430fb4d8502Sjsg uint32_t ce_ibOffset_ib1; 431fb4d8502Sjsg uint32_t ce_ibOffset_ib2; 432fb4d8502Sjsg }; /* Total of 4 DWORD */ 433fb4d8502Sjsg 434fb4d8502Sjsg struct vi_de_ib_state { 435fb4d8502Sjsg uint32_t ib_completion_status; 436fb4d8502Sjsg uint32_t de_constEngine_count; 437fb4d8502Sjsg uint32_t ib_offset_ib1; 438fb4d8502Sjsg uint32_t ib_offset_ib2; 439fb4d8502Sjsg uint32_t preamble_begin_ib1; 440fb4d8502Sjsg uint32_t preamble_begin_ib2; 441fb4d8502Sjsg uint32_t preamble_end_ib1; 442fb4d8502Sjsg uint32_t preamble_end_ib2; 443fb4d8502Sjsg uint32_t draw_indirect_baseLo; 444fb4d8502Sjsg uint32_t draw_indirect_baseHi; 445fb4d8502Sjsg uint32_t disp_indirect_baseLo; 446fb4d8502Sjsg uint32_t disp_indirect_baseHi; 447fb4d8502Sjsg uint32_t gds_backup_addrlo; 448fb4d8502Sjsg uint32_t gds_backup_addrhi; 449fb4d8502Sjsg uint32_t index_base_addrlo; 450fb4d8502Sjsg uint32_t index_base_addrhi; 451fb4d8502Sjsg uint32_t sample_cntl; 452fb4d8502Sjsg }; /* Total of 17 DWORD */ 453fb4d8502Sjsg 454fb4d8502Sjsg struct vi_ce_ib_state_chained_ib { 455fb4d8502Sjsg /* section of non chained ib part */ 456fb4d8502Sjsg uint32_t ce_ib_completion_status; 457fb4d8502Sjsg uint32_t ce_constegnine_count; 458fb4d8502Sjsg uint32_t ce_ibOffset_ib1; 459fb4d8502Sjsg uint32_t ce_ibOffset_ib2; 460fb4d8502Sjsg 461fb4d8502Sjsg /* section of chained ib */ 462fb4d8502Sjsg uint32_t ce_chainib_addrlo_ib1; 463fb4d8502Sjsg uint32_t ce_chainib_addrlo_ib2; 464fb4d8502Sjsg uint32_t ce_chainib_addrhi_ib1; 465fb4d8502Sjsg uint32_t ce_chainib_addrhi_ib2; 466fb4d8502Sjsg uint32_t ce_chainib_size_ib1; 467fb4d8502Sjsg uint32_t ce_chainib_size_ib2; 468fb4d8502Sjsg }; /* total 10 DWORD */ 469fb4d8502Sjsg 470fb4d8502Sjsg struct vi_de_ib_state_chained_ib { 471fb4d8502Sjsg /* section of non chained ib part */ 472fb4d8502Sjsg uint32_t ib_completion_status; 473fb4d8502Sjsg uint32_t de_constEngine_count; 474fb4d8502Sjsg uint32_t ib_offset_ib1; 475fb4d8502Sjsg uint32_t ib_offset_ib2; 476fb4d8502Sjsg 477fb4d8502Sjsg /* section of chained ib */ 478fb4d8502Sjsg uint32_t chain_ib_addrlo_ib1; 479fb4d8502Sjsg uint32_t chain_ib_addrlo_ib2; 480fb4d8502Sjsg uint32_t chain_ib_addrhi_ib1; 481fb4d8502Sjsg uint32_t chain_ib_addrhi_ib2; 482fb4d8502Sjsg uint32_t chain_ib_size_ib1; 483fb4d8502Sjsg uint32_t chain_ib_size_ib2; 484fb4d8502Sjsg 485fb4d8502Sjsg /* section of non chained ib part */ 486fb4d8502Sjsg uint32_t preamble_begin_ib1; 487fb4d8502Sjsg uint32_t preamble_begin_ib2; 488fb4d8502Sjsg uint32_t preamble_end_ib1; 489fb4d8502Sjsg uint32_t preamble_end_ib2; 490fb4d8502Sjsg 491fb4d8502Sjsg /* section of chained ib */ 492fb4d8502Sjsg uint32_t chain_ib_pream_addrlo_ib1; 493fb4d8502Sjsg uint32_t chain_ib_pream_addrlo_ib2; 494fb4d8502Sjsg uint32_t chain_ib_pream_addrhi_ib1; 495fb4d8502Sjsg uint32_t chain_ib_pream_addrhi_ib2; 496fb4d8502Sjsg 497fb4d8502Sjsg /* section of non chained ib part */ 498fb4d8502Sjsg uint32_t draw_indirect_baseLo; 499fb4d8502Sjsg uint32_t draw_indirect_baseHi; 500fb4d8502Sjsg uint32_t disp_indirect_baseLo; 501fb4d8502Sjsg uint32_t disp_indirect_baseHi; 502fb4d8502Sjsg uint32_t gds_backup_addrlo; 503fb4d8502Sjsg uint32_t gds_backup_addrhi; 504fb4d8502Sjsg uint32_t index_base_addrlo; 505fb4d8502Sjsg uint32_t index_base_addrhi; 506fb4d8502Sjsg uint32_t sample_cntl; 507fb4d8502Sjsg }; /* Total of 27 DWORD */ 508fb4d8502Sjsg 509fb4d8502Sjsg struct vi_gfx_meta_data { 510fb4d8502Sjsg /* 4 DWORD, address must be 4KB aligned */ 511fb4d8502Sjsg struct vi_ce_ib_state ce_payload; 512fb4d8502Sjsg uint32_t reserved1[60]; 513fb4d8502Sjsg /* 17 DWORD, address must be 64B aligned */ 514fb4d8502Sjsg struct vi_de_ib_state de_payload; 515fb4d8502Sjsg /* PFP IB base address which get pre-empted */ 516fb4d8502Sjsg uint32_t DeIbBaseAddrLo; 517fb4d8502Sjsg uint32_t DeIbBaseAddrHi; 518fb4d8502Sjsg uint32_t reserved2[941]; 519fb4d8502Sjsg }; /* Total of 4K Bytes */ 520fb4d8502Sjsg 521fb4d8502Sjsg struct vi_gfx_meta_data_chained_ib { 522fb4d8502Sjsg /* 10 DWORD, address must be 4KB aligned */ 523fb4d8502Sjsg struct vi_ce_ib_state_chained_ib ce_payload; 524fb4d8502Sjsg uint32_t reserved1[54]; 525fb4d8502Sjsg /* 27 DWORD, address must be 64B aligned */ 526fb4d8502Sjsg struct vi_de_ib_state_chained_ib de_payload; 527fb4d8502Sjsg /* PFP IB base address which get pre-empted */ 528fb4d8502Sjsg uint32_t DeIbBaseAddrLo; 529fb4d8502Sjsg uint32_t DeIbBaseAddrHi; 530fb4d8502Sjsg uint32_t reserved2[931]; 531fb4d8502Sjsg }; /* Total of 4K Bytes */ 532fb4d8502Sjsg 533fb4d8502Sjsg #endif /* VI_STRUCTS_H_ */ 534