mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-07 22:23:55 -05:00
fix am generations
This commit is contained in:
@@ -1,14 +1,15 @@
|
||||
from tinygrad.runtime.autogen import load, root
|
||||
|
||||
am_src="https://github.com/ROCm/ROCK-Kernel-Driver/archive/ceb12c04e2b5b53ec0779362831f5ee40c4921e4.tar.gz"
|
||||
args=["-include", "stdint.h"]
|
||||
AMD="{}/drivers/gpu/drm/amd"
|
||||
|
||||
def __getattr__(nm):
|
||||
match nm:
|
||||
case "am": return load("am/am", [], [root/f"extra/amdpci/headers/{s}.h" for s in ["v11_structs", "v12_structs", "amdgpu_vm", "discovery",
|
||||
"amdgpu_ucode", "psp_gfx_if", "amdgpu_psp", "amdgpu_irq", "amdgpu_doorbell"]]+[f"{AMD}/include/soc15_ih_clientid.h"], tarball=am_src)
|
||||
case "pm4_soc15": return load("am/pm4_soc15", [], [f"{AMD}/amdkfd/kfd_pm4_headers_ai.h", f"{AMD}/amdgpu/soc15d.h"], tarball=am_src)
|
||||
case "pm4_nv": return load("am/pm4_nv", [], [f"{AMD}/amdkfd/kfd_pm4_headers_ai.h", f"{AMD}/amdgpu/nvd.h"], tarball=am_src)
|
||||
"amdgpu_ucode", "psp_gfx_if", "amdgpu_psp", "amdgpu_irq", "amdgpu_doorbell"]]+[f"{AMD}/include/soc15_ih_clientid.h"], args=args, tarball=am_src)
|
||||
case "pm4_soc15": return load("am/pm4_soc15", [], [f"{AMD}/amdkfd/kfd_pm4_headers_ai.h", f"{AMD}/amdgpu/soc15d.h"], args=args, tarball=am_src)
|
||||
case "pm4_nv": return load("am/pm4_nv", [], [f"{AMD}/amdkfd/kfd_pm4_headers_ai.h", f"{AMD}/amdgpu/nvd.h"], args=args, tarball=am_src)
|
||||
case "sdma_4_0_0": return load("am/sdma_4_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}/amdgpu/vega10_sdma_pkt_open.h"],
|
||||
args=["-I/opt/rocm/include", "-x", "c++"], tarball=am_src),
|
||||
case "sdma_5_0_0": return load("am/sdma_5_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}/amdgpu/navi10_sdma_pkt_open.h"],
|
||||
@@ -16,7 +17,7 @@ def __getattr__(nm):
|
||||
case "sdma_6_0_0": return load("am/sdma_6_0_0", [], [root/"extra/hip_gpu_driver/sdma_registers.h", f"{AMD}//amdgpu/sdma_v6_0_0_pkt_open.h"],
|
||||
args=["-I/opt/rocm/include", "-x", "c++"], tarball=am_src),
|
||||
case "smu_v13_0_0": return load("am/smu_v13_0_0",[],[f"{AMD}/pm/swsmu/inc/pmfw_if/{s}.h" for s in ["smu_v13_0_0_ppsmc","smu13_driver_if_v13_0_0"]]
|
||||
+[root/"extra/amdpci/headers/amdgpu_smu.h"], tarball=am_src),
|
||||
+[root/"extra/amdpci/headers/amdgpu_smu.h"], args=args, tarball=am_src),
|
||||
case "smu_v14_0_2": return load("am/smu_v14_0_2", [], [f"{AMD}/pm/swsmu/inc/pmfw_if/{s}.h" for s in ["smu_v14_0_0_pmfw", "smu_v14_0_2_ppsmc",
|
||||
"smu14_driver_if_v14_0"]]+[root/"extra/amdpci/headers/amdgpu_smu.h"], tarball=am_src)
|
||||
"smu14_driver_if_v14_0"]]+[root/"extra/amdpci/headers/amdgpu_smu.h"], args=args, tarball=am_src)
|
||||
case _: raise AttributeError(f"no such autogen: {nm}")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,34 +3,193 @@ import ctypes
|
||||
from tinygrad.helpers import unwrap
|
||||
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
||||
class union_PM4_MES_TYPE_3_HEADER(ctypes.Union): pass
|
||||
class _anonstruct0(Struct): pass
|
||||
class union_PM4_MES_TYPE_3_HEADER_0(Struct): pass
|
||||
uint32_t = ctypes.c_uint32
|
||||
union_PM4_MES_TYPE_3_HEADER_0._fields_ = [
|
||||
('reserved1', uint32_t,8),
|
||||
('opcode', uint32_t,8),
|
||||
('count', uint32_t,14),
|
||||
('type', uint32_t,2),
|
||||
]
|
||||
union_PM4_MES_TYPE_3_HEADER._anonymous_ = ['_0']
|
||||
union_PM4_MES_TYPE_3_HEADER._fields_ = [
|
||||
('_0', union_PM4_MES_TYPE_3_HEADER_0),
|
||||
('u32All', uint32_t),
|
||||
]
|
||||
enum_mes_set_resources_queue_type_enum = CEnum(ctypes.c_uint32)
|
||||
queue_type__mes_set_resources__kernel_interface_queue_kiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__kernel_interface_queue_kiq', 0)
|
||||
queue_type__mes_set_resources__hsa_interface_queue_hiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_interface_queue_hiq', 1)
|
||||
queue_type__mes_set_resources__hsa_debug_interface_queue = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_debug_interface_queue', 4)
|
||||
|
||||
class struct_pm4_mes_set_resources(Struct): pass
|
||||
class _anonunion1(ctypes.Union): pass
|
||||
class _anonunion2(ctypes.Union): pass
|
||||
class _anonstruct3(Struct): pass
|
||||
class _anonunion4(ctypes.Union): pass
|
||||
class _anonstruct5(Struct): pass
|
||||
class _anonunion6(ctypes.Union): pass
|
||||
class _anonstruct7(Struct): pass
|
||||
class struct_pm4_mes_set_resources_0(ctypes.Union): pass
|
||||
struct_pm4_mes_set_resources_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_set_resources_1_bitfields2._fields_ = [
|
||||
('vmid_mask', uint32_t,16),
|
||||
('unmap_latency', uint32_t,8),
|
||||
('reserved1', uint32_t,5),
|
||||
('queue_type', enum_mes_set_resources_queue_type_enum,3),
|
||||
]
|
||||
struct_pm4_mes_set_resources_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_set_resources_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_2_bitfields7(Struct): pass
|
||||
struct_pm4_mes_set_resources_2_bitfields7._fields_ = [
|
||||
('oac_mask', uint32_t,16),
|
||||
('reserved2', uint32_t,16),
|
||||
]
|
||||
struct_pm4_mes_set_resources_2._fields_ = [
|
||||
('bitfields7', struct_pm4_mes_set_resources_2_bitfields7),
|
||||
('ordinal7', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_3(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_3_bitfields8(Struct): pass
|
||||
struct_pm4_mes_set_resources_3_bitfields8._fields_ = [
|
||||
('gds_heap_base', uint32_t,10),
|
||||
('reserved3', uint32_t,1),
|
||||
('gds_heap_size', uint32_t,10),
|
||||
('reserved4', uint32_t,11),
|
||||
]
|
||||
struct_pm4_mes_set_resources_3._fields_ = [
|
||||
('bitfields8', struct_pm4_mes_set_resources_3_bitfields8),
|
||||
('ordinal8', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_set_resources._anonymous_ = ['_0', '_1', '_2', '_3']
|
||||
struct_pm4_mes_set_resources._fields_ = [
|
||||
('_0', struct_pm4_mes_set_resources_0),
|
||||
('_1', struct_pm4_mes_set_resources_1),
|
||||
('queue_mask_lo', uint32_t),
|
||||
('queue_mask_hi', uint32_t),
|
||||
('gws_mask_lo', uint32_t),
|
||||
('gws_mask_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_set_resources_2),
|
||||
('_3', struct_pm4_mes_set_resources_3),
|
||||
]
|
||||
class struct_pm4_mes_runlist(Struct): pass
|
||||
class _anonunion8(ctypes.Union): pass
|
||||
class _anonunion9(ctypes.Union): pass
|
||||
class _anonstruct10(Struct): pass
|
||||
class _anonunion11(ctypes.Union): pass
|
||||
class _anonstruct12(Struct): pass
|
||||
class struct_pm4_mes_runlist_0(ctypes.Union): pass
|
||||
struct_pm4_mes_runlist_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_runlist_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_runlist_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_runlist_1_bitfields2._fields_ = [
|
||||
('reserved1', uint32_t,2),
|
||||
('ib_base_lo', uint32_t,30),
|
||||
]
|
||||
struct_pm4_mes_runlist_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_runlist_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_runlist_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_runlist_2_bitfields4(Struct): pass
|
||||
struct_pm4_mes_runlist_2_bitfields4._fields_ = [
|
||||
('ib_size', uint32_t,20),
|
||||
('chain', uint32_t,1),
|
||||
('offload_polling', uint32_t,1),
|
||||
('chained_runlist_idle_disable', uint32_t,1),
|
||||
('valid', uint32_t,1),
|
||||
('process_cnt', uint32_t,4),
|
||||
('reserved3', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_runlist_2._fields_ = [
|
||||
('bitfields4', struct_pm4_mes_runlist_2_bitfields4),
|
||||
('ordinal4', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_runlist._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_runlist._fields_ = [
|
||||
('_0', struct_pm4_mes_runlist_0),
|
||||
('_1', struct_pm4_mes_runlist_1),
|
||||
('ib_base_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_runlist_2),
|
||||
]
|
||||
class struct_pm4_mes_map_process(Struct): pass
|
||||
class _anonunion13(ctypes.Union): pass
|
||||
class _anonunion14(ctypes.Union): pass
|
||||
class _anonstruct15(Struct): pass
|
||||
class _anonunion16(ctypes.Union): pass
|
||||
class _anonstruct17(Struct): pass
|
||||
class struct_pm4_mes_map_process_0(ctypes.Union): pass
|
||||
struct_pm4_mes_map_process_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_process_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_process_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_map_process_1_bitfields2._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved1', uint32_t,1),
|
||||
('exec_cleaner_shader', uint32_t,1),
|
||||
('debug_vmid', uint32_t,4),
|
||||
('new_debug', uint32_t,1),
|
||||
('reserved2', uint32_t,1),
|
||||
('diq_enable', uint32_t,1),
|
||||
('process_quantum', uint32_t,7),
|
||||
]
|
||||
struct_pm4_mes_map_process_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_map_process_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_process_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_process_2_bitfields14(Struct): pass
|
||||
struct_pm4_mes_map_process_2_bitfields14._fields_ = [
|
||||
('num_gws', uint32_t,7),
|
||||
('sdma_enable', uint32_t,1),
|
||||
('num_oac', uint32_t,4),
|
||||
('gds_size_hi', uint32_t,4),
|
||||
('gds_size', uint32_t,6),
|
||||
('num_queues', uint32_t,10),
|
||||
]
|
||||
struct_pm4_mes_map_process_2._fields_ = [
|
||||
('bitfields14', struct_pm4_mes_map_process_2_bitfields14),
|
||||
('ordinal14', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_map_process._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_map_process._fields_ = [
|
||||
('_0', struct_pm4_mes_map_process_0),
|
||||
('_1', struct_pm4_mes_map_process_1),
|
||||
('vm_context_page_table_base_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_base_addr_hi32', uint32_t),
|
||||
('sh_mem_bases', uint32_t),
|
||||
('sh_mem_config', uint32_t),
|
||||
('sq_shader_tba_lo', uint32_t),
|
||||
('sq_shader_tba_hi', uint32_t),
|
||||
('sq_shader_tma_lo', uint32_t),
|
||||
('sq_shader_tma_hi', uint32_t),
|
||||
('reserved6', uint32_t),
|
||||
('gds_addr_lo', uint32_t),
|
||||
('gds_addr_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_map_process_2),
|
||||
('completion_signal_lo', uint32_t),
|
||||
('completion_signal_hi', uint32_t),
|
||||
]
|
||||
class struct_PM4_MES_MAP_PROCESS_VM(Struct): pass
|
||||
class _anonunion18(ctypes.Union): pass
|
||||
class struct_PM4_MES_MAP_PROCESS_VM_0(ctypes.Union): pass
|
||||
struct_PM4_MES_MAP_PROCESS_VM_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
struct_PM4_MES_MAP_PROCESS_VM._anonymous_ = ['_0']
|
||||
struct_PM4_MES_MAP_PROCESS_VM._fields_ = [
|
||||
('_0', struct_PM4_MES_MAP_PROCESS_VM_0),
|
||||
('reserved1', uint32_t),
|
||||
('vm_context_cntl', uint32_t),
|
||||
('reserved2', uint32_t),
|
||||
('vm_context_page_table_end_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_end_addr_hi32', uint32_t),
|
||||
('vm_context_page_table_start_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_start_addr_hi32', uint32_t),
|
||||
('reserved3', uint32_t),
|
||||
('reserved4', uint32_t),
|
||||
('reserved5', uint32_t),
|
||||
('reserved6', uint32_t),
|
||||
('reserved7', uint32_t),
|
||||
('reserved8', uint32_t),
|
||||
('completion_signal_lo32', uint32_t),
|
||||
('completion_signal_hi32', uint32_t),
|
||||
]
|
||||
enum_mes_map_queues_queue_sel_enum = CEnum(ctypes.c_uint32)
|
||||
queue_sel__mes_map_queues__map_to_specified_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', 0)
|
||||
queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi', 1)
|
||||
@@ -52,11 +211,51 @@ extended_engine_sel__mes_map_queues__sdma0_to_7_sel = enum_mes_map_queues_extend
|
||||
extended_engine_sel__mes_map_queues__sdma8_to_15_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma8_to_15_sel', 2)
|
||||
|
||||
class struct_pm4_mes_map_queues(Struct): pass
|
||||
class _anonunion19(ctypes.Union): pass
|
||||
class _anonunion20(ctypes.Union): pass
|
||||
class _anonstruct21(Struct): pass
|
||||
class _anonunion22(ctypes.Union): pass
|
||||
class _anonstruct23(Struct): pass
|
||||
class struct_pm4_mes_map_queues_0(ctypes.Union): pass
|
||||
struct_pm4_mes_map_queues_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_queues_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_queues_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_map_queues_1_bitfields2._fields_ = [
|
||||
('reserved1', uint32_t,2),
|
||||
('extended_engine_sel', enum_mes_map_queues_extended_engine_sel_enum,2),
|
||||
('queue_sel', enum_mes_map_queues_queue_sel_enum,2),
|
||||
('reserved5', uint32_t,6),
|
||||
('gws_control_queue', uint32_t,1),
|
||||
('reserved2', uint32_t,8),
|
||||
('queue_type', enum_mes_map_queues_queue_type_enum,3),
|
||||
('reserved3', uint32_t,2),
|
||||
('engine_sel', enum_mes_map_queues_engine_sel_enum,3),
|
||||
('num_queues', uint32_t,3),
|
||||
]
|
||||
struct_pm4_mes_map_queues_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_map_queues_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_queues_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_queues_2_bitfields3(Struct): pass
|
||||
struct_pm4_mes_map_queues_2_bitfields3._fields_ = [
|
||||
('reserved3', uint32_t,1),
|
||||
('check_disable', uint32_t,1),
|
||||
('doorbell_offset', uint32_t,26),
|
||||
('reserved4', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_map_queues_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mes_map_queues_2_bitfields3),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_map_queues._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_map_queues._fields_ = [
|
||||
('_0', struct_pm4_mes_map_queues_0),
|
||||
('_1', struct_pm4_mes_map_queues_1),
|
||||
('_2', struct_pm4_mes_map_queues_2),
|
||||
('mqd_addr_lo', uint32_t),
|
||||
('mqd_addr_hi', uint32_t),
|
||||
('wptr_addr_lo', uint32_t),
|
||||
('wptr_addr_hi', uint32_t),
|
||||
]
|
||||
enum_mes_query_status_interrupt_sel_enum = CEnum(ctypes.c_uint32)
|
||||
interrupt_sel__mes_query_status__completion_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__completion_status', 0)
|
||||
interrupt_sel__mes_query_status__process_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__process_status', 1)
|
||||
@@ -74,12 +273,50 @@ engine_sel__mes_query_status__sdma0_queue = enum_mes_query_status_engine_sel_enu
|
||||
engine_sel__mes_query_status__sdma1_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma1_queue', 3)
|
||||
|
||||
class struct_pm4_mes_query_status(Struct): pass
|
||||
class _anonunion24(ctypes.Union): pass
|
||||
class _anonunion25(ctypes.Union): pass
|
||||
class _anonstruct26(Struct): pass
|
||||
class _anonunion27(ctypes.Union): pass
|
||||
class _anonstruct28(Struct): pass
|
||||
class _anonstruct29(Struct): pass
|
||||
class struct_pm4_mes_query_status_0(ctypes.Union): pass
|
||||
struct_pm4_mes_query_status_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_query_status_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_query_status_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_query_status_1_bitfields2._fields_ = [
|
||||
('context_id', uint32_t,28),
|
||||
('interrupt_sel', enum_mes_query_status_interrupt_sel_enum,2),
|
||||
('command', enum_mes_query_status_command_enum,2),
|
||||
]
|
||||
struct_pm4_mes_query_status_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_query_status_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_query_status_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_query_status_2_bitfields3a(Struct): pass
|
||||
struct_pm4_mes_query_status_2_bitfields3a._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved1', uint32_t,16),
|
||||
]
|
||||
class struct_pm4_mes_query_status_2_bitfields3b(Struct): pass
|
||||
struct_pm4_mes_query_status_2_bitfields3b._fields_ = [
|
||||
('reserved2', uint32_t,2),
|
||||
('doorbell_offset', uint32_t,26),
|
||||
('engine_sel', enum_mes_query_status_engine_sel_enum,3),
|
||||
('reserved3', uint32_t,1),
|
||||
]
|
||||
struct_pm4_mes_query_status_2._fields_ = [
|
||||
('bitfields3a', struct_pm4_mes_query_status_2_bitfields3a),
|
||||
('bitfields3b', struct_pm4_mes_query_status_2_bitfields3b),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_query_status._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_query_status._fields_ = [
|
||||
('_0', struct_pm4_mes_query_status_0),
|
||||
('_1', struct_pm4_mes_query_status_1),
|
||||
('_2', struct_pm4_mes_query_status_2),
|
||||
('addr_lo', uint32_t),
|
||||
('addr_hi', uint32_t),
|
||||
('data_lo', uint32_t),
|
||||
('data_hi', uint32_t),
|
||||
]
|
||||
enum_mes_unmap_queues_action_enum = CEnum(ctypes.c_uint32)
|
||||
action__mes_unmap_queues__preempt_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__preempt_queues', 0)
|
||||
action__mes_unmap_queues__reset_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reset_queues', 1)
|
||||
@@ -102,18 +339,85 @@ extended_engine_sel__mes_unmap_queues__legacy_engine_sel = enum_mes_unmap_queues
|
||||
extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel', 1)
|
||||
|
||||
class struct_pm4_mes_unmap_queues(Struct): pass
|
||||
class _anonunion30(ctypes.Union): pass
|
||||
class _anonunion31(ctypes.Union): pass
|
||||
class _anonstruct32(Struct): pass
|
||||
class _anonunion33(ctypes.Union): pass
|
||||
class _anonstruct34(Struct): pass
|
||||
class _anonstruct35(Struct): pass
|
||||
class _anonunion36(ctypes.Union): pass
|
||||
class _anonstruct37(Struct): pass
|
||||
class _anonunion38(ctypes.Union): pass
|
||||
class _anonstruct39(Struct): pass
|
||||
class _anonunion40(ctypes.Union): pass
|
||||
class _anonstruct41(Struct): pass
|
||||
class struct_pm4_mes_unmap_queues_0(ctypes.Union): pass
|
||||
struct_pm4_mes_unmap_queues_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_1_bitfields2._fields_ = [
|
||||
('action', enum_mes_unmap_queues_action_enum,2),
|
||||
('extended_engine_sel', enum_mes_unmap_queues_extended_engine_sel_enum,2),
|
||||
('queue_sel', enum_mes_unmap_queues_queue_sel_enum,2),
|
||||
('reserved2', uint32_t,20),
|
||||
('engine_sel', enum_mes_unmap_queues_engine_sel_enum,3),
|
||||
('num_queues', uint32_t,3),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_unmap_queues_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_2_bitfields3a(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_2_bitfields3a._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved3', uint32_t,16),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_2_bitfields3b(Struct): pass
|
||||
int32_t = ctypes.c_int32
|
||||
struct_pm4_mes_unmap_queues_2_bitfields3b._fields_ = [
|
||||
('reserved4', uint32_t,2),
|
||||
('doorbell_offset0', uint32_t,26),
|
||||
('reserved5', int32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_2._fields_ = [
|
||||
('bitfields3a', struct_pm4_mes_unmap_queues_2_bitfields3a),
|
||||
('bitfields3b', struct_pm4_mes_unmap_queues_2_bitfields3b),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_3(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_3_bitfields4(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_3_bitfields4._fields_ = [
|
||||
('reserved6', uint32_t,2),
|
||||
('doorbell_offset1', uint32_t,26),
|
||||
('reserved7', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_3._fields_ = [
|
||||
('bitfields4', struct_pm4_mes_unmap_queues_3_bitfields4),
|
||||
('ordinal4', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_4(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_4_bitfields5(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_4_bitfields5._fields_ = [
|
||||
('reserved8', uint32_t,2),
|
||||
('doorbell_offset2', uint32_t,26),
|
||||
('reserved9', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_4._fields_ = [
|
||||
('bitfields5', struct_pm4_mes_unmap_queues_4_bitfields5),
|
||||
('ordinal5', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_5(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_5_bitfields6(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_5_bitfields6._fields_ = [
|
||||
('reserved10', uint32_t,2),
|
||||
('doorbell_offset3', uint32_t,26),
|
||||
('reserved11', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_5._fields_ = [
|
||||
('bitfields6', struct_pm4_mes_unmap_queues_5_bitfields6),
|
||||
('ordinal6', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues._anonymous_ = ['_0', '_1', '_2', '_3', '_4', '_5']
|
||||
struct_pm4_mes_unmap_queues._fields_ = [
|
||||
('_0', struct_pm4_mes_unmap_queues_0),
|
||||
('_1', struct_pm4_mes_unmap_queues_1),
|
||||
('_2', struct_pm4_mes_unmap_queues_2),
|
||||
('_3', struct_pm4_mes_unmap_queues_3),
|
||||
('_4', struct_pm4_mes_unmap_queues_4),
|
||||
('_5', struct_pm4_mes_unmap_queues_5),
|
||||
]
|
||||
enum_mec_release_mem_event_index_enum = CEnum(ctypes.c_uint32)
|
||||
event_index__mec_release_mem__end_of_pipe = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__end_of_pipe', 5)
|
||||
event_index__mec_release_mem__shader_done = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__shader_done', 6)
|
||||
@@ -150,18 +454,106 @@ data_sel__mec_release_mem__send_cp_perfcounter_hi_lo = enum_mec_release_mem_data
|
||||
data_sel__mec_release_mem__store_gds_data_to_memory = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__store_gds_data_to_memory', 5)
|
||||
|
||||
class struct_pm4_mec_release_mem(Struct): pass
|
||||
class _anonunion42(ctypes.Union): pass
|
||||
class _anonunion43(ctypes.Union): pass
|
||||
class _anonstruct44(Struct): pass
|
||||
class _anonunion45(ctypes.Union): pass
|
||||
class _anonstruct46(Struct): pass
|
||||
class _anonunion47(ctypes.Union): pass
|
||||
class _anonstruct48(Struct): pass
|
||||
class _anonstruct49(Struct): pass
|
||||
class _anonunion50(ctypes.Union): pass
|
||||
class _anonunion51(ctypes.Union): pass
|
||||
class _anonstruct52(Struct): pass
|
||||
class _anonunion53(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_0(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_1(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_1_bitfields2(Struct): pass
|
||||
struct_pm4_mec_release_mem_1_bitfields2._fields_ = [
|
||||
('event_type', ctypes.c_uint32,6),
|
||||
('reserved1', ctypes.c_uint32,2),
|
||||
('event_index', enum_mec_release_mem_event_index_enum,4),
|
||||
('tcl1_vol_action_ena', ctypes.c_uint32,1),
|
||||
('tc_vol_action_ena', ctypes.c_uint32,1),
|
||||
('reserved2', ctypes.c_uint32,1),
|
||||
('tc_wb_action_ena', ctypes.c_uint32,1),
|
||||
('tcl1_action_ena', ctypes.c_uint32,1),
|
||||
('tc_action_ena', ctypes.c_uint32,1),
|
||||
('reserved3', uint32_t,1),
|
||||
('tc_nc_action_ena', uint32_t,1),
|
||||
('tc_wc_action_ena', uint32_t,1),
|
||||
('tc_md_action_ena', uint32_t,1),
|
||||
('reserved4', uint32_t,3),
|
||||
('cache_policy', enum_mec_release_mem_cache_policy_enum,2),
|
||||
('reserved5', uint32_t,2),
|
||||
('pq_exe_status', enum_mec_release_mem_pq_exe_status_enum,1),
|
||||
('reserved6', uint32_t,2),
|
||||
]
|
||||
struct_pm4_mec_release_mem_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mec_release_mem_1_bitfields2),
|
||||
('ordinal2', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_2(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_2_bitfields3(Struct): pass
|
||||
struct_pm4_mec_release_mem_2_bitfields3._fields_ = [
|
||||
('reserved7', uint32_t,16),
|
||||
('dst_sel', enum_mec_release_mem_dst_sel_enum,2),
|
||||
('reserved8', uint32_t,6),
|
||||
('int_sel', enum_mec_release_mem_int_sel_enum,3),
|
||||
('reserved9', uint32_t,2),
|
||||
('data_sel', enum_mec_release_mem_data_sel_enum,3),
|
||||
]
|
||||
struct_pm4_mec_release_mem_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mec_release_mem_2_bitfields3),
|
||||
('ordinal3', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_3(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_3_bitfields4(Struct): pass
|
||||
struct_pm4_mec_release_mem_3_bitfields4._fields_ = [
|
||||
('reserved10', uint32_t,2),
|
||||
('address_lo_32b', ctypes.c_uint32,30),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_3_bitfields4b(Struct): pass
|
||||
struct_pm4_mec_release_mem_3_bitfields4b._fields_ = [
|
||||
('reserved11', uint32_t,3),
|
||||
('address_lo_64b', uint32_t,29),
|
||||
]
|
||||
struct_pm4_mec_release_mem_3._fields_ = [
|
||||
('bitfields4', struct_pm4_mec_release_mem_3_bitfields4),
|
||||
('bitfields4b', struct_pm4_mec_release_mem_3_bitfields4b),
|
||||
('reserved12', uint32_t),
|
||||
('ordinal4', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_4(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_4._fields_ = [
|
||||
('address_hi', uint32_t),
|
||||
('reserved13', uint32_t),
|
||||
('ordinal5', uint32_t),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_5(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_5_bitfields6c(Struct): pass
|
||||
struct_pm4_mec_release_mem_5_bitfields6c._fields_ = [
|
||||
('dw_offset', uint32_t,16),
|
||||
('num_dwords', uint32_t,16),
|
||||
]
|
||||
struct_pm4_mec_release_mem_5._fields_ = [
|
||||
('data_lo', uint32_t),
|
||||
('cmp_data_lo', uint32_t),
|
||||
('bitfields6c', struct_pm4_mec_release_mem_5_bitfields6c),
|
||||
('reserved14', uint32_t),
|
||||
('ordinal6', uint32_t),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_6(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_6._fields_ = [
|
||||
('data_hi', uint32_t),
|
||||
('cmp_data_hi', uint32_t),
|
||||
('reserved15', uint32_t),
|
||||
('reserved16', uint32_t),
|
||||
('ordinal7', uint32_t),
|
||||
]
|
||||
struct_pm4_mec_release_mem._anonymous_ = ['_0', '_1', '_2', '_3', '_4', '_5', '_6']
|
||||
struct_pm4_mec_release_mem._fields_ = [
|
||||
('_0', struct_pm4_mec_release_mem_0),
|
||||
('_1', struct_pm4_mec_release_mem_1),
|
||||
('_2', struct_pm4_mec_release_mem_2),
|
||||
('_3', struct_pm4_mec_release_mem_3),
|
||||
('_4', struct_pm4_mec_release_mem_4),
|
||||
('_5', struct_pm4_mec_release_mem_5),
|
||||
('_6', struct_pm4_mec_release_mem_6),
|
||||
('int_ctxid', uint32_t),
|
||||
]
|
||||
enum_WRITE_DATA_dst_sel_enum = CEnum(ctypes.c_uint32)
|
||||
dst_sel___write_data__mem_mapped_register = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__mem_mapped_register', 0)
|
||||
dst_sel___write_data__tc_l2 = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__tc_l2', 2)
|
||||
@@ -182,10 +574,14 @@ cache_policy___write_data__lru = enum_WRITE_DATA_cache_policy_enum.define('cache
|
||||
cache_policy___write_data__stream = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__stream', 1)
|
||||
|
||||
class struct_pm4_mec_write_data_mmio(Struct): pass
|
||||
class _anonunion54(ctypes.Union): pass
|
||||
class _anonunion55(ctypes.Union): pass
|
||||
class _anonunion55_bitfields2(Struct): pass
|
||||
_anonunion55_bitfields2._fields_ = [
|
||||
class struct_pm4_mec_write_data_mmio_0(ctypes.Union): pass
|
||||
struct_pm4_mec_write_data_mmio_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_write_data_mmio_1(ctypes.Union): pass
|
||||
class struct_pm4_mec_write_data_mmio_1_bitfields2(Struct): pass
|
||||
struct_pm4_mec_write_data_mmio_1_bitfields2._fields_ = [
|
||||
('reserved1', ctypes.c_uint32,8),
|
||||
('dst_sel', ctypes.c_uint32,4),
|
||||
('reserved2', ctypes.c_uint32,4),
|
||||
@@ -197,22 +593,30 @@ _anonunion55_bitfields2._fields_ = [
|
||||
('cache_policy', ctypes.c_uint32,2),
|
||||
('reserved5', ctypes.c_uint32,5),
|
||||
]
|
||||
_anonunion55._fields_ = [
|
||||
('bitfields2', _anonunion55_bitfields2),
|
||||
struct_pm4_mec_write_data_mmio_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mec_write_data_mmio_1_bitfields2),
|
||||
('ordinal2', ctypes.c_uint32),
|
||||
]
|
||||
class _anonunion56(ctypes.Union): pass
|
||||
class _anonunion56_bitfields3(Struct): pass
|
||||
_anonunion56_bitfields3._fields_ = [
|
||||
class struct_pm4_mec_write_data_mmio_2(ctypes.Union): pass
|
||||
class struct_pm4_mec_write_data_mmio_2_bitfields3(Struct): pass
|
||||
struct_pm4_mec_write_data_mmio_2_bitfields3._fields_ = [
|
||||
('dst_mmreg_addr', ctypes.c_uint32,18),
|
||||
('reserved6', ctypes.c_uint32,14),
|
||||
]
|
||||
_anonunion56._fields_ = [
|
||||
('bitfields3', _anonunion56_bitfields3),
|
||||
struct_pm4_mec_write_data_mmio_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mec_write_data_mmio_2_bitfields3),
|
||||
('ordinal3', ctypes.c_uint32),
|
||||
]
|
||||
_anonenum57 = CEnum(ctypes.c_uint32)
|
||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum57.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
||||
struct_pm4_mec_write_data_mmio._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mec_write_data_mmio._fields_ = [
|
||||
('_0', struct_pm4_mec_write_data_mmio_0),
|
||||
('_1', struct_pm4_mec_write_data_mmio_1),
|
||||
('_2', struct_pm4_mec_write_data_mmio_2),
|
||||
('reserved7', uint32_t),
|
||||
('data', uint32_t),
|
||||
]
|
||||
_anonenum0 = CEnum(ctypes.c_uint32)
|
||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum0.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
||||
|
||||
PACKET_TYPE0 = 0
|
||||
PACKET_TYPE1 = 1
|
||||
|
||||
@@ -3,34 +3,193 @@ import ctypes
|
||||
from tinygrad.helpers import unwrap
|
||||
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
||||
class union_PM4_MES_TYPE_3_HEADER(ctypes.Union): pass
|
||||
class _anonstruct0(Struct): pass
|
||||
class union_PM4_MES_TYPE_3_HEADER_0(Struct): pass
|
||||
uint32_t = ctypes.c_uint32
|
||||
union_PM4_MES_TYPE_3_HEADER_0._fields_ = [
|
||||
('reserved1', uint32_t,8),
|
||||
('opcode', uint32_t,8),
|
||||
('count', uint32_t,14),
|
||||
('type', uint32_t,2),
|
||||
]
|
||||
union_PM4_MES_TYPE_3_HEADER._anonymous_ = ['_0']
|
||||
union_PM4_MES_TYPE_3_HEADER._fields_ = [
|
||||
('_0', union_PM4_MES_TYPE_3_HEADER_0),
|
||||
('u32All', uint32_t),
|
||||
]
|
||||
enum_mes_set_resources_queue_type_enum = CEnum(ctypes.c_uint32)
|
||||
queue_type__mes_set_resources__kernel_interface_queue_kiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__kernel_interface_queue_kiq', 0)
|
||||
queue_type__mes_set_resources__hsa_interface_queue_hiq = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_interface_queue_hiq', 1)
|
||||
queue_type__mes_set_resources__hsa_debug_interface_queue = enum_mes_set_resources_queue_type_enum.define('queue_type__mes_set_resources__hsa_debug_interface_queue', 4)
|
||||
|
||||
class struct_pm4_mes_set_resources(Struct): pass
|
||||
class _anonunion1(ctypes.Union): pass
|
||||
class _anonunion2(ctypes.Union): pass
|
||||
class _anonstruct3(Struct): pass
|
||||
class _anonunion4(ctypes.Union): pass
|
||||
class _anonstruct5(Struct): pass
|
||||
class _anonunion6(ctypes.Union): pass
|
||||
class _anonstruct7(Struct): pass
|
||||
class struct_pm4_mes_set_resources_0(ctypes.Union): pass
|
||||
struct_pm4_mes_set_resources_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_set_resources_1_bitfields2._fields_ = [
|
||||
('vmid_mask', uint32_t,16),
|
||||
('unmap_latency', uint32_t,8),
|
||||
('reserved1', uint32_t,5),
|
||||
('queue_type', enum_mes_set_resources_queue_type_enum,3),
|
||||
]
|
||||
struct_pm4_mes_set_resources_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_set_resources_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_2_bitfields7(Struct): pass
|
||||
struct_pm4_mes_set_resources_2_bitfields7._fields_ = [
|
||||
('oac_mask', uint32_t,16),
|
||||
('reserved2', uint32_t,16),
|
||||
]
|
||||
struct_pm4_mes_set_resources_2._fields_ = [
|
||||
('bitfields7', struct_pm4_mes_set_resources_2_bitfields7),
|
||||
('ordinal7', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_set_resources_3(ctypes.Union): pass
|
||||
class struct_pm4_mes_set_resources_3_bitfields8(Struct): pass
|
||||
struct_pm4_mes_set_resources_3_bitfields8._fields_ = [
|
||||
('gds_heap_base', uint32_t,10),
|
||||
('reserved3', uint32_t,1),
|
||||
('gds_heap_size', uint32_t,10),
|
||||
('reserved4', uint32_t,11),
|
||||
]
|
||||
struct_pm4_mes_set_resources_3._fields_ = [
|
||||
('bitfields8', struct_pm4_mes_set_resources_3_bitfields8),
|
||||
('ordinal8', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_set_resources._anonymous_ = ['_0', '_1', '_2', '_3']
|
||||
struct_pm4_mes_set_resources._fields_ = [
|
||||
('_0', struct_pm4_mes_set_resources_0),
|
||||
('_1', struct_pm4_mes_set_resources_1),
|
||||
('queue_mask_lo', uint32_t),
|
||||
('queue_mask_hi', uint32_t),
|
||||
('gws_mask_lo', uint32_t),
|
||||
('gws_mask_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_set_resources_2),
|
||||
('_3', struct_pm4_mes_set_resources_3),
|
||||
]
|
||||
class struct_pm4_mes_runlist(Struct): pass
|
||||
class _anonunion8(ctypes.Union): pass
|
||||
class _anonunion9(ctypes.Union): pass
|
||||
class _anonstruct10(Struct): pass
|
||||
class _anonunion11(ctypes.Union): pass
|
||||
class _anonstruct12(Struct): pass
|
||||
class struct_pm4_mes_runlist_0(ctypes.Union): pass
|
||||
struct_pm4_mes_runlist_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_runlist_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_runlist_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_runlist_1_bitfields2._fields_ = [
|
||||
('reserved1', uint32_t,2),
|
||||
('ib_base_lo', uint32_t,30),
|
||||
]
|
||||
struct_pm4_mes_runlist_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_runlist_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_runlist_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_runlist_2_bitfields4(Struct): pass
|
||||
struct_pm4_mes_runlist_2_bitfields4._fields_ = [
|
||||
('ib_size', uint32_t,20),
|
||||
('chain', uint32_t,1),
|
||||
('offload_polling', uint32_t,1),
|
||||
('chained_runlist_idle_disable', uint32_t,1),
|
||||
('valid', uint32_t,1),
|
||||
('process_cnt', uint32_t,4),
|
||||
('reserved3', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_runlist_2._fields_ = [
|
||||
('bitfields4', struct_pm4_mes_runlist_2_bitfields4),
|
||||
('ordinal4', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_runlist._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_runlist._fields_ = [
|
||||
('_0', struct_pm4_mes_runlist_0),
|
||||
('_1', struct_pm4_mes_runlist_1),
|
||||
('ib_base_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_runlist_2),
|
||||
]
|
||||
class struct_pm4_mes_map_process(Struct): pass
|
||||
class _anonunion13(ctypes.Union): pass
|
||||
class _anonunion14(ctypes.Union): pass
|
||||
class _anonstruct15(Struct): pass
|
||||
class _anonunion16(ctypes.Union): pass
|
||||
class _anonstruct17(Struct): pass
|
||||
class struct_pm4_mes_map_process_0(ctypes.Union): pass
|
||||
struct_pm4_mes_map_process_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_process_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_process_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_map_process_1_bitfields2._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved1', uint32_t,1),
|
||||
('exec_cleaner_shader', uint32_t,1),
|
||||
('debug_vmid', uint32_t,4),
|
||||
('new_debug', uint32_t,1),
|
||||
('reserved2', uint32_t,1),
|
||||
('diq_enable', uint32_t,1),
|
||||
('process_quantum', uint32_t,7),
|
||||
]
|
||||
struct_pm4_mes_map_process_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_map_process_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_process_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_process_2_bitfields14(Struct): pass
|
||||
struct_pm4_mes_map_process_2_bitfields14._fields_ = [
|
||||
('num_gws', uint32_t,7),
|
||||
('sdma_enable', uint32_t,1),
|
||||
('num_oac', uint32_t,4),
|
||||
('gds_size_hi', uint32_t,4),
|
||||
('gds_size', uint32_t,6),
|
||||
('num_queues', uint32_t,10),
|
||||
]
|
||||
struct_pm4_mes_map_process_2._fields_ = [
|
||||
('bitfields14', struct_pm4_mes_map_process_2_bitfields14),
|
||||
('ordinal14', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_map_process._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_map_process._fields_ = [
|
||||
('_0', struct_pm4_mes_map_process_0),
|
||||
('_1', struct_pm4_mes_map_process_1),
|
||||
('vm_context_page_table_base_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_base_addr_hi32', uint32_t),
|
||||
('sh_mem_bases', uint32_t),
|
||||
('sh_mem_config', uint32_t),
|
||||
('sq_shader_tba_lo', uint32_t),
|
||||
('sq_shader_tba_hi', uint32_t),
|
||||
('sq_shader_tma_lo', uint32_t),
|
||||
('sq_shader_tma_hi', uint32_t),
|
||||
('reserved6', uint32_t),
|
||||
('gds_addr_lo', uint32_t),
|
||||
('gds_addr_hi', uint32_t),
|
||||
('_2', struct_pm4_mes_map_process_2),
|
||||
('completion_signal_lo', uint32_t),
|
||||
('completion_signal_hi', uint32_t),
|
||||
]
|
||||
class struct_PM4_MES_MAP_PROCESS_VM(Struct): pass
|
||||
class _anonunion18(ctypes.Union): pass
|
||||
class struct_PM4_MES_MAP_PROCESS_VM_0(ctypes.Union): pass
|
||||
struct_PM4_MES_MAP_PROCESS_VM_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
struct_PM4_MES_MAP_PROCESS_VM._anonymous_ = ['_0']
|
||||
struct_PM4_MES_MAP_PROCESS_VM._fields_ = [
|
||||
('_0', struct_PM4_MES_MAP_PROCESS_VM_0),
|
||||
('reserved1', uint32_t),
|
||||
('vm_context_cntl', uint32_t),
|
||||
('reserved2', uint32_t),
|
||||
('vm_context_page_table_end_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_end_addr_hi32', uint32_t),
|
||||
('vm_context_page_table_start_addr_lo32', uint32_t),
|
||||
('vm_context_page_table_start_addr_hi32', uint32_t),
|
||||
('reserved3', uint32_t),
|
||||
('reserved4', uint32_t),
|
||||
('reserved5', uint32_t),
|
||||
('reserved6', uint32_t),
|
||||
('reserved7', uint32_t),
|
||||
('reserved8', uint32_t),
|
||||
('completion_signal_lo32', uint32_t),
|
||||
('completion_signal_hi32', uint32_t),
|
||||
]
|
||||
enum_mes_map_queues_queue_sel_enum = CEnum(ctypes.c_uint32)
|
||||
queue_sel__mes_map_queues__map_to_specified_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_specified_queue_slots_vi', 0)
|
||||
queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi = enum_mes_map_queues_queue_sel_enum.define('queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi', 1)
|
||||
@@ -52,11 +211,51 @@ extended_engine_sel__mes_map_queues__sdma0_to_7_sel = enum_mes_map_queues_extend
|
||||
extended_engine_sel__mes_map_queues__sdma8_to_15_sel = enum_mes_map_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_map_queues__sdma8_to_15_sel', 2)
|
||||
|
||||
class struct_pm4_mes_map_queues(Struct): pass
|
||||
class _anonunion19(ctypes.Union): pass
|
||||
class _anonunion20(ctypes.Union): pass
|
||||
class _anonstruct21(Struct): pass
|
||||
class _anonunion22(ctypes.Union): pass
|
||||
class _anonstruct23(Struct): pass
|
||||
class struct_pm4_mes_map_queues_0(ctypes.Union): pass
|
||||
struct_pm4_mes_map_queues_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_queues_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_queues_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_map_queues_1_bitfields2._fields_ = [
|
||||
('reserved1', uint32_t,2),
|
||||
('extended_engine_sel', enum_mes_map_queues_extended_engine_sel_enum,2),
|
||||
('queue_sel', enum_mes_map_queues_queue_sel_enum,2),
|
||||
('reserved5', uint32_t,6),
|
||||
('gws_control_queue', uint32_t,1),
|
||||
('reserved2', uint32_t,8),
|
||||
('queue_type', enum_mes_map_queues_queue_type_enum,3),
|
||||
('reserved3', uint32_t,2),
|
||||
('engine_sel', enum_mes_map_queues_engine_sel_enum,3),
|
||||
('num_queues', uint32_t,3),
|
||||
]
|
||||
struct_pm4_mes_map_queues_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_map_queues_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_map_queues_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_map_queues_2_bitfields3(Struct): pass
|
||||
struct_pm4_mes_map_queues_2_bitfields3._fields_ = [
|
||||
('reserved3', uint32_t,1),
|
||||
('check_disable', uint32_t,1),
|
||||
('doorbell_offset', uint32_t,26),
|
||||
('reserved4', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_map_queues_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mes_map_queues_2_bitfields3),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_map_queues._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_map_queues._fields_ = [
|
||||
('_0', struct_pm4_mes_map_queues_0),
|
||||
('_1', struct_pm4_mes_map_queues_1),
|
||||
('_2', struct_pm4_mes_map_queues_2),
|
||||
('mqd_addr_lo', uint32_t),
|
||||
('mqd_addr_hi', uint32_t),
|
||||
('wptr_addr_lo', uint32_t),
|
||||
('wptr_addr_hi', uint32_t),
|
||||
]
|
||||
enum_mes_query_status_interrupt_sel_enum = CEnum(ctypes.c_uint32)
|
||||
interrupt_sel__mes_query_status__completion_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__completion_status', 0)
|
||||
interrupt_sel__mes_query_status__process_status = enum_mes_query_status_interrupt_sel_enum.define('interrupt_sel__mes_query_status__process_status', 1)
|
||||
@@ -74,12 +273,50 @@ engine_sel__mes_query_status__sdma0_queue = enum_mes_query_status_engine_sel_enu
|
||||
engine_sel__mes_query_status__sdma1_queue = enum_mes_query_status_engine_sel_enum.define('engine_sel__mes_query_status__sdma1_queue', 3)
|
||||
|
||||
class struct_pm4_mes_query_status(Struct): pass
|
||||
class _anonunion24(ctypes.Union): pass
|
||||
class _anonunion25(ctypes.Union): pass
|
||||
class _anonstruct26(Struct): pass
|
||||
class _anonunion27(ctypes.Union): pass
|
||||
class _anonstruct28(Struct): pass
|
||||
class _anonstruct29(Struct): pass
|
||||
class struct_pm4_mes_query_status_0(ctypes.Union): pass
|
||||
struct_pm4_mes_query_status_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_query_status_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_query_status_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_query_status_1_bitfields2._fields_ = [
|
||||
('context_id', uint32_t,28),
|
||||
('interrupt_sel', enum_mes_query_status_interrupt_sel_enum,2),
|
||||
('command', enum_mes_query_status_command_enum,2),
|
||||
]
|
||||
struct_pm4_mes_query_status_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_query_status_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_query_status_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_query_status_2_bitfields3a(Struct): pass
|
||||
struct_pm4_mes_query_status_2_bitfields3a._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved1', uint32_t,16),
|
||||
]
|
||||
class struct_pm4_mes_query_status_2_bitfields3b(Struct): pass
|
||||
struct_pm4_mes_query_status_2_bitfields3b._fields_ = [
|
||||
('reserved2', uint32_t,2),
|
||||
('doorbell_offset', uint32_t,26),
|
||||
('engine_sel', enum_mes_query_status_engine_sel_enum,3),
|
||||
('reserved3', uint32_t,1),
|
||||
]
|
||||
struct_pm4_mes_query_status_2._fields_ = [
|
||||
('bitfields3a', struct_pm4_mes_query_status_2_bitfields3a),
|
||||
('bitfields3b', struct_pm4_mes_query_status_2_bitfields3b),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_query_status._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mes_query_status._fields_ = [
|
||||
('_0', struct_pm4_mes_query_status_0),
|
||||
('_1', struct_pm4_mes_query_status_1),
|
||||
('_2', struct_pm4_mes_query_status_2),
|
||||
('addr_lo', uint32_t),
|
||||
('addr_hi', uint32_t),
|
||||
('data_lo', uint32_t),
|
||||
('data_hi', uint32_t),
|
||||
]
|
||||
enum_mes_unmap_queues_action_enum = CEnum(ctypes.c_uint32)
|
||||
action__mes_unmap_queues__preempt_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__preempt_queues', 0)
|
||||
action__mes_unmap_queues__reset_queues = enum_mes_unmap_queues_action_enum.define('action__mes_unmap_queues__reset_queues', 1)
|
||||
@@ -102,18 +339,85 @@ extended_engine_sel__mes_unmap_queues__legacy_engine_sel = enum_mes_unmap_queues
|
||||
extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel = enum_mes_unmap_queues_extended_engine_sel_enum.define('extended_engine_sel__mes_unmap_queues__sdma0_to_7_sel', 1)
|
||||
|
||||
class struct_pm4_mes_unmap_queues(Struct): pass
|
||||
class _anonunion30(ctypes.Union): pass
|
||||
class _anonunion31(ctypes.Union): pass
|
||||
class _anonstruct32(Struct): pass
|
||||
class _anonunion33(ctypes.Union): pass
|
||||
class _anonstruct34(Struct): pass
|
||||
class _anonstruct35(Struct): pass
|
||||
class _anonunion36(ctypes.Union): pass
|
||||
class _anonstruct37(Struct): pass
|
||||
class _anonunion38(ctypes.Union): pass
|
||||
class _anonstruct39(Struct): pass
|
||||
class _anonunion40(ctypes.Union): pass
|
||||
class _anonstruct41(Struct): pass
|
||||
class struct_pm4_mes_unmap_queues_0(ctypes.Union): pass
|
||||
struct_pm4_mes_unmap_queues_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_1(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_1_bitfields2(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_1_bitfields2._fields_ = [
|
||||
('action', enum_mes_unmap_queues_action_enum,2),
|
||||
('extended_engine_sel', enum_mes_unmap_queues_extended_engine_sel_enum,2),
|
||||
('queue_sel', enum_mes_unmap_queues_queue_sel_enum,2),
|
||||
('reserved2', uint32_t,20),
|
||||
('engine_sel', enum_mes_unmap_queues_engine_sel_enum,3),
|
||||
('num_queues', uint32_t,3),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mes_unmap_queues_1_bitfields2),
|
||||
('ordinal2', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_2(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_2_bitfields3a(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_2_bitfields3a._fields_ = [
|
||||
('pasid', uint32_t,16),
|
||||
('reserved3', uint32_t,16),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_2_bitfields3b(Struct): pass
|
||||
int32_t = ctypes.c_int32
|
||||
struct_pm4_mes_unmap_queues_2_bitfields3b._fields_ = [
|
||||
('reserved4', uint32_t,2),
|
||||
('doorbell_offset0', uint32_t,26),
|
||||
('reserved5', int32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_2._fields_ = [
|
||||
('bitfields3a', struct_pm4_mes_unmap_queues_2_bitfields3a),
|
||||
('bitfields3b', struct_pm4_mes_unmap_queues_2_bitfields3b),
|
||||
('ordinal3', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_3(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_3_bitfields4(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_3_bitfields4._fields_ = [
|
||||
('reserved6', uint32_t,2),
|
||||
('doorbell_offset1', uint32_t,26),
|
||||
('reserved7', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_3._fields_ = [
|
||||
('bitfields4', struct_pm4_mes_unmap_queues_3_bitfields4),
|
||||
('ordinal4', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_4(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_4_bitfields5(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_4_bitfields5._fields_ = [
|
||||
('reserved8', uint32_t,2),
|
||||
('doorbell_offset2', uint32_t,26),
|
||||
('reserved9', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_4._fields_ = [
|
||||
('bitfields5', struct_pm4_mes_unmap_queues_4_bitfields5),
|
||||
('ordinal5', uint32_t),
|
||||
]
|
||||
class struct_pm4_mes_unmap_queues_5(ctypes.Union): pass
|
||||
class struct_pm4_mes_unmap_queues_5_bitfields6(Struct): pass
|
||||
struct_pm4_mes_unmap_queues_5_bitfields6._fields_ = [
|
||||
('reserved10', uint32_t,2),
|
||||
('doorbell_offset3', uint32_t,26),
|
||||
('reserved11', uint32_t,4),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues_5._fields_ = [
|
||||
('bitfields6', struct_pm4_mes_unmap_queues_5_bitfields6),
|
||||
('ordinal6', uint32_t),
|
||||
]
|
||||
struct_pm4_mes_unmap_queues._anonymous_ = ['_0', '_1', '_2', '_3', '_4', '_5']
|
||||
struct_pm4_mes_unmap_queues._fields_ = [
|
||||
('_0', struct_pm4_mes_unmap_queues_0),
|
||||
('_1', struct_pm4_mes_unmap_queues_1),
|
||||
('_2', struct_pm4_mes_unmap_queues_2),
|
||||
('_3', struct_pm4_mes_unmap_queues_3),
|
||||
('_4', struct_pm4_mes_unmap_queues_4),
|
||||
('_5', struct_pm4_mes_unmap_queues_5),
|
||||
]
|
||||
enum_mec_release_mem_event_index_enum = CEnum(ctypes.c_uint32)
|
||||
event_index__mec_release_mem__end_of_pipe = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__end_of_pipe', 5)
|
||||
event_index__mec_release_mem__shader_done = enum_mec_release_mem_event_index_enum.define('event_index__mec_release_mem__shader_done', 6)
|
||||
@@ -150,18 +454,106 @@ data_sel__mec_release_mem__send_cp_perfcounter_hi_lo = enum_mec_release_mem_data
|
||||
data_sel__mec_release_mem__store_gds_data_to_memory = enum_mec_release_mem_data_sel_enum.define('data_sel__mec_release_mem__store_gds_data_to_memory', 5)
|
||||
|
||||
class struct_pm4_mec_release_mem(Struct): pass
|
||||
class _anonunion42(ctypes.Union): pass
|
||||
class _anonunion43(ctypes.Union): pass
|
||||
class _anonstruct44(Struct): pass
|
||||
class _anonunion45(ctypes.Union): pass
|
||||
class _anonstruct46(Struct): pass
|
||||
class _anonunion47(ctypes.Union): pass
|
||||
class _anonstruct48(Struct): pass
|
||||
class _anonstruct49(Struct): pass
|
||||
class _anonunion50(ctypes.Union): pass
|
||||
class _anonunion51(ctypes.Union): pass
|
||||
class _anonstruct52(Struct): pass
|
||||
class _anonunion53(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_0(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_1(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_1_bitfields2(Struct): pass
|
||||
struct_pm4_mec_release_mem_1_bitfields2._fields_ = [
|
||||
('event_type', ctypes.c_uint32,6),
|
||||
('reserved1', ctypes.c_uint32,2),
|
||||
('event_index', enum_mec_release_mem_event_index_enum,4),
|
||||
('tcl1_vol_action_ena', ctypes.c_uint32,1),
|
||||
('tc_vol_action_ena', ctypes.c_uint32,1),
|
||||
('reserved2', ctypes.c_uint32,1),
|
||||
('tc_wb_action_ena', ctypes.c_uint32,1),
|
||||
('tcl1_action_ena', ctypes.c_uint32,1),
|
||||
('tc_action_ena', ctypes.c_uint32,1),
|
||||
('reserved3', uint32_t,1),
|
||||
('tc_nc_action_ena', uint32_t,1),
|
||||
('tc_wc_action_ena', uint32_t,1),
|
||||
('tc_md_action_ena', uint32_t,1),
|
||||
('reserved4', uint32_t,3),
|
||||
('cache_policy', enum_mec_release_mem_cache_policy_enum,2),
|
||||
('reserved5', uint32_t,2),
|
||||
('pq_exe_status', enum_mec_release_mem_pq_exe_status_enum,1),
|
||||
('reserved6', uint32_t,2),
|
||||
]
|
||||
struct_pm4_mec_release_mem_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mec_release_mem_1_bitfields2),
|
||||
('ordinal2', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_2(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_2_bitfields3(Struct): pass
|
||||
struct_pm4_mec_release_mem_2_bitfields3._fields_ = [
|
||||
('reserved7', uint32_t,16),
|
||||
('dst_sel', enum_mec_release_mem_dst_sel_enum,2),
|
||||
('reserved8', uint32_t,6),
|
||||
('int_sel', enum_mec_release_mem_int_sel_enum,3),
|
||||
('reserved9', uint32_t,2),
|
||||
('data_sel', enum_mec_release_mem_data_sel_enum,3),
|
||||
]
|
||||
struct_pm4_mec_release_mem_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mec_release_mem_2_bitfields3),
|
||||
('ordinal3', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_3(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_3_bitfields4(Struct): pass
|
||||
struct_pm4_mec_release_mem_3_bitfields4._fields_ = [
|
||||
('reserved10', uint32_t,2),
|
||||
('address_lo_32b', ctypes.c_uint32,30),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_3_bitfields4b(Struct): pass
|
||||
struct_pm4_mec_release_mem_3_bitfields4b._fields_ = [
|
||||
('reserved11', uint32_t,3),
|
||||
('address_lo_64b', uint32_t,29),
|
||||
]
|
||||
struct_pm4_mec_release_mem_3._fields_ = [
|
||||
('bitfields4', struct_pm4_mec_release_mem_3_bitfields4),
|
||||
('bitfields4b', struct_pm4_mec_release_mem_3_bitfields4b),
|
||||
('reserved12', uint32_t),
|
||||
('ordinal4', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_4(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_4._fields_ = [
|
||||
('address_hi', uint32_t),
|
||||
('reserved13', uint32_t),
|
||||
('ordinal5', uint32_t),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_5(ctypes.Union): pass
|
||||
class struct_pm4_mec_release_mem_5_bitfields6c(Struct): pass
|
||||
struct_pm4_mec_release_mem_5_bitfields6c._fields_ = [
|
||||
('dw_offset', uint32_t,16),
|
||||
('num_dwords', uint32_t,16),
|
||||
]
|
||||
struct_pm4_mec_release_mem_5._fields_ = [
|
||||
('data_lo', uint32_t),
|
||||
('cmp_data_lo', uint32_t),
|
||||
('bitfields6c', struct_pm4_mec_release_mem_5_bitfields6c),
|
||||
('reserved14', uint32_t),
|
||||
('ordinal6', uint32_t),
|
||||
]
|
||||
class struct_pm4_mec_release_mem_6(ctypes.Union): pass
|
||||
struct_pm4_mec_release_mem_6._fields_ = [
|
||||
('data_hi', uint32_t),
|
||||
('cmp_data_hi', uint32_t),
|
||||
('reserved15', uint32_t),
|
||||
('reserved16', uint32_t),
|
||||
('ordinal7', uint32_t),
|
||||
]
|
||||
struct_pm4_mec_release_mem._anonymous_ = ['_0', '_1', '_2', '_3', '_4', '_5', '_6']
|
||||
struct_pm4_mec_release_mem._fields_ = [
|
||||
('_0', struct_pm4_mec_release_mem_0),
|
||||
('_1', struct_pm4_mec_release_mem_1),
|
||||
('_2', struct_pm4_mec_release_mem_2),
|
||||
('_3', struct_pm4_mec_release_mem_3),
|
||||
('_4', struct_pm4_mec_release_mem_4),
|
||||
('_5', struct_pm4_mec_release_mem_5),
|
||||
('_6', struct_pm4_mec_release_mem_6),
|
||||
('int_ctxid', uint32_t),
|
||||
]
|
||||
enum_WRITE_DATA_dst_sel_enum = CEnum(ctypes.c_uint32)
|
||||
dst_sel___write_data__mem_mapped_register = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__mem_mapped_register', 0)
|
||||
dst_sel___write_data__tc_l2 = enum_WRITE_DATA_dst_sel_enum.define('dst_sel___write_data__tc_l2', 2)
|
||||
@@ -182,10 +574,14 @@ cache_policy___write_data__lru = enum_WRITE_DATA_cache_policy_enum.define('cache
|
||||
cache_policy___write_data__stream = enum_WRITE_DATA_cache_policy_enum.define('cache_policy___write_data__stream', 1)
|
||||
|
||||
class struct_pm4_mec_write_data_mmio(Struct): pass
|
||||
class _anonunion54(ctypes.Union): pass
|
||||
class _anonunion55(ctypes.Union): pass
|
||||
class _anonunion55_bitfields2(Struct): pass
|
||||
_anonunion55_bitfields2._fields_ = [
|
||||
class struct_pm4_mec_write_data_mmio_0(ctypes.Union): pass
|
||||
struct_pm4_mec_write_data_mmio_0._fields_ = [
|
||||
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||
('ordinal1', ctypes.c_uint32),
|
||||
]
|
||||
class struct_pm4_mec_write_data_mmio_1(ctypes.Union): pass
|
||||
class struct_pm4_mec_write_data_mmio_1_bitfields2(Struct): pass
|
||||
struct_pm4_mec_write_data_mmio_1_bitfields2._fields_ = [
|
||||
('reserved1', ctypes.c_uint32,8),
|
||||
('dst_sel', ctypes.c_uint32,4),
|
||||
('reserved2', ctypes.c_uint32,4),
|
||||
@@ -197,22 +593,30 @@ _anonunion55_bitfields2._fields_ = [
|
||||
('cache_policy', ctypes.c_uint32,2),
|
||||
('reserved5', ctypes.c_uint32,5),
|
||||
]
|
||||
_anonunion55._fields_ = [
|
||||
('bitfields2', _anonunion55_bitfields2),
|
||||
struct_pm4_mec_write_data_mmio_1._fields_ = [
|
||||
('bitfields2', struct_pm4_mec_write_data_mmio_1_bitfields2),
|
||||
('ordinal2', ctypes.c_uint32),
|
||||
]
|
||||
class _anonunion56(ctypes.Union): pass
|
||||
class _anonunion56_bitfields3(Struct): pass
|
||||
_anonunion56_bitfields3._fields_ = [
|
||||
class struct_pm4_mec_write_data_mmio_2(ctypes.Union): pass
|
||||
class struct_pm4_mec_write_data_mmio_2_bitfields3(Struct): pass
|
||||
struct_pm4_mec_write_data_mmio_2_bitfields3._fields_ = [
|
||||
('dst_mmreg_addr', ctypes.c_uint32,18),
|
||||
('reserved6', ctypes.c_uint32,14),
|
||||
]
|
||||
_anonunion56._fields_ = [
|
||||
('bitfields3', _anonunion56_bitfields3),
|
||||
struct_pm4_mec_write_data_mmio_2._fields_ = [
|
||||
('bitfields3', struct_pm4_mec_write_data_mmio_2_bitfields3),
|
||||
('ordinal3', ctypes.c_uint32),
|
||||
]
|
||||
_anonenum57 = CEnum(ctypes.c_uint32)
|
||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum57.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
||||
struct_pm4_mec_write_data_mmio._anonymous_ = ['_0', '_1', '_2']
|
||||
struct_pm4_mec_write_data_mmio._fields_ = [
|
||||
('_0', struct_pm4_mec_write_data_mmio_0),
|
||||
('_1', struct_pm4_mec_write_data_mmio_1),
|
||||
('_2', struct_pm4_mec_write_data_mmio_2),
|
||||
('reserved7', uint32_t),
|
||||
('data', uint32_t),
|
||||
]
|
||||
_anonenum0 = CEnum(ctypes.c_uint32)
|
||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum0.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
||||
|
||||
GFX9_NUM_GFX_RINGS = 1
|
||||
GFX9_NUM_COMPUTE_RINGS = 8
|
||||
|
||||
@@ -77,8 +77,18 @@ I2C_CONTROLLER_PROTOCOL_INA3221 = I2cControllerProtocol_e.define('I2C_CONTROLLER
|
||||
I2C_CONTROLLER_PROTOCOL_TMP_MAX6604 = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_TMP_MAX6604', 4)
|
||||
I2C_CONTROLLER_PROTOCOL_COUNT = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_COUNT', 5)
|
||||
|
||||
class _anonstruct0(Struct): pass
|
||||
I2cControllerConfig_t = _anonstruct0
|
||||
class I2cControllerConfig_t(Struct): pass
|
||||
uint8_t = ctypes.c_ubyte
|
||||
I2cControllerConfig_t._fields_ = [
|
||||
('Enabled', uint8_t),
|
||||
('Speed', uint8_t),
|
||||
('SlaveAddress', uint8_t),
|
||||
('ControllerPort', uint8_t),
|
||||
('ControllerName', uint8_t),
|
||||
('ThermalThrotter', uint8_t),
|
||||
('I2cProtocol', uint8_t),
|
||||
('PaddingConfig', uint8_t),
|
||||
]
|
||||
I2cPort_e = CEnum(ctypes.c_uint32)
|
||||
I2C_PORT_SVD_SCL = I2cPort_e.define('I2C_PORT_SVD_SCL', 0)
|
||||
I2C_PORT_GPIO = I2cPort_e.define('I2C_PORT_GPIO', 1)
|
||||
@@ -97,16 +107,40 @@ I2C_CMD_READ = I2cCmdType_e.define('I2C_CMD_READ', 0)
|
||||
I2C_CMD_WRITE = I2cCmdType_e.define('I2C_CMD_WRITE', 1)
|
||||
I2C_CMD_COUNT = I2cCmdType_e.define('I2C_CMD_COUNT', 2)
|
||||
|
||||
class _anonstruct1(Struct): pass
|
||||
SwI2cCmd_t = _anonstruct1
|
||||
class _anonstruct2(Struct): pass
|
||||
SwI2cRequest_t = _anonstruct2
|
||||
class _anonstruct3(Struct): pass
|
||||
SwI2cRequestExternal_t = _anonstruct3
|
||||
class _anonstruct4(Struct): pass
|
||||
EccInfo_t = _anonstruct4
|
||||
class _anonstruct5(Struct): pass
|
||||
EccInfoTable_t = _anonstruct5
|
||||
class SwI2cCmd_t(Struct): pass
|
||||
SwI2cCmd_t._fields_ = [
|
||||
('ReadWriteData', uint8_t),
|
||||
('CmdConfig', uint8_t),
|
||||
]
|
||||
class SwI2cRequest_t(Struct): pass
|
||||
SwI2cRequest_t._fields_ = [
|
||||
('I2CcontrollerPort', uint8_t),
|
||||
('I2CSpeed', uint8_t),
|
||||
('SlaveAddress', uint8_t),
|
||||
('NumCmds', uint8_t),
|
||||
('SwI2cCmds', (SwI2cCmd_t * 24)),
|
||||
]
|
||||
class SwI2cRequestExternal_t(Struct): pass
|
||||
uint32_t = ctypes.c_uint32
|
||||
SwI2cRequestExternal_t._fields_ = [
|
||||
('SwI2cRequest', SwI2cRequest_t),
|
||||
('Spare', (uint32_t * 8)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class EccInfo_t(Struct): pass
|
||||
uint64_t = ctypes.c_uint64
|
||||
uint16_t = ctypes.c_uint16
|
||||
EccInfo_t._fields_ = [
|
||||
('mca_umc_status', uint64_t),
|
||||
('mca_umc_addr', uint64_t),
|
||||
('ce_count_lo_chip', uint16_t),
|
||||
('ce_count_hi_chip', uint16_t),
|
||||
('eccPadding', uint32_t),
|
||||
]
|
||||
class EccInfoTable_t(Struct): pass
|
||||
EccInfoTable_t._fields_ = [
|
||||
('EccInfo', (EccInfo_t * 24)),
|
||||
]
|
||||
D3HOTSequence_e = CEnum(ctypes.c_uint32)
|
||||
BACO_SEQUENCE = D3HOTSequence_e.define('BACO_SEQUENCE', 0)
|
||||
MSR_SEQUENCE = D3HOTSequence_e.define('MSR_SEQUENCE', 1)
|
||||
@@ -122,12 +156,23 @@ PowerGatingSettings_e = CEnum(ctypes.c_uint32)
|
||||
PG_POWER_DOWN = PowerGatingSettings_e.define('PG_POWER_DOWN', 0)
|
||||
PG_POWER_UP = PowerGatingSettings_e.define('PG_POWER_UP', 1)
|
||||
|
||||
class _anonstruct6(Struct): pass
|
||||
QuadraticInt_t = _anonstruct6
|
||||
class _anonstruct7(Struct): pass
|
||||
LinearInt_t = _anonstruct7
|
||||
class _anonstruct8(Struct): pass
|
||||
DroopInt_t = _anonstruct8
|
||||
class QuadraticInt_t(Struct): pass
|
||||
QuadraticInt_t._fields_ = [
|
||||
('a', uint32_t),
|
||||
('b', uint32_t),
|
||||
('c', uint32_t),
|
||||
]
|
||||
class LinearInt_t(Struct): pass
|
||||
LinearInt_t._fields_ = [
|
||||
('m', uint32_t),
|
||||
('b', uint32_t),
|
||||
]
|
||||
class DroopInt_t(Struct): pass
|
||||
DroopInt_t._fields_ = [
|
||||
('a', uint32_t),
|
||||
('b', uint32_t),
|
||||
('c', uint32_t),
|
||||
]
|
||||
DCS_ARCH_e = CEnum(ctypes.c_uint32)
|
||||
DCS_ARCH_DISABLED = DCS_ARCH_e.define('DCS_ARCH_DISABLED', 0)
|
||||
DCS_ARCH_FADCS = DCS_ARCH_e.define('DCS_ARCH_FADCS', 1)
|
||||
@@ -186,8 +231,19 @@ PWR_CONFIG_TGP = PwrConfig_e.define('PWR_CONFIG_TGP', 1)
|
||||
PWR_CONFIG_TCP_ESTIMATED = PwrConfig_e.define('PWR_CONFIG_TCP_ESTIMATED', 2)
|
||||
PWR_CONFIG_TCP_MEASURED = PwrConfig_e.define('PWR_CONFIG_TCP_MEASURED', 3)
|
||||
|
||||
class _anonstruct9(Struct): pass
|
||||
DpmDescriptor_t = _anonstruct9
|
||||
class DpmDescriptor_t(Struct): pass
|
||||
DpmDescriptor_t._fields_ = [
|
||||
('Padding', uint8_t),
|
||||
('SnapToDiscrete', uint8_t),
|
||||
('NumDiscreteLevels', uint8_t),
|
||||
('CalculateFopt', uint8_t),
|
||||
('ConversionToAvfsClk', LinearInt_t),
|
||||
('Padding3', (uint32_t * 3)),
|
||||
('Padding4', uint16_t),
|
||||
('FoptimalDc', uint16_t),
|
||||
('FoptimalAc', uint16_t),
|
||||
('Padding2', uint16_t),
|
||||
]
|
||||
PPT_THROTTLER_e = CEnum(ctypes.c_uint32)
|
||||
PPT_THROTTLER_PPT0 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT0', 0)
|
||||
PPT_THROTTLER_PPT1 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT1', 1)
|
||||
@@ -332,18 +388,70 @@ PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_3 = PP_GRTAVFS_FW_SEP_FUSE_e.de
|
||||
PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_4 = PP_GRTAVFS_FW_SEP_FUSE_e.define('PP_GRTAVFS_FW_SEP_FUSE_FREQUENCY_TO_COUNT_SCALER_4', 18)
|
||||
PP_GRTAVFS_FW_SEP_FUSE_COUNT = PP_GRTAVFS_FW_SEP_FUSE_e.define('PP_GRTAVFS_FW_SEP_FUSE_COUNT', 19)
|
||||
|
||||
class _anonstruct10(Struct): pass
|
||||
SviTelemetryScale_t = _anonstruct10
|
||||
class SviTelemetryScale_t(Struct): pass
|
||||
int8_t = ctypes.c_char
|
||||
SviTelemetryScale_t._fields_ = [
|
||||
('Offset', int8_t),
|
||||
('Padding', uint8_t),
|
||||
('MaxCurrent', uint16_t),
|
||||
]
|
||||
FanMode_e = CEnum(ctypes.c_uint32)
|
||||
FAN_MODE_AUTO = FanMode_e.define('FAN_MODE_AUTO', 0)
|
||||
FAN_MODE_MANUAL_LINEAR = FanMode_e.define('FAN_MODE_MANUAL_LINEAR', 1)
|
||||
|
||||
class _anonstruct11(Struct): pass
|
||||
OverDriveTable_t = _anonstruct11
|
||||
class _anonstruct12(Struct): pass
|
||||
OverDriveTableExternal_t = _anonstruct12
|
||||
class _anonstruct13(Struct): pass
|
||||
OverDriveLimits_t = _anonstruct13
|
||||
class OverDriveTable_t(Struct): pass
|
||||
int16_t = ctypes.c_int16
|
||||
OverDriveTable_t._fields_ = [
|
||||
('FeatureCtrlMask', uint32_t),
|
||||
('VoltageOffsetPerZoneBoundary', (int16_t * 6)),
|
||||
('Reserved', uint32_t),
|
||||
('GfxclkFmin', int16_t),
|
||||
('GfxclkFmax', int16_t),
|
||||
('UclkFmin', uint16_t),
|
||||
('UclkFmax', uint16_t),
|
||||
('Ppt', int16_t),
|
||||
('Tdc', int16_t),
|
||||
('FanLinearPwmPoints', (uint8_t * 6)),
|
||||
('FanLinearTempPoints', (uint8_t * 6)),
|
||||
('FanMinimumPwm', uint16_t),
|
||||
('AcousticTargetRpmThreshold', uint16_t),
|
||||
('AcousticLimitRpmThreshold', uint16_t),
|
||||
('FanTargetTemperature', uint16_t),
|
||||
('FanZeroRpmEnable', uint8_t),
|
||||
('FanZeroRpmStopTemp', uint8_t),
|
||||
('FanMode', uint8_t),
|
||||
('MaxOpTemp', uint8_t),
|
||||
('Spare', (uint32_t * 13)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class OverDriveTableExternal_t(Struct): pass
|
||||
OverDriveTableExternal_t._fields_ = [
|
||||
('OverDriveTable', OverDriveTable_t),
|
||||
]
|
||||
class OverDriveLimits_t(Struct): pass
|
||||
OverDriveLimits_t._fields_ = [
|
||||
('FeatureCtrlMask', uint32_t),
|
||||
('VoltageOffsetPerZoneBoundary', int16_t),
|
||||
('Reserved1', uint16_t),
|
||||
('Reserved2', uint16_t),
|
||||
('GfxclkFmin', int16_t),
|
||||
('GfxclkFmax', int16_t),
|
||||
('UclkFmin', uint16_t),
|
||||
('UclkFmax', uint16_t),
|
||||
('Ppt', int16_t),
|
||||
('Tdc', int16_t),
|
||||
('FanLinearPwmPoints', uint8_t),
|
||||
('FanLinearTempPoints', uint8_t),
|
||||
('FanMinimumPwm', uint16_t),
|
||||
('AcousticTargetRpmThreshold', uint16_t),
|
||||
('AcousticLimitRpmThreshold', uint16_t),
|
||||
('FanTargetTemperature', uint16_t),
|
||||
('FanZeroRpmEnable', uint8_t),
|
||||
('FanZeroRpmStopTemp', uint8_t),
|
||||
('FanMode', uint8_t),
|
||||
('MaxOpTemp', uint8_t),
|
||||
('Spare', (uint32_t * 13)),
|
||||
]
|
||||
BOARD_GPIO_TYPE_e = CEnum(ctypes.c_uint32)
|
||||
BOARD_GPIO_SMUIO_0 = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_SMUIO_0', 0)
|
||||
BOARD_GPIO_SMUIO_1 = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_SMUIO_1', 1)
|
||||
@@ -390,52 +498,521 @@ BOARD_GPIO_DC_GENLK_VSYNC = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_GENLK_VSYNC'
|
||||
BOARD_GPIO_DC_SWAPLOCK_A = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_SWAPLOCK_A', 42)
|
||||
BOARD_GPIO_DC_SWAPLOCK_B = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_SWAPLOCK_B', 43)
|
||||
|
||||
class _anonstruct14(Struct): pass
|
||||
BootValues_t = _anonstruct14
|
||||
class _anonstruct15(Struct): pass
|
||||
MsgLimits_t = _anonstruct15
|
||||
class _anonstruct16(Struct): pass
|
||||
DriverReportedClocks_t = _anonstruct16
|
||||
class _anonstruct17(Struct): pass
|
||||
AvfsDcBtcParams_t = _anonstruct17
|
||||
class _anonstruct18(Struct): pass
|
||||
AvfsFuseOverride_t = _anonstruct18
|
||||
class _anonstruct19(Struct): pass
|
||||
SkuTable_t = _anonstruct19
|
||||
class _anonstruct20(Struct): pass
|
||||
BoardTable_t = _anonstruct20
|
||||
class _anonstruct21(Struct): pass
|
||||
PPTable_t = _anonstruct21
|
||||
class _anonstruct22(Struct): pass
|
||||
DriverSmuConfig_t = _anonstruct22
|
||||
class _anonstruct23(Struct): pass
|
||||
DriverSmuConfigExternal_t = _anonstruct23
|
||||
class _anonstruct24(Struct): pass
|
||||
DriverInfoTable_t = _anonstruct24
|
||||
class _anonstruct25(Struct): pass
|
||||
SmuMetrics_t = _anonstruct25
|
||||
class _anonstruct26(Struct): pass
|
||||
SmuMetricsExternal_t = _anonstruct26
|
||||
class _anonstruct27(Struct): pass
|
||||
WatermarkRowGeneric_t = _anonstruct27
|
||||
class BootValues_t(Struct): pass
|
||||
BootValues_t._fields_ = [
|
||||
('InitGfxclk_bypass', uint16_t),
|
||||
('InitSocclk', uint16_t),
|
||||
('InitMp0clk', uint16_t),
|
||||
('InitMpioclk', uint16_t),
|
||||
('InitSmnclk', uint16_t),
|
||||
('InitUcpclk', uint16_t),
|
||||
('InitCsrclk', uint16_t),
|
||||
('InitDprefclk', uint16_t),
|
||||
('InitDcfclk', uint16_t),
|
||||
('InitDtbclk', uint16_t),
|
||||
('InitDclk', uint16_t),
|
||||
('InitVclk', uint16_t),
|
||||
('InitUsbdfsclk', uint16_t),
|
||||
('InitMp1clk', uint16_t),
|
||||
('InitLclk', uint16_t),
|
||||
('InitBaco400clk_bypass', uint16_t),
|
||||
('InitBaco1200clk_bypass', uint16_t),
|
||||
('InitBaco700clk_bypass', uint16_t),
|
||||
('InitFclk', uint16_t),
|
||||
('InitGfxclk_clkb', uint16_t),
|
||||
('InitUclkDPMState', uint8_t),
|
||||
('Padding', (uint8_t * 3)),
|
||||
('InitVcoFreqPll0', uint32_t),
|
||||
('InitVcoFreqPll1', uint32_t),
|
||||
('InitVcoFreqPll2', uint32_t),
|
||||
('InitVcoFreqPll3', uint32_t),
|
||||
('InitVcoFreqPll4', uint32_t),
|
||||
('InitVcoFreqPll5', uint32_t),
|
||||
('InitVcoFreqPll6', uint32_t),
|
||||
('InitGfx', uint16_t),
|
||||
('InitSoc', uint16_t),
|
||||
('InitU', uint16_t),
|
||||
('Padding2', uint16_t),
|
||||
('Spare', (uint32_t * 8)),
|
||||
]
|
||||
class MsgLimits_t(Struct): pass
|
||||
MsgLimits_t._fields_ = [
|
||||
('Power', ((uint16_t * 2) * 4)),
|
||||
('Tdc', (uint16_t * 3)),
|
||||
('Temperature', (uint16_t * 13)),
|
||||
('PwmLimitMin', uint8_t),
|
||||
('PwmLimitMax', uint8_t),
|
||||
('FanTargetTemperature', uint8_t),
|
||||
('Spare1', (uint8_t * 1)),
|
||||
('AcousticTargetRpmThresholdMin', uint16_t),
|
||||
('AcousticTargetRpmThresholdMax', uint16_t),
|
||||
('AcousticLimitRpmThresholdMin', uint16_t),
|
||||
('AcousticLimitRpmThresholdMax', uint16_t),
|
||||
('PccLimitMin', uint16_t),
|
||||
('PccLimitMax', uint16_t),
|
||||
('FanStopTempMin', uint16_t),
|
||||
('FanStopTempMax', uint16_t),
|
||||
('FanStartTempMin', uint16_t),
|
||||
('FanStartTempMax', uint16_t),
|
||||
('PowerMinPpt0', (uint16_t * 2)),
|
||||
('Spare', (uint32_t * 11)),
|
||||
]
|
||||
class DriverReportedClocks_t(Struct): pass
|
||||
DriverReportedClocks_t._fields_ = [
|
||||
('BaseClockAc', uint16_t),
|
||||
('GameClockAc', uint16_t),
|
||||
('BoostClockAc', uint16_t),
|
||||
('BaseClockDc', uint16_t),
|
||||
('GameClockDc', uint16_t),
|
||||
('BoostClockDc', uint16_t),
|
||||
('Reserved', (uint32_t * 4)),
|
||||
]
|
||||
class AvfsDcBtcParams_t(Struct): pass
|
||||
AvfsDcBtcParams_t._fields_ = [
|
||||
('DcBtcEnabled', uint8_t),
|
||||
('Padding', (uint8_t * 3)),
|
||||
('DcTol', uint16_t),
|
||||
('DcBtcGb', uint16_t),
|
||||
('DcBtcMin', uint16_t),
|
||||
('DcBtcMax', uint16_t),
|
||||
('DcBtcGbScalar', LinearInt_t),
|
||||
]
|
||||
class AvfsFuseOverride_t(Struct): pass
|
||||
AvfsFuseOverride_t._fields_ = [
|
||||
('AvfsTemp', (uint16_t * 2)),
|
||||
('VftFMin', uint16_t),
|
||||
('VInversion', uint16_t),
|
||||
('qVft', (QuadraticInt_t * 2)),
|
||||
('qAvfsGb', QuadraticInt_t),
|
||||
('qAvfsGb2', QuadraticInt_t),
|
||||
]
|
||||
class SkuTable_t(Struct): pass
|
||||
int32_t = ctypes.c_int32
|
||||
SkuTable_t._fields_ = [
|
||||
('Version', uint32_t),
|
||||
('FeaturesToRun', (uint32_t * 2)),
|
||||
('TotalPowerConfig', uint8_t),
|
||||
('CustomerVariant', uint8_t),
|
||||
('MemoryTemperatureTypeMask', uint8_t),
|
||||
('SmartShiftVersion', uint8_t),
|
||||
('SocketPowerLimitAc', (uint16_t * 4)),
|
||||
('SocketPowerLimitDc', (uint16_t * 4)),
|
||||
('SocketPowerLimitSmartShift2', uint16_t),
|
||||
('EnableLegacyPptLimit', uint8_t),
|
||||
('UseInputTelemetry', uint8_t),
|
||||
('SmartShiftMinReportedPptinDcs', uint8_t),
|
||||
('PaddingPpt', (uint8_t * 1)),
|
||||
('VrTdcLimit', (uint16_t * 3)),
|
||||
('PlatformTdcLimit', (uint16_t * 3)),
|
||||
('TemperatureLimit', (uint16_t * 13)),
|
||||
('HwCtfTempLimit', uint16_t),
|
||||
('PaddingInfra', uint16_t),
|
||||
('FitControllerFailureRateLimit', uint32_t),
|
||||
('FitControllerGfxDutyCycle', uint32_t),
|
||||
('FitControllerSocDutyCycle', uint32_t),
|
||||
('FitControllerSocOffset', uint32_t),
|
||||
('GfxApccPlusResidencyLimit', uint32_t),
|
||||
('ThrottlerControlMask', uint32_t),
|
||||
('FwDStateMask', uint32_t),
|
||||
('UlvVoltageOffset', (uint16_t * 2)),
|
||||
('UlvVoltageOffsetU', uint16_t),
|
||||
('DeepUlvVoltageOffsetSoc', uint16_t),
|
||||
('DefaultMaxVoltage', (uint16_t * 2)),
|
||||
('BoostMaxVoltage', (uint16_t * 2)),
|
||||
('VminTempHystersis', (int16_t * 2)),
|
||||
('VminTempThreshold', (int16_t * 2)),
|
||||
('Vmin_Hot_T0', (uint16_t * 2)),
|
||||
('Vmin_Cold_T0', (uint16_t * 2)),
|
||||
('Vmin_Hot_Eol', (uint16_t * 2)),
|
||||
('Vmin_Cold_Eol', (uint16_t * 2)),
|
||||
('Vmin_Aging_Offset', (uint16_t * 2)),
|
||||
('Spare_Vmin_Plat_Offset_Hot', (uint16_t * 2)),
|
||||
('Spare_Vmin_Plat_Offset_Cold', (uint16_t * 2)),
|
||||
('VcBtcFixedVminAgingOffset', (uint16_t * 2)),
|
||||
('VcBtcVmin2PsmDegrationGb', (uint16_t * 2)),
|
||||
('VcBtcPsmA', (uint32_t * 2)),
|
||||
('VcBtcPsmB', (uint32_t * 2)),
|
||||
('VcBtcVminA', (uint32_t * 2)),
|
||||
('VcBtcVminB', (uint32_t * 2)),
|
||||
('PerPartVminEnabled', (uint8_t * 2)),
|
||||
('VcBtcEnabled', (uint8_t * 2)),
|
||||
('SocketPowerLimitAcTau', (uint16_t * 4)),
|
||||
('SocketPowerLimitDcTau', (uint16_t * 4)),
|
||||
('Vmin_droop', QuadraticInt_t),
|
||||
('SpareVmin', (uint32_t * 9)),
|
||||
('DpmDescriptor', (DpmDescriptor_t * 13)),
|
||||
('FreqTableGfx', (uint16_t * 16)),
|
||||
('FreqTableVclk', (uint16_t * 8)),
|
||||
('FreqTableDclk', (uint16_t * 8)),
|
||||
('FreqTableSocclk', (uint16_t * 8)),
|
||||
('FreqTableUclk', (uint16_t * 4)),
|
||||
('FreqTableDispclk', (uint16_t * 8)),
|
||||
('FreqTableDppClk', (uint16_t * 8)),
|
||||
('FreqTableDprefclk', (uint16_t * 8)),
|
||||
('FreqTableDcfclk', (uint16_t * 8)),
|
||||
('FreqTableDtbclk', (uint16_t * 8)),
|
||||
('FreqTableFclk', (uint16_t * 8)),
|
||||
('DcModeMaxFreq', (uint32_t * 13)),
|
||||
('Mp0clkFreq', (uint16_t * 2)),
|
||||
('Mp0DpmVoltage', (uint16_t * 2)),
|
||||
('GfxclkSpare', (uint8_t * 2)),
|
||||
('GfxclkFreqCap', uint16_t),
|
||||
('GfxclkFgfxoffEntry', uint16_t),
|
||||
('GfxclkFgfxoffExitImu', uint16_t),
|
||||
('GfxclkFgfxoffExitRlc', uint16_t),
|
||||
('GfxclkThrottleClock', uint16_t),
|
||||
('EnableGfxPowerStagesGpio', uint8_t),
|
||||
('GfxIdlePadding', uint8_t),
|
||||
('SmsRepairWRCKClkDivEn', uint8_t),
|
||||
('SmsRepairWRCKClkDivVal', uint8_t),
|
||||
('GfxOffEntryEarlyMGCGEn', uint8_t),
|
||||
('GfxOffEntryForceCGCGEn', uint8_t),
|
||||
('GfxOffEntryForceCGCGDelayEn', uint8_t),
|
||||
('GfxOffEntryForceCGCGDelayVal', uint8_t),
|
||||
('GfxclkFreqGfxUlv', uint16_t),
|
||||
('GfxIdlePadding2', (uint8_t * 2)),
|
||||
('GfxOffEntryHysteresis', uint32_t),
|
||||
('GfxoffSpare', (uint32_t * 15)),
|
||||
('DfllBtcMasterScalerM', uint32_t),
|
||||
('DfllBtcMasterScalerB', int32_t),
|
||||
('DfllBtcSlaveScalerM', uint32_t),
|
||||
('DfllBtcSlaveScalerB', int32_t),
|
||||
('DfllPccAsWaitCtrl', uint32_t),
|
||||
('DfllPccAsStepCtrl', uint32_t),
|
||||
('DfllL2FrequencyBoostM', uint32_t),
|
||||
('DfllL2FrequencyBoostB', uint32_t),
|
||||
('GfxGpoSpare', (uint32_t * 8)),
|
||||
('DcsGfxOffVoltage', uint16_t),
|
||||
('PaddingDcs', uint16_t),
|
||||
('DcsMinGfxOffTime', uint16_t),
|
||||
('DcsMaxGfxOffTime', uint16_t),
|
||||
('DcsMinCreditAccum', uint32_t),
|
||||
('DcsExitHysteresis', uint16_t),
|
||||
('DcsTimeout', uint16_t),
|
||||
('FoptEnabled', uint8_t),
|
||||
('DcsSpare2', (uint8_t * 3)),
|
||||
('DcsFoptM', uint32_t),
|
||||
('DcsFoptB', uint32_t),
|
||||
('DcsSpare', (uint32_t * 11)),
|
||||
('ShadowFreqTableUclk', (uint16_t * 4)),
|
||||
('UseStrobeModeOptimizations', uint8_t),
|
||||
('PaddingMem', (uint8_t * 3)),
|
||||
('UclkDpmPstates', (uint8_t * 4)),
|
||||
('FreqTableUclkDiv', (uint8_t * 4)),
|
||||
('MemVmempVoltage', (uint16_t * 4)),
|
||||
('MemVddioVoltage', (uint16_t * 4)),
|
||||
('FclkDpmUPstates', (uint8_t * 8)),
|
||||
('FclkDpmVddU', (uint16_t * 8)),
|
||||
('FclkDpmUSpeed', (uint16_t * 8)),
|
||||
('FclkDpmDisallowPstateFreq', uint16_t),
|
||||
('PaddingFclk', uint16_t),
|
||||
('PcieGenSpeed', (uint8_t * 3)),
|
||||
('PcieLaneCount', (uint8_t * 3)),
|
||||
('LclkFreq', (uint16_t * 3)),
|
||||
('FanStopTemp', (uint16_t * 13)),
|
||||
('FanStartTemp', (uint16_t * 13)),
|
||||
('FanGain', (uint16_t * 13)),
|
||||
('FanGainPadding', uint16_t),
|
||||
('FanPwmMin', uint16_t),
|
||||
('AcousticTargetRpmThreshold', uint16_t),
|
||||
('AcousticLimitRpmThreshold', uint16_t),
|
||||
('FanMaximumRpm', uint16_t),
|
||||
('MGpuAcousticLimitRpmThreshold', uint16_t),
|
||||
('FanTargetGfxclk', uint16_t),
|
||||
('TempInputSelectMask', uint32_t),
|
||||
('FanZeroRpmEnable', uint8_t),
|
||||
('FanTachEdgePerRev', uint8_t),
|
||||
('FanTargetTemperature', (uint16_t * 13)),
|
||||
('FuzzyFan_ErrorSetDelta', int16_t),
|
||||
('FuzzyFan_ErrorRateSetDelta', int16_t),
|
||||
('FuzzyFan_PwmSetDelta', int16_t),
|
||||
('FuzzyFan_Reserved', uint16_t),
|
||||
('FwCtfLimit', (uint16_t * 13)),
|
||||
('IntakeTempEnableRPM', uint16_t),
|
||||
('IntakeTempOffsetTemp', int16_t),
|
||||
('IntakeTempReleaseTemp', uint16_t),
|
||||
('IntakeTempHighIntakeAcousticLimit', uint16_t),
|
||||
('IntakeTempAcouticLimitReleaseRate', uint16_t),
|
||||
('FanAbnormalTempLimitOffset', int16_t),
|
||||
('FanStalledTriggerRpm', uint16_t),
|
||||
('FanAbnormalTriggerRpmCoeff', uint16_t),
|
||||
('FanAbnormalDetectionEnable', uint16_t),
|
||||
('FanIntakeSensorSupport', uint8_t),
|
||||
('FanIntakePadding', (uint8_t * 3)),
|
||||
('FanSpare', (uint32_t * 13)),
|
||||
('OverrideGfxAvfsFuses', uint8_t),
|
||||
('GfxAvfsPadding', (uint8_t * 3)),
|
||||
('L2HwRtAvfsFuses', (uint32_t * 32)),
|
||||
('SeHwRtAvfsFuses', (uint32_t * 32)),
|
||||
('CommonRtAvfs', (uint32_t * 13)),
|
||||
('L2FwRtAvfsFuses', (uint32_t * 19)),
|
||||
('SeFwRtAvfsFuses', (uint32_t * 19)),
|
||||
('Droop_PWL_F', (uint32_t * 5)),
|
||||
('Droop_PWL_a', (uint32_t * 5)),
|
||||
('Droop_PWL_b', (uint32_t * 5)),
|
||||
('Droop_PWL_c', (uint32_t * 5)),
|
||||
('Static_PWL_Offset', (uint32_t * 5)),
|
||||
('dGbV_dT_vmin', uint32_t),
|
||||
('dGbV_dT_vmax', uint32_t),
|
||||
('V2F_vmin_range_low', uint32_t),
|
||||
('V2F_vmin_range_high', uint32_t),
|
||||
('V2F_vmax_range_low', uint32_t),
|
||||
('V2F_vmax_range_high', uint32_t),
|
||||
('DcBtcGfxParams', AvfsDcBtcParams_t),
|
||||
('GfxAvfsSpare', (uint32_t * 32)),
|
||||
('OverrideSocAvfsFuses', uint8_t),
|
||||
('MinSocAvfsRevision', uint8_t),
|
||||
('SocAvfsPadding', (uint8_t * 2)),
|
||||
('SocAvfsFuseOverride', (AvfsFuseOverride_t * 3)),
|
||||
('dBtcGbSoc', (DroopInt_t * 3)),
|
||||
('qAgingGb', (LinearInt_t * 3)),
|
||||
('qStaticVoltageOffset', (QuadraticInt_t * 3)),
|
||||
('DcBtcSocParams', (AvfsDcBtcParams_t * 3)),
|
||||
('SocAvfsSpare', (uint32_t * 32)),
|
||||
('BootValues', BootValues_t),
|
||||
('DriverReportedClocks', DriverReportedClocks_t),
|
||||
('MsgLimits', MsgLimits_t),
|
||||
('OverDriveLimitsMin', OverDriveLimits_t),
|
||||
('OverDriveLimitsBasicMax', OverDriveLimits_t),
|
||||
('reserved', (uint32_t * 22)),
|
||||
('DebugOverrides', uint32_t),
|
||||
('TotalBoardPowerSupport', uint8_t),
|
||||
('TotalBoardPowerPadding', (uint8_t * 3)),
|
||||
('TotalIdleBoardPowerM', int16_t),
|
||||
('TotalIdleBoardPowerB', int16_t),
|
||||
('TotalBoardPowerM', int16_t),
|
||||
('TotalBoardPowerB', int16_t),
|
||||
('qFeffCoeffGameClock', (QuadraticInt_t * 2)),
|
||||
('qFeffCoeffBaseClock', (QuadraticInt_t * 2)),
|
||||
('qFeffCoeffBoostClock', (QuadraticInt_t * 2)),
|
||||
('TemperatureLimit_Hynix', uint16_t),
|
||||
('TemperatureLimit_Micron', uint16_t),
|
||||
('TemperatureFwCtfLimit_Hynix', uint16_t),
|
||||
('TemperatureFwCtfLimit_Micron', uint16_t),
|
||||
('Spare', (uint32_t * 41)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class BoardTable_t(Struct): pass
|
||||
BoardTable_t._fields_ = [
|
||||
('Version', uint32_t),
|
||||
('I2cControllers', (I2cControllerConfig_t * 8)),
|
||||
('VddGfxVrMapping', uint8_t),
|
||||
('VddSocVrMapping', uint8_t),
|
||||
('VddMem0VrMapping', uint8_t),
|
||||
('VddMem1VrMapping', uint8_t),
|
||||
('GfxUlvPhaseSheddingMask', uint8_t),
|
||||
('SocUlvPhaseSheddingMask', uint8_t),
|
||||
('VmempUlvPhaseSheddingMask', uint8_t),
|
||||
('VddioUlvPhaseSheddingMask', uint8_t),
|
||||
('SlaveAddrMapping', (uint8_t * 5)),
|
||||
('VrPsiSupport', (uint8_t * 5)),
|
||||
('PaddingPsi', (uint8_t * 5)),
|
||||
('EnablePsi6', (uint8_t * 5)),
|
||||
('SviTelemetryScale', (SviTelemetryScale_t * 5)),
|
||||
('VoltageTelemetryRatio', (uint32_t * 5)),
|
||||
('DownSlewRateVr', (uint8_t * 5)),
|
||||
('LedOffGpio', uint8_t),
|
||||
('FanOffGpio', uint8_t),
|
||||
('GfxVrPowerStageOffGpio', uint8_t),
|
||||
('AcDcGpio', uint8_t),
|
||||
('AcDcPolarity', uint8_t),
|
||||
('VR0HotGpio', uint8_t),
|
||||
('VR0HotPolarity', uint8_t),
|
||||
('GthrGpio', uint8_t),
|
||||
('GthrPolarity', uint8_t),
|
||||
('LedPin0', uint8_t),
|
||||
('LedPin1', uint8_t),
|
||||
('LedPin2', uint8_t),
|
||||
('LedEnableMask', uint8_t),
|
||||
('LedPcie', uint8_t),
|
||||
('LedError', uint8_t),
|
||||
('UclkTrainingModeSpreadPercent', uint8_t),
|
||||
('UclkSpreadPadding', uint8_t),
|
||||
('UclkSpreadFreq', uint16_t),
|
||||
('UclkSpreadPercent', (uint8_t * 16)),
|
||||
('GfxclkSpreadEnable', uint8_t),
|
||||
('FclkSpreadPercent', uint8_t),
|
||||
('FclkSpreadFreq', uint16_t),
|
||||
('DramWidth', uint8_t),
|
||||
('PaddingMem1', (uint8_t * 7)),
|
||||
('HsrEnabled', uint8_t),
|
||||
('VddqOffEnabled', uint8_t),
|
||||
('PaddingUmcFlags', (uint8_t * 2)),
|
||||
('PostVoltageSetBacoDelay', uint32_t),
|
||||
('BacoEntryDelay', uint32_t),
|
||||
('FuseWritePowerMuxPresent', uint8_t),
|
||||
('FuseWritePadding', (uint8_t * 3)),
|
||||
('BoardSpare', (uint32_t * 63)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class PPTable_t(Struct): pass
|
||||
PPTable_t._fields_ = [
|
||||
('SkuTable', SkuTable_t),
|
||||
('BoardTable', BoardTable_t),
|
||||
]
|
||||
class DriverSmuConfig_t(Struct): pass
|
||||
DriverSmuConfig_t._fields_ = [
|
||||
('GfxclkAverageLpfTau', uint16_t),
|
||||
('FclkAverageLpfTau', uint16_t),
|
||||
('UclkAverageLpfTau', uint16_t),
|
||||
('GfxActivityLpfTau', uint16_t),
|
||||
('UclkActivityLpfTau', uint16_t),
|
||||
('SocketPowerLpfTau', uint16_t),
|
||||
('VcnClkAverageLpfTau', uint16_t),
|
||||
('VcnUsageAverageLpfTau', uint16_t),
|
||||
]
|
||||
class DriverSmuConfigExternal_t(Struct): pass
|
||||
DriverSmuConfigExternal_t._fields_ = [
|
||||
('DriverSmuConfig', DriverSmuConfig_t),
|
||||
('Spare', (uint32_t * 8)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class DriverInfoTable_t(Struct): pass
|
||||
DriverInfoTable_t._fields_ = [
|
||||
('FreqTableGfx', (uint16_t * 16)),
|
||||
('FreqTableVclk', (uint16_t * 8)),
|
||||
('FreqTableDclk', (uint16_t * 8)),
|
||||
('FreqTableSocclk', (uint16_t * 8)),
|
||||
('FreqTableUclk', (uint16_t * 4)),
|
||||
('FreqTableDispclk', (uint16_t * 8)),
|
||||
('FreqTableDppClk', (uint16_t * 8)),
|
||||
('FreqTableDprefclk', (uint16_t * 8)),
|
||||
('FreqTableDcfclk', (uint16_t * 8)),
|
||||
('FreqTableDtbclk', (uint16_t * 8)),
|
||||
('FreqTableFclk', (uint16_t * 8)),
|
||||
('DcModeMaxFreq', (uint16_t * 13)),
|
||||
('Padding', uint16_t),
|
||||
('Spare', (uint32_t * 32)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class SmuMetrics_t(Struct): pass
|
||||
SmuMetrics_t._fields_ = [
|
||||
('CurrClock', (uint32_t * 13)),
|
||||
('AverageGfxclkFrequencyTarget', uint16_t),
|
||||
('AverageGfxclkFrequencyPreDs', uint16_t),
|
||||
('AverageGfxclkFrequencyPostDs', uint16_t),
|
||||
('AverageFclkFrequencyPreDs', uint16_t),
|
||||
('AverageFclkFrequencyPostDs', uint16_t),
|
||||
('AverageMemclkFrequencyPreDs', uint16_t),
|
||||
('AverageMemclkFrequencyPostDs', uint16_t),
|
||||
('AverageVclk0Frequency', uint16_t),
|
||||
('AverageDclk0Frequency', uint16_t),
|
||||
('AverageVclk1Frequency', uint16_t),
|
||||
('AverageDclk1Frequency', uint16_t),
|
||||
('PCIeBusy', uint16_t),
|
||||
('dGPU_W_MAX', uint16_t),
|
||||
('padding', uint16_t),
|
||||
('MetricsCounter', uint32_t),
|
||||
('AvgVoltage', (uint16_t * 5)),
|
||||
('AvgCurrent', (uint16_t * 5)),
|
||||
('AverageGfxActivity', uint16_t),
|
||||
('AverageUclkActivity', uint16_t),
|
||||
('Vcn0ActivityPercentage', uint16_t),
|
||||
('Vcn1ActivityPercentage', uint16_t),
|
||||
('EnergyAccumulator', uint32_t),
|
||||
('AverageSocketPower', uint16_t),
|
||||
('AverageTotalBoardPower', uint16_t),
|
||||
('AvgTemperature', (uint16_t * 13)),
|
||||
('AvgTemperatureFanIntake', uint16_t),
|
||||
('PcieRate', uint8_t),
|
||||
('PcieWidth', uint8_t),
|
||||
('AvgFanPwm', uint8_t),
|
||||
('Padding', (uint8_t * 1)),
|
||||
('AvgFanRpm', uint16_t),
|
||||
('ThrottlingPercentage', (uint8_t * 22)),
|
||||
('VmaxThrottlingPercentage', uint8_t),
|
||||
('Padding1', (uint8_t * 3)),
|
||||
('D3HotEntryCountPerMode', (uint32_t * 4)),
|
||||
('D3HotExitCountPerMode', (uint32_t * 4)),
|
||||
('ArmMsgReceivedCountPerMode', (uint32_t * 4)),
|
||||
('ApuSTAPMSmartShiftLimit', uint16_t),
|
||||
('ApuSTAPMLimit', uint16_t),
|
||||
('AvgApuSocketPower', uint16_t),
|
||||
('AverageUclkActivity_MAX', uint16_t),
|
||||
('PublicSerialNumberLower', uint32_t),
|
||||
('PublicSerialNumberUpper', uint32_t),
|
||||
]
|
||||
class SmuMetricsExternal_t(Struct): pass
|
||||
SmuMetricsExternal_t._fields_ = [
|
||||
('SmuMetrics', SmuMetrics_t),
|
||||
('Spare', (uint32_t * 29)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class WatermarkRowGeneric_t(Struct): pass
|
||||
WatermarkRowGeneric_t._fields_ = [
|
||||
('WmSetting', uint8_t),
|
||||
('Flags', uint8_t),
|
||||
('Padding', (uint8_t * 2)),
|
||||
]
|
||||
WATERMARKS_FLAGS_e = CEnum(ctypes.c_uint32)
|
||||
WATERMARKS_CLOCK_RANGE = WATERMARKS_FLAGS_e.define('WATERMARKS_CLOCK_RANGE', 0)
|
||||
WATERMARKS_DUMMY_PSTATE = WATERMARKS_FLAGS_e.define('WATERMARKS_DUMMY_PSTATE', 1)
|
||||
WATERMARKS_MALL = WATERMARKS_FLAGS_e.define('WATERMARKS_MALL', 2)
|
||||
WATERMARKS_COUNT = WATERMARKS_FLAGS_e.define('WATERMARKS_COUNT', 3)
|
||||
|
||||
class _anonstruct28(Struct): pass
|
||||
Watermarks_t = _anonstruct28
|
||||
class _anonstruct29(Struct): pass
|
||||
WatermarksExternal_t = _anonstruct29
|
||||
class _anonstruct30(Struct): pass
|
||||
AvfsDebugTable_t = _anonstruct30
|
||||
class _anonstruct31(Struct): pass
|
||||
AvfsDebugTableExternal_t = _anonstruct31
|
||||
class _anonstruct32(Struct): pass
|
||||
DpmActivityMonitorCoeffInt_t = _anonstruct32
|
||||
class _anonstruct33(Struct): pass
|
||||
DpmActivityMonitorCoeffIntExternal_t = _anonstruct33
|
||||
class Watermarks_t(Struct): pass
|
||||
Watermarks_t._fields_ = [
|
||||
('WatermarkRow', (WatermarkRowGeneric_t * 4)),
|
||||
]
|
||||
class WatermarksExternal_t(Struct): pass
|
||||
WatermarksExternal_t._fields_ = [
|
||||
('Watermarks', Watermarks_t),
|
||||
('Spare', (uint32_t * 16)),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class AvfsDebugTable_t(Struct): pass
|
||||
AvfsDebugTable_t._fields_ = [
|
||||
('avgPsmCount', (uint16_t * 214)),
|
||||
('minPsmCount', (uint16_t * 214)),
|
||||
('avgPsmVoltage', (ctypes.c_float * 214)),
|
||||
('minPsmVoltage', (ctypes.c_float * 214)),
|
||||
]
|
||||
class AvfsDebugTableExternal_t(Struct): pass
|
||||
AvfsDebugTableExternal_t._fields_ = [
|
||||
('AvfsDebugTable', AvfsDebugTable_t),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class DpmActivityMonitorCoeffInt_t(Struct): pass
|
||||
DpmActivityMonitorCoeffInt_t._fields_ = [
|
||||
('Gfx_ActiveHystLimit', uint8_t),
|
||||
('Gfx_IdleHystLimit', uint8_t),
|
||||
('Gfx_FPS', uint8_t),
|
||||
('Gfx_MinActiveFreqType', uint8_t),
|
||||
('Gfx_BoosterFreqType', uint8_t),
|
||||
('PaddingGfx', uint8_t),
|
||||
('Gfx_MinActiveFreq', uint16_t),
|
||||
('Gfx_BoosterFreq', uint16_t),
|
||||
('Gfx_PD_Data_time_constant', uint16_t),
|
||||
('Gfx_PD_Data_limit_a', uint32_t),
|
||||
('Gfx_PD_Data_limit_b', uint32_t),
|
||||
('Gfx_PD_Data_limit_c', uint32_t),
|
||||
('Gfx_PD_Data_error_coeff', uint32_t),
|
||||
('Gfx_PD_Data_error_rate_coeff', uint32_t),
|
||||
('Fclk_ActiveHystLimit', uint8_t),
|
||||
('Fclk_IdleHystLimit', uint8_t),
|
||||
('Fclk_FPS', uint8_t),
|
||||
('Fclk_MinActiveFreqType', uint8_t),
|
||||
('Fclk_BoosterFreqType', uint8_t),
|
||||
('PaddingFclk', uint8_t),
|
||||
('Fclk_MinActiveFreq', uint16_t),
|
||||
('Fclk_BoosterFreq', uint16_t),
|
||||
('Fclk_PD_Data_time_constant', uint16_t),
|
||||
('Fclk_PD_Data_limit_a', uint32_t),
|
||||
('Fclk_PD_Data_limit_b', uint32_t),
|
||||
('Fclk_PD_Data_limit_c', uint32_t),
|
||||
('Fclk_PD_Data_error_coeff', uint32_t),
|
||||
('Fclk_PD_Data_error_rate_coeff', uint32_t),
|
||||
('Mem_UpThreshold_Limit', (uint32_t * 4)),
|
||||
('Mem_UpHystLimit', (uint8_t * 4)),
|
||||
('Mem_DownHystLimit', (uint8_t * 4)),
|
||||
('Mem_Fps', uint16_t),
|
||||
('padding', (uint8_t * 2)),
|
||||
]
|
||||
class DpmActivityMonitorCoeffIntExternal_t(Struct): pass
|
||||
DpmActivityMonitorCoeffIntExternal_t._fields_ = [
|
||||
('DpmActivityMonitorCoeffInt', DpmActivityMonitorCoeffInt_t),
|
||||
('MmHubPadding', (uint32_t * 8)),
|
||||
]
|
||||
class struct_smu_hw_power_state(Struct): pass
|
||||
struct_smu_hw_power_state._fields_ = [
|
||||
('magic', ctypes.c_uint32),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user