162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Copyright 2012 Advanced Micro Devices, Inc. 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a 562306a36Sopenharmony_ci * copy of this software and associated documentation files (the "Software"), 662306a36Sopenharmony_ci * to deal in the Software without restriction, including without limitation 762306a36Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense, 862306a36Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the 962306a36Sopenharmony_ci * Software is furnished to do so, subject to the following conditions: 1062306a36Sopenharmony_ci * 1162306a36Sopenharmony_ci * The above copyright notice and this permission notice shall be included in 1262306a36Sopenharmony_ci * all copies or substantial portions of the Software. 1362306a36Sopenharmony_ci * 1462306a36Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1562306a36Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1662306a36Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1762306a36Sopenharmony_ci * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 1862306a36Sopenharmony_ci * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 1962306a36Sopenharmony_ci * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 2062306a36Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE. 2162306a36Sopenharmony_ci * 2262306a36Sopenharmony_ci */ 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#ifndef VI_STRUCTS_H_ 2562306a36Sopenharmony_ci#define VI_STRUCTS_H_ 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistruct vi_sdma_mqd { 2862306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_cntl; 2962306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_base; 3062306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_base_hi; 3162306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_rptr; 3262306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_wptr; 3362306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_wptr_poll_cntl; 3462306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi; 3562306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo; 3662306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_rptr_addr_hi; 3762306a36Sopenharmony_ci uint32_t sdmax_rlcx_rb_rptr_addr_lo; 3862306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_cntl; 3962306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_rptr; 4062306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_offset; 4162306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_base_lo; 4262306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_base_hi; 4362306a36Sopenharmony_ci uint32_t sdmax_rlcx_ib_size; 4462306a36Sopenharmony_ci uint32_t sdmax_rlcx_skip_cntl; 4562306a36Sopenharmony_ci uint32_t sdmax_rlcx_context_status; 4662306a36Sopenharmony_ci uint32_t sdmax_rlcx_doorbell; 4762306a36Sopenharmony_ci uint32_t sdmax_rlcx_virtual_addr; 4862306a36Sopenharmony_ci uint32_t sdmax_rlcx_ape1_cntl; 4962306a36Sopenharmony_ci uint32_t sdmax_rlcx_doorbell_log; 5062306a36Sopenharmony_ci uint32_t reserved_22; 5162306a36Sopenharmony_ci uint32_t reserved_23; 5262306a36Sopenharmony_ci uint32_t reserved_24; 5362306a36Sopenharmony_ci uint32_t reserved_25; 5462306a36Sopenharmony_ci uint32_t reserved_26; 5562306a36Sopenharmony_ci uint32_t reserved_27; 5662306a36Sopenharmony_ci uint32_t reserved_28; 5762306a36Sopenharmony_ci uint32_t reserved_29; 5862306a36Sopenharmony_ci uint32_t reserved_30; 5962306a36Sopenharmony_ci uint32_t reserved_31; 6062306a36Sopenharmony_ci uint32_t reserved_32; 6162306a36Sopenharmony_ci uint32_t reserved_33; 6262306a36Sopenharmony_ci uint32_t reserved_34; 6362306a36Sopenharmony_ci uint32_t reserved_35; 6462306a36Sopenharmony_ci uint32_t reserved_36; 6562306a36Sopenharmony_ci uint32_t reserved_37; 6662306a36Sopenharmony_ci uint32_t reserved_38; 6762306a36Sopenharmony_ci uint32_t reserved_39; 6862306a36Sopenharmony_ci uint32_t reserved_40; 6962306a36Sopenharmony_ci uint32_t reserved_41; 7062306a36Sopenharmony_ci uint32_t reserved_42; 7162306a36Sopenharmony_ci uint32_t reserved_43; 7262306a36Sopenharmony_ci uint32_t reserved_44; 7362306a36Sopenharmony_ci uint32_t reserved_45; 7462306a36Sopenharmony_ci uint32_t reserved_46; 7562306a36Sopenharmony_ci uint32_t reserved_47; 7662306a36Sopenharmony_ci uint32_t reserved_48; 7762306a36Sopenharmony_ci uint32_t reserved_49; 7862306a36Sopenharmony_ci uint32_t reserved_50; 7962306a36Sopenharmony_ci uint32_t reserved_51; 8062306a36Sopenharmony_ci uint32_t reserved_52; 8162306a36Sopenharmony_ci uint32_t reserved_53; 8262306a36Sopenharmony_ci uint32_t reserved_54; 8362306a36Sopenharmony_ci uint32_t reserved_55; 8462306a36Sopenharmony_ci uint32_t reserved_56; 8562306a36Sopenharmony_ci uint32_t reserved_57; 8662306a36Sopenharmony_ci uint32_t reserved_58; 8762306a36Sopenharmony_ci uint32_t reserved_59; 8862306a36Sopenharmony_ci uint32_t reserved_60; 8962306a36Sopenharmony_ci uint32_t reserved_61; 9062306a36Sopenharmony_ci uint32_t reserved_62; 9162306a36Sopenharmony_ci uint32_t reserved_63; 9262306a36Sopenharmony_ci uint32_t reserved_64; 9362306a36Sopenharmony_ci uint32_t reserved_65; 9462306a36Sopenharmony_ci uint32_t reserved_66; 9562306a36Sopenharmony_ci uint32_t reserved_67; 9662306a36Sopenharmony_ci uint32_t reserved_68; 9762306a36Sopenharmony_ci uint32_t reserved_69; 9862306a36Sopenharmony_ci uint32_t reserved_70; 9962306a36Sopenharmony_ci uint32_t reserved_71; 10062306a36Sopenharmony_ci uint32_t reserved_72; 10162306a36Sopenharmony_ci uint32_t reserved_73; 10262306a36Sopenharmony_ci uint32_t reserved_74; 10362306a36Sopenharmony_ci uint32_t reserved_75; 10462306a36Sopenharmony_ci uint32_t reserved_76; 10562306a36Sopenharmony_ci uint32_t reserved_77; 10662306a36Sopenharmony_ci uint32_t reserved_78; 10762306a36Sopenharmony_ci uint32_t reserved_79; 10862306a36Sopenharmony_ci uint32_t reserved_80; 10962306a36Sopenharmony_ci uint32_t reserved_81; 11062306a36Sopenharmony_ci uint32_t reserved_82; 11162306a36Sopenharmony_ci uint32_t reserved_83; 11262306a36Sopenharmony_ci uint32_t reserved_84; 11362306a36Sopenharmony_ci uint32_t reserved_85; 11462306a36Sopenharmony_ci uint32_t reserved_86; 11562306a36Sopenharmony_ci uint32_t reserved_87; 11662306a36Sopenharmony_ci uint32_t reserved_88; 11762306a36Sopenharmony_ci uint32_t reserved_89; 11862306a36Sopenharmony_ci uint32_t reserved_90; 11962306a36Sopenharmony_ci uint32_t reserved_91; 12062306a36Sopenharmony_ci uint32_t reserved_92; 12162306a36Sopenharmony_ci uint32_t reserved_93; 12262306a36Sopenharmony_ci uint32_t reserved_94; 12362306a36Sopenharmony_ci uint32_t reserved_95; 12462306a36Sopenharmony_ci uint32_t reserved_96; 12562306a36Sopenharmony_ci uint32_t reserved_97; 12662306a36Sopenharmony_ci uint32_t reserved_98; 12762306a36Sopenharmony_ci uint32_t reserved_99; 12862306a36Sopenharmony_ci uint32_t reserved_100; 12962306a36Sopenharmony_ci uint32_t reserved_101; 13062306a36Sopenharmony_ci uint32_t reserved_102; 13162306a36Sopenharmony_ci uint32_t reserved_103; 13262306a36Sopenharmony_ci uint32_t reserved_104; 13362306a36Sopenharmony_ci uint32_t reserved_105; 13462306a36Sopenharmony_ci uint32_t reserved_106; 13562306a36Sopenharmony_ci uint32_t reserved_107; 13662306a36Sopenharmony_ci uint32_t reserved_108; 13762306a36Sopenharmony_ci uint32_t reserved_109; 13862306a36Sopenharmony_ci uint32_t reserved_110; 13962306a36Sopenharmony_ci uint32_t reserved_111; 14062306a36Sopenharmony_ci uint32_t reserved_112; 14162306a36Sopenharmony_ci uint32_t reserved_113; 14262306a36Sopenharmony_ci uint32_t reserved_114; 14362306a36Sopenharmony_ci uint32_t reserved_115; 14462306a36Sopenharmony_ci uint32_t reserved_116; 14562306a36Sopenharmony_ci uint32_t reserved_117; 14662306a36Sopenharmony_ci uint32_t reserved_118; 14762306a36Sopenharmony_ci uint32_t reserved_119; 14862306a36Sopenharmony_ci uint32_t reserved_120; 14962306a36Sopenharmony_ci uint32_t reserved_121; 15062306a36Sopenharmony_ci uint32_t reserved_122; 15162306a36Sopenharmony_ci uint32_t reserved_123; 15262306a36Sopenharmony_ci uint32_t reserved_124; 15362306a36Sopenharmony_ci uint32_t reserved_125; 15462306a36Sopenharmony_ci /* reserved_126,127: repurposed for driver-internal use */ 15562306a36Sopenharmony_ci uint32_t sdma_engine_id; 15662306a36Sopenharmony_ci uint32_t sdma_queue_id; 15762306a36Sopenharmony_ci}; 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_cistruct vi_mqd { 16062306a36Sopenharmony_ci uint32_t header; 16162306a36Sopenharmony_ci uint32_t compute_dispatch_initiator; 16262306a36Sopenharmony_ci uint32_t compute_dim_x; 16362306a36Sopenharmony_ci uint32_t compute_dim_y; 16462306a36Sopenharmony_ci uint32_t compute_dim_z; 16562306a36Sopenharmony_ci uint32_t compute_start_x; 16662306a36Sopenharmony_ci uint32_t compute_start_y; 16762306a36Sopenharmony_ci uint32_t compute_start_z; 16862306a36Sopenharmony_ci uint32_t compute_num_thread_x; 16962306a36Sopenharmony_ci uint32_t compute_num_thread_y; 17062306a36Sopenharmony_ci uint32_t compute_num_thread_z; 17162306a36Sopenharmony_ci uint32_t compute_pipelinestat_enable; 17262306a36Sopenharmony_ci uint32_t compute_perfcount_enable; 17362306a36Sopenharmony_ci uint32_t compute_pgm_lo; 17462306a36Sopenharmony_ci uint32_t compute_pgm_hi; 17562306a36Sopenharmony_ci uint32_t compute_tba_lo; 17662306a36Sopenharmony_ci uint32_t compute_tba_hi; 17762306a36Sopenharmony_ci uint32_t compute_tma_lo; 17862306a36Sopenharmony_ci uint32_t compute_tma_hi; 17962306a36Sopenharmony_ci uint32_t compute_pgm_rsrc1; 18062306a36Sopenharmony_ci uint32_t compute_pgm_rsrc2; 18162306a36Sopenharmony_ci uint32_t compute_vmid; 18262306a36Sopenharmony_ci uint32_t compute_resource_limits; 18362306a36Sopenharmony_ci uint32_t compute_static_thread_mgmt_se0; 18462306a36Sopenharmony_ci uint32_t compute_static_thread_mgmt_se1; 18562306a36Sopenharmony_ci uint32_t compute_tmpring_size; 18662306a36Sopenharmony_ci uint32_t compute_static_thread_mgmt_se2; 18762306a36Sopenharmony_ci uint32_t compute_static_thread_mgmt_se3; 18862306a36Sopenharmony_ci uint32_t compute_restart_x; 18962306a36Sopenharmony_ci uint32_t compute_restart_y; 19062306a36Sopenharmony_ci uint32_t compute_restart_z; 19162306a36Sopenharmony_ci uint32_t compute_thread_trace_enable; 19262306a36Sopenharmony_ci uint32_t compute_misc_reserved; 19362306a36Sopenharmony_ci uint32_t compute_dispatch_id; 19462306a36Sopenharmony_ci uint32_t compute_threadgroup_id; 19562306a36Sopenharmony_ci uint32_t compute_relaunch; 19662306a36Sopenharmony_ci uint32_t compute_wave_restore_addr_lo; 19762306a36Sopenharmony_ci uint32_t compute_wave_restore_addr_hi; 19862306a36Sopenharmony_ci uint32_t compute_wave_restore_control; 19962306a36Sopenharmony_ci uint32_t reserved9; 20062306a36Sopenharmony_ci uint32_t reserved10; 20162306a36Sopenharmony_ci uint32_t reserved11; 20262306a36Sopenharmony_ci uint32_t reserved12; 20362306a36Sopenharmony_ci uint32_t reserved13; 20462306a36Sopenharmony_ci uint32_t reserved14; 20562306a36Sopenharmony_ci uint32_t reserved15; 20662306a36Sopenharmony_ci uint32_t reserved16; 20762306a36Sopenharmony_ci uint32_t reserved17; 20862306a36Sopenharmony_ci uint32_t reserved18; 20962306a36Sopenharmony_ci uint32_t reserved19; 21062306a36Sopenharmony_ci uint32_t reserved20; 21162306a36Sopenharmony_ci uint32_t reserved21; 21262306a36Sopenharmony_ci uint32_t reserved22; 21362306a36Sopenharmony_ci uint32_t reserved23; 21462306a36Sopenharmony_ci uint32_t reserved24; 21562306a36Sopenharmony_ci uint32_t reserved25; 21662306a36Sopenharmony_ci uint32_t reserved26; 21762306a36Sopenharmony_ci uint32_t reserved27; 21862306a36Sopenharmony_ci uint32_t reserved28; 21962306a36Sopenharmony_ci uint32_t reserved29; 22062306a36Sopenharmony_ci uint32_t reserved30; 22162306a36Sopenharmony_ci uint32_t reserved31; 22262306a36Sopenharmony_ci uint32_t reserved32; 22362306a36Sopenharmony_ci uint32_t reserved33; 22462306a36Sopenharmony_ci uint32_t reserved34; 22562306a36Sopenharmony_ci uint32_t compute_user_data_0; 22662306a36Sopenharmony_ci uint32_t compute_user_data_1; 22762306a36Sopenharmony_ci uint32_t compute_user_data_2; 22862306a36Sopenharmony_ci uint32_t compute_user_data_3; 22962306a36Sopenharmony_ci uint32_t compute_user_data_4; 23062306a36Sopenharmony_ci uint32_t compute_user_data_5; 23162306a36Sopenharmony_ci uint32_t compute_user_data_6; 23262306a36Sopenharmony_ci uint32_t compute_user_data_7; 23362306a36Sopenharmony_ci uint32_t compute_user_data_8; 23462306a36Sopenharmony_ci uint32_t compute_user_data_9; 23562306a36Sopenharmony_ci uint32_t compute_user_data_10; 23662306a36Sopenharmony_ci uint32_t compute_user_data_11; 23762306a36Sopenharmony_ci uint32_t compute_user_data_12; 23862306a36Sopenharmony_ci uint32_t compute_user_data_13; 23962306a36Sopenharmony_ci uint32_t compute_user_data_14; 24062306a36Sopenharmony_ci uint32_t compute_user_data_15; 24162306a36Sopenharmony_ci uint32_t cp_compute_csinvoc_count_lo; 24262306a36Sopenharmony_ci uint32_t cp_compute_csinvoc_count_hi; 24362306a36Sopenharmony_ci uint32_t reserved35; 24462306a36Sopenharmony_ci uint32_t reserved36; 24562306a36Sopenharmony_ci uint32_t reserved37; 24662306a36Sopenharmony_ci uint32_t cp_mqd_query_time_lo; 24762306a36Sopenharmony_ci uint32_t cp_mqd_query_time_hi; 24862306a36Sopenharmony_ci uint32_t cp_mqd_connect_start_time_lo; 24962306a36Sopenharmony_ci uint32_t cp_mqd_connect_start_time_hi; 25062306a36Sopenharmony_ci uint32_t cp_mqd_connect_end_time_lo; 25162306a36Sopenharmony_ci uint32_t cp_mqd_connect_end_time_hi; 25262306a36Sopenharmony_ci uint32_t cp_mqd_connect_end_wf_count; 25362306a36Sopenharmony_ci uint32_t cp_mqd_connect_end_pq_rptr; 25462306a36Sopenharmony_ci uint32_t cp_mqd_connect_endvi_sdma_mqd_pq_wptr; 25562306a36Sopenharmony_ci uint32_t cp_mqd_connect_end_ib_rptr; 25662306a36Sopenharmony_ci uint32_t reserved38; 25762306a36Sopenharmony_ci uint32_t reserved39; 25862306a36Sopenharmony_ci uint32_t cp_mqd_save_start_time_lo; 25962306a36Sopenharmony_ci uint32_t cp_mqd_save_start_time_hi; 26062306a36Sopenharmony_ci uint32_t cp_mqd_save_end_time_lo; 26162306a36Sopenharmony_ci uint32_t cp_mqd_save_end_time_hi; 26262306a36Sopenharmony_ci uint32_t cp_mqd_restore_start_time_lo; 26362306a36Sopenharmony_ci uint32_t cp_mqd_restore_start_time_hi; 26462306a36Sopenharmony_ci uint32_t cp_mqd_restore_end_time_lo; 26562306a36Sopenharmony_ci uint32_t cp_mqd_restore_end_time_hi; 26662306a36Sopenharmony_ci uint32_t disable_queue; 26762306a36Sopenharmony_ci uint32_t reserved41; 26862306a36Sopenharmony_ci uint32_t gds_cs_ctxsw_cnt0; 26962306a36Sopenharmony_ci uint32_t gds_cs_ctxsw_cnt1; 27062306a36Sopenharmony_ci uint32_t gds_cs_ctxsw_cnt2; 27162306a36Sopenharmony_ci uint32_t gds_cs_ctxsw_cnt3; 27262306a36Sopenharmony_ci uint32_t reserved42; 27362306a36Sopenharmony_ci uint32_t reserved43; 27462306a36Sopenharmony_ci uint32_t cp_pq_exe_status_lo; 27562306a36Sopenharmony_ci uint32_t cp_pq_exe_status_hi; 27662306a36Sopenharmony_ci uint32_t cp_packet_id_lo; 27762306a36Sopenharmony_ci uint32_t cp_packet_id_hi; 27862306a36Sopenharmony_ci uint32_t cp_packet_exe_status_lo; 27962306a36Sopenharmony_ci uint32_t cp_packet_exe_status_hi; 28062306a36Sopenharmony_ci uint32_t gds_save_base_addr_lo; 28162306a36Sopenharmony_ci uint32_t gds_save_base_addr_hi; 28262306a36Sopenharmony_ci uint32_t gds_save_mask_lo; 28362306a36Sopenharmony_ci uint32_t gds_save_mask_hi; 28462306a36Sopenharmony_ci uint32_t ctx_save_base_addr_lo; 28562306a36Sopenharmony_ci uint32_t ctx_save_base_addr_hi; 28662306a36Sopenharmony_ci uint32_t dynamic_cu_mask_addr_lo; 28762306a36Sopenharmony_ci uint32_t dynamic_cu_mask_addr_hi; 28862306a36Sopenharmony_ci uint32_t cp_mqd_base_addr_lo; 28962306a36Sopenharmony_ci uint32_t cp_mqd_base_addr_hi; 29062306a36Sopenharmony_ci uint32_t cp_hqd_active; 29162306a36Sopenharmony_ci uint32_t cp_hqd_vmid; 29262306a36Sopenharmony_ci uint32_t cp_hqd_persistent_state; 29362306a36Sopenharmony_ci uint32_t cp_hqd_pipe_priority; 29462306a36Sopenharmony_ci uint32_t cp_hqd_queue_priority; 29562306a36Sopenharmony_ci uint32_t cp_hqd_quantum; 29662306a36Sopenharmony_ci uint32_t cp_hqd_pq_base_lo; 29762306a36Sopenharmony_ci uint32_t cp_hqd_pq_base_hi; 29862306a36Sopenharmony_ci uint32_t cp_hqd_pq_rptr; 29962306a36Sopenharmony_ci uint32_t cp_hqd_pq_rptr_report_addr_lo; 30062306a36Sopenharmony_ci uint32_t cp_hqd_pq_rptr_report_addr_hi; 30162306a36Sopenharmony_ci uint32_t cp_hqd_pq_wptr_poll_addr_lo; 30262306a36Sopenharmony_ci uint32_t cp_hqd_pq_wptr_poll_addr_hi; 30362306a36Sopenharmony_ci uint32_t cp_hqd_pq_doorbell_control; 30462306a36Sopenharmony_ci uint32_t cp_hqd_pq_wptr; 30562306a36Sopenharmony_ci uint32_t cp_hqd_pq_control; 30662306a36Sopenharmony_ci uint32_t cp_hqd_ib_base_addr_lo; 30762306a36Sopenharmony_ci uint32_t cp_hqd_ib_base_addr_hi; 30862306a36Sopenharmony_ci uint32_t cp_hqd_ib_rptr; 30962306a36Sopenharmony_ci uint32_t cp_hqd_ib_control; 31062306a36Sopenharmony_ci uint32_t cp_hqd_iq_timer; 31162306a36Sopenharmony_ci uint32_t cp_hqd_iq_rptr; 31262306a36Sopenharmony_ci uint32_t cp_hqd_dequeue_request; 31362306a36Sopenharmony_ci uint32_t cp_hqd_dma_offload; 31462306a36Sopenharmony_ci uint32_t cp_hqd_sema_cmd; 31562306a36Sopenharmony_ci uint32_t cp_hqd_msg_type; 31662306a36Sopenharmony_ci uint32_t cp_hqd_atomic0_preop_lo; 31762306a36Sopenharmony_ci uint32_t cp_hqd_atomic0_preop_hi; 31862306a36Sopenharmony_ci uint32_t cp_hqd_atomic1_preop_lo; 31962306a36Sopenharmony_ci uint32_t cp_hqd_atomic1_preop_hi; 32062306a36Sopenharmony_ci uint32_t cp_hqd_hq_status0; 32162306a36Sopenharmony_ci uint32_t cp_hqd_hq_control0; 32262306a36Sopenharmony_ci uint32_t cp_mqd_control; 32362306a36Sopenharmony_ci uint32_t cp_hqd_hq_status1; 32462306a36Sopenharmony_ci uint32_t cp_hqd_hq_control1; 32562306a36Sopenharmony_ci uint32_t cp_hqd_eop_base_addr_lo; 32662306a36Sopenharmony_ci uint32_t cp_hqd_eop_base_addr_hi; 32762306a36Sopenharmony_ci uint32_t cp_hqd_eop_control; 32862306a36Sopenharmony_ci uint32_t cp_hqd_eop_rptr; 32962306a36Sopenharmony_ci uint32_t cp_hqd_eop_wptr; 33062306a36Sopenharmony_ci uint32_t cp_hqd_eop_done_events; 33162306a36Sopenharmony_ci uint32_t cp_hqd_ctx_save_base_addr_lo; 33262306a36Sopenharmony_ci uint32_t cp_hqd_ctx_save_base_addr_hi; 33362306a36Sopenharmony_ci uint32_t cp_hqd_ctx_save_control; 33462306a36Sopenharmony_ci uint32_t cp_hqd_cntl_stack_offset; 33562306a36Sopenharmony_ci uint32_t cp_hqd_cntl_stack_size; 33662306a36Sopenharmony_ci uint32_t cp_hqd_wg_state_offset; 33762306a36Sopenharmony_ci uint32_t cp_hqd_ctx_save_size; 33862306a36Sopenharmony_ci uint32_t cp_hqd_gds_resource_state; 33962306a36Sopenharmony_ci uint32_t cp_hqd_error; 34062306a36Sopenharmony_ci uint32_t cp_hqd_eop_wptr_mem; 34162306a36Sopenharmony_ci uint32_t cp_hqd_eop_dones; 34262306a36Sopenharmony_ci uint32_t reserved46; 34362306a36Sopenharmony_ci uint32_t reserved47; 34462306a36Sopenharmony_ci uint32_t reserved48; 34562306a36Sopenharmony_ci uint32_t reserved49; 34662306a36Sopenharmony_ci uint32_t reserved50; 34762306a36Sopenharmony_ci uint32_t reserved51; 34862306a36Sopenharmony_ci uint32_t reserved52; 34962306a36Sopenharmony_ci uint32_t reserved53; 35062306a36Sopenharmony_ci uint32_t reserved54; 35162306a36Sopenharmony_ci uint32_t reserved55; 35262306a36Sopenharmony_ci uint32_t iqtimer_pkt_header; 35362306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw0; 35462306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw1; 35562306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw2; 35662306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw3; 35762306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw4; 35862306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw5; 35962306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw6; 36062306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw7; 36162306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw8; 36262306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw9; 36362306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw10; 36462306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw11; 36562306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw12; 36662306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw13; 36762306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw14; 36862306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw15; 36962306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw16; 37062306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw17; 37162306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw18; 37262306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw19; 37362306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw20; 37462306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw21; 37562306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw22; 37662306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw23; 37762306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw24; 37862306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw25; 37962306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw26; 38062306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw27; 38162306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw28; 38262306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw29; 38362306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw30; 38462306a36Sopenharmony_ci uint32_t iqtimer_pkt_dw31; 38562306a36Sopenharmony_ci uint32_t reserved56; 38662306a36Sopenharmony_ci uint32_t reserved57; 38762306a36Sopenharmony_ci uint32_t reserved58; 38862306a36Sopenharmony_ci uint32_t set_resources_header; 38962306a36Sopenharmony_ci uint32_t set_resources_dw1; 39062306a36Sopenharmony_ci uint32_t set_resources_dw2; 39162306a36Sopenharmony_ci uint32_t set_resources_dw3; 39262306a36Sopenharmony_ci uint32_t set_resources_dw4; 39362306a36Sopenharmony_ci uint32_t set_resources_dw5; 39462306a36Sopenharmony_ci uint32_t set_resources_dw6; 39562306a36Sopenharmony_ci uint32_t set_resources_dw7; 39662306a36Sopenharmony_ci uint32_t reserved59; 39762306a36Sopenharmony_ci uint32_t reserved60; 39862306a36Sopenharmony_ci uint32_t reserved61; 39962306a36Sopenharmony_ci uint32_t reserved62; 40062306a36Sopenharmony_ci uint32_t queue_doorbell_id0; 40162306a36Sopenharmony_ci uint32_t queue_doorbell_id1; 40262306a36Sopenharmony_ci uint32_t queue_doorbell_id2; 40362306a36Sopenharmony_ci uint32_t queue_doorbell_id3; 40462306a36Sopenharmony_ci uint32_t queue_doorbell_id4; 40562306a36Sopenharmony_ci uint32_t queue_doorbell_id5; 40662306a36Sopenharmony_ci uint32_t queue_doorbell_id6; 40762306a36Sopenharmony_ci uint32_t queue_doorbell_id7; 40862306a36Sopenharmony_ci uint32_t queue_doorbell_id8; 40962306a36Sopenharmony_ci uint32_t queue_doorbell_id9; 41062306a36Sopenharmony_ci uint32_t queue_doorbell_id10; 41162306a36Sopenharmony_ci uint32_t queue_doorbell_id11; 41262306a36Sopenharmony_ci uint32_t queue_doorbell_id12; 41362306a36Sopenharmony_ci uint32_t queue_doorbell_id13; 41462306a36Sopenharmony_ci uint32_t queue_doorbell_id14; 41562306a36Sopenharmony_ci uint32_t queue_doorbell_id15; 41662306a36Sopenharmony_ci uint32_t reserved_t[256]; 41762306a36Sopenharmony_ci}; 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_cistruct vi_mqd_allocation { 42062306a36Sopenharmony_ci struct vi_mqd mqd; 42162306a36Sopenharmony_ci uint32_t wptr_poll_mem; 42262306a36Sopenharmony_ci uint32_t rptr_report_mem; 42362306a36Sopenharmony_ci uint32_t dynamic_cu_mask; 42462306a36Sopenharmony_ci uint32_t dynamic_rb_mask; 42562306a36Sopenharmony_ci}; 42662306a36Sopenharmony_ci 42762306a36Sopenharmony_cistruct vi_ce_ib_state { 42862306a36Sopenharmony_ci uint32_t ce_ib_completion_status; 42962306a36Sopenharmony_ci uint32_t ce_constegnine_count; 43062306a36Sopenharmony_ci uint32_t ce_ibOffset_ib1; 43162306a36Sopenharmony_ci uint32_t ce_ibOffset_ib2; 43262306a36Sopenharmony_ci}; /* Total of 4 DWORD */ 43362306a36Sopenharmony_ci 43462306a36Sopenharmony_cistruct vi_de_ib_state { 43562306a36Sopenharmony_ci uint32_t ib_completion_status; 43662306a36Sopenharmony_ci uint32_t de_constEngine_count; 43762306a36Sopenharmony_ci uint32_t ib_offset_ib1; 43862306a36Sopenharmony_ci uint32_t ib_offset_ib2; 43962306a36Sopenharmony_ci uint32_t preamble_begin_ib1; 44062306a36Sopenharmony_ci uint32_t preamble_begin_ib2; 44162306a36Sopenharmony_ci uint32_t preamble_end_ib1; 44262306a36Sopenharmony_ci uint32_t preamble_end_ib2; 44362306a36Sopenharmony_ci uint32_t draw_indirect_baseLo; 44462306a36Sopenharmony_ci uint32_t draw_indirect_baseHi; 44562306a36Sopenharmony_ci uint32_t disp_indirect_baseLo; 44662306a36Sopenharmony_ci uint32_t disp_indirect_baseHi; 44762306a36Sopenharmony_ci uint32_t gds_backup_addrlo; 44862306a36Sopenharmony_ci uint32_t gds_backup_addrhi; 44962306a36Sopenharmony_ci uint32_t index_base_addrlo; 45062306a36Sopenharmony_ci uint32_t index_base_addrhi; 45162306a36Sopenharmony_ci uint32_t sample_cntl; 45262306a36Sopenharmony_ci}; /* Total of 17 DWORD */ 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_cistruct vi_ce_ib_state_chained_ib { 45562306a36Sopenharmony_ci /* section of non chained ib part */ 45662306a36Sopenharmony_ci uint32_t ce_ib_completion_status; 45762306a36Sopenharmony_ci uint32_t ce_constegnine_count; 45862306a36Sopenharmony_ci uint32_t ce_ibOffset_ib1; 45962306a36Sopenharmony_ci uint32_t ce_ibOffset_ib2; 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci /* section of chained ib */ 46262306a36Sopenharmony_ci uint32_t ce_chainib_addrlo_ib1; 46362306a36Sopenharmony_ci uint32_t ce_chainib_addrlo_ib2; 46462306a36Sopenharmony_ci uint32_t ce_chainib_addrhi_ib1; 46562306a36Sopenharmony_ci uint32_t ce_chainib_addrhi_ib2; 46662306a36Sopenharmony_ci uint32_t ce_chainib_size_ib1; 46762306a36Sopenharmony_ci uint32_t ce_chainib_size_ib2; 46862306a36Sopenharmony_ci}; /* total 10 DWORD */ 46962306a36Sopenharmony_ci 47062306a36Sopenharmony_cistruct vi_de_ib_state_chained_ib { 47162306a36Sopenharmony_ci /* section of non chained ib part */ 47262306a36Sopenharmony_ci uint32_t ib_completion_status; 47362306a36Sopenharmony_ci uint32_t de_constEngine_count; 47462306a36Sopenharmony_ci uint32_t ib_offset_ib1; 47562306a36Sopenharmony_ci uint32_t ib_offset_ib2; 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci /* section of chained ib */ 47862306a36Sopenharmony_ci uint32_t chain_ib_addrlo_ib1; 47962306a36Sopenharmony_ci uint32_t chain_ib_addrlo_ib2; 48062306a36Sopenharmony_ci uint32_t chain_ib_addrhi_ib1; 48162306a36Sopenharmony_ci uint32_t chain_ib_addrhi_ib2; 48262306a36Sopenharmony_ci uint32_t chain_ib_size_ib1; 48362306a36Sopenharmony_ci uint32_t chain_ib_size_ib2; 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci /* section of non chained ib part */ 48662306a36Sopenharmony_ci uint32_t preamble_begin_ib1; 48762306a36Sopenharmony_ci uint32_t preamble_begin_ib2; 48862306a36Sopenharmony_ci uint32_t preamble_end_ib1; 48962306a36Sopenharmony_ci uint32_t preamble_end_ib2; 49062306a36Sopenharmony_ci 49162306a36Sopenharmony_ci /* section of chained ib */ 49262306a36Sopenharmony_ci uint32_t chain_ib_pream_addrlo_ib1; 49362306a36Sopenharmony_ci uint32_t chain_ib_pream_addrlo_ib2; 49462306a36Sopenharmony_ci uint32_t chain_ib_pream_addrhi_ib1; 49562306a36Sopenharmony_ci uint32_t chain_ib_pream_addrhi_ib2; 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ci /* section of non chained ib part */ 49862306a36Sopenharmony_ci uint32_t draw_indirect_baseLo; 49962306a36Sopenharmony_ci uint32_t draw_indirect_baseHi; 50062306a36Sopenharmony_ci uint32_t disp_indirect_baseLo; 50162306a36Sopenharmony_ci uint32_t disp_indirect_baseHi; 50262306a36Sopenharmony_ci uint32_t gds_backup_addrlo; 50362306a36Sopenharmony_ci uint32_t gds_backup_addrhi; 50462306a36Sopenharmony_ci uint32_t index_base_addrlo; 50562306a36Sopenharmony_ci uint32_t index_base_addrhi; 50662306a36Sopenharmony_ci uint32_t sample_cntl; 50762306a36Sopenharmony_ci}; /* Total of 27 DWORD */ 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_cistruct vi_gfx_meta_data { 51062306a36Sopenharmony_ci /* 4 DWORD, address must be 4KB aligned */ 51162306a36Sopenharmony_ci struct vi_ce_ib_state ce_payload; 51262306a36Sopenharmony_ci uint32_t reserved1[60]; 51362306a36Sopenharmony_ci /* 17 DWORD, address must be 64B aligned */ 51462306a36Sopenharmony_ci struct vi_de_ib_state de_payload; 51562306a36Sopenharmony_ci /* PFP IB base address which get pre-empted */ 51662306a36Sopenharmony_ci uint32_t DeIbBaseAddrLo; 51762306a36Sopenharmony_ci uint32_t DeIbBaseAddrHi; 51862306a36Sopenharmony_ci uint32_t reserved2[941]; 51962306a36Sopenharmony_ci}; /* Total of 4K Bytes */ 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_cistruct vi_gfx_meta_data_chained_ib { 52262306a36Sopenharmony_ci /* 10 DWORD, address must be 4KB aligned */ 52362306a36Sopenharmony_ci struct vi_ce_ib_state_chained_ib ce_payload; 52462306a36Sopenharmony_ci uint32_t reserved1[54]; 52562306a36Sopenharmony_ci /* 27 DWORD, address must be 64B aligned */ 52662306a36Sopenharmony_ci struct vi_de_ib_state_chained_ib de_payload; 52762306a36Sopenharmony_ci /* PFP IB base address which get pre-empted */ 52862306a36Sopenharmony_ci uint32_t DeIbBaseAddrLo; 52962306a36Sopenharmony_ci uint32_t DeIbBaseAddrHi; 53062306a36Sopenharmony_ci uint32_t reserved2[931]; 53162306a36Sopenharmony_ci}; /* Total of 4K Bytes */ 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci#endif /* VI_STRUCTS_H_ */ 534