33#ifndef __DEV_AMDGPU_PM4_QUEUES_HH__
34#define __DEV_AMDGPU_PM4_QUEUES_HH__
46typedef struct GEM5_PACKED
194typedef struct GEM5_PACKED
465 else q->
rptr += value;
472 else q->
rptr = value;
484 void ib(
bool value) {
_ib = value; }
Class defining a PM4 queue.
void processing(bool value)
PM4Queue(int id, QueueDesc *queue, Addr offset)
void setPkt(uint32_t me, uint32_t pipe, uint32_t queue, bool privileged)
void fastforwardRptr()
It seems that PM4 nop packets with count 0x3fff, not only do not consider the count value,...
PM4Queue(int id, QueueDesc *queue, Addr offset, PM4MapQueues *pkt)
Addr _wptr
Most important fields of a PM4 queue are stored in the queue descriptor (i.e., QueueDesc).
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
gem5::PrimaryQueue PrimaryQueue
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
struct gem5::GEM5_PACKED SDMAQueueDesc
Queue descriptor for SDMA-based user queues (RLC queues).
struct gem5::GEM5_PACKED QueueDesc
Queue descriptor with relevant MQD attributes.
uint32_t gds_save_mask_hi
uint32_t sdmax_rlcx_ib_base_lo
uint32_t sdmax_rlcx_rb_rptr
uint32_t mqd_base_addr_hi
uint32_t sdmax_rlcx_rb_wptr_poll_cntl
uint32_t sdmax_rlcx_ib_cntl
uint32_t cp_hqd_eop_done_events
uint32_t gds_save_base_addr_hi
uint32_t sdmax_rlcx_ib_sub_remain
uint32_t hqd_ib_base_addr_hi
uint32_t cp_mqd_save_end_time_hi
uint32_t cp_mqd_restore_start_time_hi
uint32_t mqd_base_addr_lo
uint32_t cp_hqd_aql_control
uint32_t sdmax_rlcx_preempt
uint32_t cp_hqd_eop_control
uint32_t sdmax_rlcx_rb_rptr_addr_hi
uint32_t cp_hqd_cntl_stack_offset
uint32_t cp_hqd_ctx_save_base_addr_lo
uint32_t hqd_queue_priority
uint32_t sdmax_rlcx_rb_cntl
uint32_t cp_hqd_dma_offload
uint32_t cp_hqd_atomic0_preop_lo
uint32_t sdmax_rlcx_skip_cntl
uint32_t hqd_pq_wptr_poll_addr_hi
uint32_t sdmax_rlcx_rb_base_hi
uint32_t sdmax_rlcx_doorbell_log
uint32_t cp_pq_exe_status_hi
uint32_t cp_hqd_atomic1_preop_hi
uint32_t cp_mqd_readindex_hi
uint32_t cp_packet_exe_status_lo
uint32_t sdmax_rlcx_rb_wptr_hi
uint32_t gds_cs_ctxsw_cnt2
uint32_t cp_mqd_readindex_lo
uint32_t sdmax_rlcx_ib_base_hi
uint32_t hqd_pq_wptr_poll_addr_lo
uint32_t cp_mqd_restore_end_time_hi
uint32_t sdmax_rlcx_rb_base
uint32_t cp_hqd_eop_base_addr_hi
uint32_t dynamic_cu_mask_addr_hi
uint32_t sdmax_rlcx_midcmd_data8
uint32_t sdmax_rlcx_midcmd_data0
uint32_t cp_hqd_atomic1_preop_lo
uint32_t hqd_persistent_state
uint32_t cp_hqd_atomic0_preop_hi
uint32_t cp_hqd_pq_wptr_lo
uint32_t sdmax_rlcx_status
uint32_t sdmax_rlcx_midcmd_data6
uint32_t ctx_save_base_addr_lo
uint32_t sdmax_rlcx_rb_aql_cntl
uint32_t sdmax_rlcx_watermark
uint32_t gds_cs_ctxsw_cnt1
uint32_t sdmax_rlcx_ib_rptr
uint32_t sdmax_rlcx_csa_addr_lo
uint32_t cp_mqd_restore_start_time_lo
uint32_t hqd_pipe_priority
uint32_t sdmax_rlcx_csa_addr_hi
uint32_t sdmax_rlcx_doorbell_offset
uint32_t cp_mqd_save_end_time_lo
uint32_t gds_cs_ctxsw_cnt0
uint32_t hqd_ib_base_addr_lo
uint32_t cp_hqd_gds_resource_state
uint32_t cp_hqd_eop_base_addr_lo
uint32_t cp_hqd_pq_wptr_hi
uint32_t gds_save_mask_lo
uint32_t hqd_pq_rptr_report_addr_hi
uint32_t sdmax_rlcx_midcmd_data3
uint32_t cp_packet_exe_status_hi
uint32_t sdmax_rlcx_rb_wptr_poll_addr_lo
uint32_t cp_hqd_wg_state_offset
uint32_t sdmax_rlcx_midcmd_data4
uint32_t sdmax_rlcx_midcmd_cntl
uint32_t cp_mqd_save_start_time_lo
uint32_t sdmax_rlcx_context_status
uint32_t cp_pq_exe_status_lo
uint32_t hqd_pq_rptr_report_addr_lo
uint32_t cp_hqd_hq_control1
uint32_t hqd_pq_doorbell_control
uint32_t sdmax_rlcx_rb_rptr_addr_lo
uint32_t cp_hqd_ctx_save_control
uint32_t sdmax_rlcx_doorbell
uint32_t sdmax_rlcx_rb_wptr
uint32_t cp_hqd_hq_status1
uint32_t ctx_save_base_addr_hi
uint32_t sdmax_rlcx_ib_size
uint32_t sdmax_rlcx_minor_ptr_update
uint32_t sdmax_rlcx_rb_rptr_hi
uint32_t cp_hqd_dequeue_request
uint32_t cp_hqd_hq_control0
uint32_t sdmax_rlcx_midcmd_data5
uint32_t gds_save_base_addr_lo
uint32_t sdmax_rlcx_dummy_reg
uint32_t sdmax_rlcx_ib_offset
uint32_t sdmax_rlcx_midcmd_data7
uint32_t sdmax_rlcx_rb_wptr_poll_addr_hi
uint32_t cp_hqd_cntl_stack_size
uint32_t gds_cs_ctxsw_cnt3
uint32_t cp_hqd_eop_wptr_mem
uint32_t cp_mqd_save_start_time_hi
uint32_t sdmax_rlcx_midcmd_data1
uint32_t dynamic_cu_mask_addr_lo
uint32_t cp_hqd_hq_status0
uint32_t cp_mqd_restore_end_time_lo
uint32_t sdmax_rlcx_midcmd_data2
uint32_t cp_hqd_ctx_save_size
uint32_t cp_hqd_ctx_save_base_addr_hi