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