mirror of
https://github.com/tinygrad/tinygrad.git
synced 2026-01-09 15:08:02 -05:00
fix am generations
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
from tinygrad.runtime.autogen import load, root
|
from tinygrad.runtime.autogen import load, root
|
||||||
|
|
||||||
am_src="https://github.com/ROCm/ROCK-Kernel-Driver/archive/ceb12c04e2b5b53ec0779362831f5ee40c4921e4.tar.gz"
|
am_src="https://github.com/ROCm/ROCK-Kernel-Driver/archive/ceb12c04e2b5b53ec0779362831f5ee40c4921e4.tar.gz"
|
||||||
|
args=["-include", "stdint.h"]
|
||||||
AMD="{}/drivers/gpu/drm/amd"
|
AMD="{}/drivers/gpu/drm/amd"
|
||||||
|
|
||||||
def __getattr__(nm):
|
def __getattr__(nm):
|
||||||
match 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",
|
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)
|
"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"], 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"], 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"],
|
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),
|
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"],
|
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"],
|
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),
|
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"]]
|
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",
|
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}")
|
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.helpers import unwrap
|
||||||
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
||||||
class union_PM4_MES_TYPE_3_HEADER(ctypes.Union): pass
|
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)
|
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__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_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)
|
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 struct_pm4_mes_set_resources(Struct): pass
|
||||||
class _anonunion1(ctypes.Union): pass
|
class struct_pm4_mes_set_resources_0(ctypes.Union): pass
|
||||||
class _anonunion2(ctypes.Union): pass
|
struct_pm4_mes_set_resources_0._fields_ = [
|
||||||
class _anonstruct3(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion4(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct5(Struct): pass
|
]
|
||||||
class _anonunion6(ctypes.Union): pass
|
class struct_pm4_mes_set_resources_1(ctypes.Union): pass
|
||||||
class _anonstruct7(Struct): 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 struct_pm4_mes_runlist(Struct): pass
|
||||||
class _anonunion8(ctypes.Union): pass
|
class struct_pm4_mes_runlist_0(ctypes.Union): pass
|
||||||
class _anonunion9(ctypes.Union): pass
|
struct_pm4_mes_runlist_0._fields_ = [
|
||||||
class _anonstruct10(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion11(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct12(Struct): pass
|
]
|
||||||
|
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 struct_pm4_mes_map_process(Struct): pass
|
||||||
class _anonunion13(ctypes.Union): pass
|
class struct_pm4_mes_map_process_0(ctypes.Union): pass
|
||||||
class _anonunion14(ctypes.Union): pass
|
struct_pm4_mes_map_process_0._fields_ = [
|
||||||
class _anonstruct15(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion16(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct17(Struct): pass
|
]
|
||||||
|
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 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)
|
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_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)
|
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)
|
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 struct_pm4_mes_map_queues(Struct): pass
|
||||||
class _anonunion19(ctypes.Union): pass
|
class struct_pm4_mes_map_queues_0(ctypes.Union): pass
|
||||||
class _anonunion20(ctypes.Union): pass
|
struct_pm4_mes_map_queues_0._fields_ = [
|
||||||
class _anonstruct21(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion22(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct23(Struct): pass
|
]
|
||||||
|
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)
|
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__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)
|
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)
|
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 struct_pm4_mes_query_status(Struct): pass
|
||||||
class _anonunion24(ctypes.Union): pass
|
class struct_pm4_mes_query_status_0(ctypes.Union): pass
|
||||||
class _anonunion25(ctypes.Union): pass
|
struct_pm4_mes_query_status_0._fields_ = [
|
||||||
class _anonstruct26(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion27(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct28(Struct): pass
|
]
|
||||||
class _anonstruct29(Struct): pass
|
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)
|
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__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)
|
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)
|
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 struct_pm4_mes_unmap_queues(Struct): pass
|
||||||
class _anonunion30(ctypes.Union): pass
|
class struct_pm4_mes_unmap_queues_0(ctypes.Union): pass
|
||||||
class _anonunion31(ctypes.Union): pass
|
struct_pm4_mes_unmap_queues_0._fields_ = [
|
||||||
class _anonstruct32(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion33(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct34(Struct): pass
|
]
|
||||||
class _anonstruct35(Struct): pass
|
class struct_pm4_mes_unmap_queues_1(ctypes.Union): pass
|
||||||
class _anonunion36(ctypes.Union): pass
|
class struct_pm4_mes_unmap_queues_1_bitfields2(Struct): pass
|
||||||
class _anonstruct37(Struct): pass
|
struct_pm4_mes_unmap_queues_1_bitfields2._fields_ = [
|
||||||
class _anonunion38(ctypes.Union): pass
|
('action', enum_mes_unmap_queues_action_enum,2),
|
||||||
class _anonstruct39(Struct): pass
|
('extended_engine_sel', enum_mes_unmap_queues_extended_engine_sel_enum,2),
|
||||||
class _anonunion40(ctypes.Union): pass
|
('queue_sel', enum_mes_unmap_queues_queue_sel_enum,2),
|
||||||
class _anonstruct41(Struct): pass
|
('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)
|
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__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)
|
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)
|
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 struct_pm4_mec_release_mem(Struct): pass
|
||||||
class _anonunion42(ctypes.Union): pass
|
class struct_pm4_mec_release_mem_0(ctypes.Union): pass
|
||||||
class _anonunion43(ctypes.Union): pass
|
struct_pm4_mec_release_mem_0._fields_ = [
|
||||||
class _anonstruct44(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion45(ctypes.Union): pass
|
('ordinal1', ctypes.c_uint32),
|
||||||
class _anonstruct46(Struct): pass
|
]
|
||||||
class _anonunion47(ctypes.Union): pass
|
class struct_pm4_mec_release_mem_1(ctypes.Union): pass
|
||||||
class _anonstruct48(Struct): pass
|
class struct_pm4_mec_release_mem_1_bitfields2(Struct): pass
|
||||||
class _anonstruct49(Struct): pass
|
struct_pm4_mec_release_mem_1_bitfields2._fields_ = [
|
||||||
class _anonunion50(ctypes.Union): pass
|
('event_type', ctypes.c_uint32,6),
|
||||||
class _anonunion51(ctypes.Union): pass
|
('reserved1', ctypes.c_uint32,2),
|
||||||
class _anonstruct52(Struct): pass
|
('event_index', enum_mec_release_mem_event_index_enum,4),
|
||||||
class _anonunion53(ctypes.Union): pass
|
('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)
|
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__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)
|
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)
|
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 struct_pm4_mec_write_data_mmio(Struct): pass
|
||||||
class _anonunion54(ctypes.Union): pass
|
class struct_pm4_mec_write_data_mmio_0(ctypes.Union): pass
|
||||||
class _anonunion55(ctypes.Union): pass
|
struct_pm4_mec_write_data_mmio_0._fields_ = [
|
||||||
class _anonunion55_bitfields2(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
_anonunion55_bitfields2._fields_ = [
|
('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),
|
('reserved1', ctypes.c_uint32,8),
|
||||||
('dst_sel', ctypes.c_uint32,4),
|
('dst_sel', ctypes.c_uint32,4),
|
||||||
('reserved2', ctypes.c_uint32,4),
|
('reserved2', ctypes.c_uint32,4),
|
||||||
@@ -197,22 +593,30 @@ _anonunion55_bitfields2._fields_ = [
|
|||||||
('cache_policy', ctypes.c_uint32,2),
|
('cache_policy', ctypes.c_uint32,2),
|
||||||
('reserved5', ctypes.c_uint32,5),
|
('reserved5', ctypes.c_uint32,5),
|
||||||
]
|
]
|
||||||
_anonunion55._fields_ = [
|
struct_pm4_mec_write_data_mmio_1._fields_ = [
|
||||||
('bitfields2', _anonunion55_bitfields2),
|
('bitfields2', struct_pm4_mec_write_data_mmio_1_bitfields2),
|
||||||
('ordinal2', ctypes.c_uint32),
|
('ordinal2', ctypes.c_uint32),
|
||||||
]
|
]
|
||||||
class _anonunion56(ctypes.Union): pass
|
class struct_pm4_mec_write_data_mmio_2(ctypes.Union): pass
|
||||||
class _anonunion56_bitfields3(Struct): pass
|
class struct_pm4_mec_write_data_mmio_2_bitfields3(Struct): pass
|
||||||
_anonunion56_bitfields3._fields_ = [
|
struct_pm4_mec_write_data_mmio_2_bitfields3._fields_ = [
|
||||||
('dst_mmreg_addr', ctypes.c_uint32,18),
|
('dst_mmreg_addr', ctypes.c_uint32,18),
|
||||||
('reserved6', ctypes.c_uint32,14),
|
('reserved6', ctypes.c_uint32,14),
|
||||||
]
|
]
|
||||||
_anonunion56._fields_ = [
|
struct_pm4_mec_write_data_mmio_2._fields_ = [
|
||||||
('bitfields3', _anonunion56_bitfields3),
|
('bitfields3', struct_pm4_mec_write_data_mmio_2_bitfields3),
|
||||||
('ordinal3', ctypes.c_uint32),
|
('ordinal3', ctypes.c_uint32),
|
||||||
]
|
]
|
||||||
_anonenum57 = CEnum(ctypes.c_uint32)
|
struct_pm4_mec_write_data_mmio._anonymous_ = ['_0', '_1', '_2']
|
||||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum57.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
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_TYPE0 = 0
|
||||||
PACKET_TYPE1 = 1
|
PACKET_TYPE1 = 1
|
||||||
|
|||||||
@@ -3,34 +3,193 @@ import ctypes
|
|||||||
from tinygrad.helpers import unwrap
|
from tinygrad.helpers import unwrap
|
||||||
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
from tinygrad.runtime.support.c import Struct, CEnum, _IO, _IOW, _IOR, _IOWR
|
||||||
class union_PM4_MES_TYPE_3_HEADER(ctypes.Union): pass
|
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)
|
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__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_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)
|
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 struct_pm4_mes_set_resources(Struct): pass
|
||||||
class _anonunion1(ctypes.Union): pass
|
class struct_pm4_mes_set_resources_0(ctypes.Union): pass
|
||||||
class _anonunion2(ctypes.Union): pass
|
struct_pm4_mes_set_resources_0._fields_ = [
|
||||||
class _anonstruct3(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion4(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct5(Struct): pass
|
]
|
||||||
class _anonunion6(ctypes.Union): pass
|
class struct_pm4_mes_set_resources_1(ctypes.Union): pass
|
||||||
class _anonstruct7(Struct): 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 struct_pm4_mes_runlist(Struct): pass
|
||||||
class _anonunion8(ctypes.Union): pass
|
class struct_pm4_mes_runlist_0(ctypes.Union): pass
|
||||||
class _anonunion9(ctypes.Union): pass
|
struct_pm4_mes_runlist_0._fields_ = [
|
||||||
class _anonstruct10(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion11(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct12(Struct): pass
|
]
|
||||||
|
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 struct_pm4_mes_map_process(Struct): pass
|
||||||
class _anonunion13(ctypes.Union): pass
|
class struct_pm4_mes_map_process_0(ctypes.Union): pass
|
||||||
class _anonunion14(ctypes.Union): pass
|
struct_pm4_mes_map_process_0._fields_ = [
|
||||||
class _anonstruct15(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion16(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct17(Struct): pass
|
]
|
||||||
|
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 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)
|
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_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)
|
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)
|
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 struct_pm4_mes_map_queues(Struct): pass
|
||||||
class _anonunion19(ctypes.Union): pass
|
class struct_pm4_mes_map_queues_0(ctypes.Union): pass
|
||||||
class _anonunion20(ctypes.Union): pass
|
struct_pm4_mes_map_queues_0._fields_ = [
|
||||||
class _anonstruct21(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion22(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct23(Struct): pass
|
]
|
||||||
|
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)
|
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__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)
|
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)
|
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 struct_pm4_mes_query_status(Struct): pass
|
||||||
class _anonunion24(ctypes.Union): pass
|
class struct_pm4_mes_query_status_0(ctypes.Union): pass
|
||||||
class _anonunion25(ctypes.Union): pass
|
struct_pm4_mes_query_status_0._fields_ = [
|
||||||
class _anonstruct26(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion27(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct28(Struct): pass
|
]
|
||||||
class _anonstruct29(Struct): pass
|
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)
|
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__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)
|
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)
|
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 struct_pm4_mes_unmap_queues(Struct): pass
|
||||||
class _anonunion30(ctypes.Union): pass
|
class struct_pm4_mes_unmap_queues_0(ctypes.Union): pass
|
||||||
class _anonunion31(ctypes.Union): pass
|
struct_pm4_mes_unmap_queues_0._fields_ = [
|
||||||
class _anonstruct32(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion33(ctypes.Union): pass
|
('ordinal1', uint32_t),
|
||||||
class _anonstruct34(Struct): pass
|
]
|
||||||
class _anonstruct35(Struct): pass
|
class struct_pm4_mes_unmap_queues_1(ctypes.Union): pass
|
||||||
class _anonunion36(ctypes.Union): pass
|
class struct_pm4_mes_unmap_queues_1_bitfields2(Struct): pass
|
||||||
class _anonstruct37(Struct): pass
|
struct_pm4_mes_unmap_queues_1_bitfields2._fields_ = [
|
||||||
class _anonunion38(ctypes.Union): pass
|
('action', enum_mes_unmap_queues_action_enum,2),
|
||||||
class _anonstruct39(Struct): pass
|
('extended_engine_sel', enum_mes_unmap_queues_extended_engine_sel_enum,2),
|
||||||
class _anonunion40(ctypes.Union): pass
|
('queue_sel', enum_mes_unmap_queues_queue_sel_enum,2),
|
||||||
class _anonstruct41(Struct): pass
|
('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)
|
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__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)
|
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)
|
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 struct_pm4_mec_release_mem(Struct): pass
|
||||||
class _anonunion42(ctypes.Union): pass
|
class struct_pm4_mec_release_mem_0(ctypes.Union): pass
|
||||||
class _anonunion43(ctypes.Union): pass
|
struct_pm4_mec_release_mem_0._fields_ = [
|
||||||
class _anonstruct44(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
class _anonunion45(ctypes.Union): pass
|
('ordinal1', ctypes.c_uint32),
|
||||||
class _anonstruct46(Struct): pass
|
]
|
||||||
class _anonunion47(ctypes.Union): pass
|
class struct_pm4_mec_release_mem_1(ctypes.Union): pass
|
||||||
class _anonstruct48(Struct): pass
|
class struct_pm4_mec_release_mem_1_bitfields2(Struct): pass
|
||||||
class _anonstruct49(Struct): pass
|
struct_pm4_mec_release_mem_1_bitfields2._fields_ = [
|
||||||
class _anonunion50(ctypes.Union): pass
|
('event_type', ctypes.c_uint32,6),
|
||||||
class _anonunion51(ctypes.Union): pass
|
('reserved1', ctypes.c_uint32,2),
|
||||||
class _anonstruct52(Struct): pass
|
('event_index', enum_mec_release_mem_event_index_enum,4),
|
||||||
class _anonunion53(ctypes.Union): pass
|
('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)
|
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__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)
|
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)
|
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 struct_pm4_mec_write_data_mmio(Struct): pass
|
||||||
class _anonunion54(ctypes.Union): pass
|
class struct_pm4_mec_write_data_mmio_0(ctypes.Union): pass
|
||||||
class _anonunion55(ctypes.Union): pass
|
struct_pm4_mec_write_data_mmio_0._fields_ = [
|
||||||
class _anonunion55_bitfields2(Struct): pass
|
('header', union_PM4_MES_TYPE_3_HEADER),
|
||||||
_anonunion55_bitfields2._fields_ = [
|
('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),
|
('reserved1', ctypes.c_uint32,8),
|
||||||
('dst_sel', ctypes.c_uint32,4),
|
('dst_sel', ctypes.c_uint32,4),
|
||||||
('reserved2', ctypes.c_uint32,4),
|
('reserved2', ctypes.c_uint32,4),
|
||||||
@@ -197,22 +593,30 @@ _anonunion55_bitfields2._fields_ = [
|
|||||||
('cache_policy', ctypes.c_uint32,2),
|
('cache_policy', ctypes.c_uint32,2),
|
||||||
('reserved5', ctypes.c_uint32,5),
|
('reserved5', ctypes.c_uint32,5),
|
||||||
]
|
]
|
||||||
_anonunion55._fields_ = [
|
struct_pm4_mec_write_data_mmio_1._fields_ = [
|
||||||
('bitfields2', _anonunion55_bitfields2),
|
('bitfields2', struct_pm4_mec_write_data_mmio_1_bitfields2),
|
||||||
('ordinal2', ctypes.c_uint32),
|
('ordinal2', ctypes.c_uint32),
|
||||||
]
|
]
|
||||||
class _anonunion56(ctypes.Union): pass
|
class struct_pm4_mec_write_data_mmio_2(ctypes.Union): pass
|
||||||
class _anonunion56_bitfields3(Struct): pass
|
class struct_pm4_mec_write_data_mmio_2_bitfields3(Struct): pass
|
||||||
_anonunion56_bitfields3._fields_ = [
|
struct_pm4_mec_write_data_mmio_2_bitfields3._fields_ = [
|
||||||
('dst_mmreg_addr', ctypes.c_uint32,18),
|
('dst_mmreg_addr', ctypes.c_uint32,18),
|
||||||
('reserved6', ctypes.c_uint32,14),
|
('reserved6', ctypes.c_uint32,14),
|
||||||
]
|
]
|
||||||
_anonunion56._fields_ = [
|
struct_pm4_mec_write_data_mmio_2._fields_ = [
|
||||||
('bitfields3', _anonunion56_bitfields3),
|
('bitfields3', struct_pm4_mec_write_data_mmio_2_bitfields3),
|
||||||
('ordinal3', ctypes.c_uint32),
|
('ordinal3', ctypes.c_uint32),
|
||||||
]
|
]
|
||||||
_anonenum57 = CEnum(ctypes.c_uint32)
|
struct_pm4_mec_write_data_mmio._anonymous_ = ['_0', '_1', '_2']
|
||||||
CACHE_FLUSH_AND_INV_TS_EVENT = _anonenum57.define('CACHE_FLUSH_AND_INV_TS_EVENT', 20)
|
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_GFX_RINGS = 1
|
||||||
GFX9_NUM_COMPUTE_RINGS = 8
|
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_TMP_MAX6604 = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_TMP_MAX6604', 4)
|
||||||
I2C_CONTROLLER_PROTOCOL_COUNT = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_COUNT', 5)
|
I2C_CONTROLLER_PROTOCOL_COUNT = I2cControllerProtocol_e.define('I2C_CONTROLLER_PROTOCOL_COUNT', 5)
|
||||||
|
|
||||||
class _anonstruct0(Struct): pass
|
class I2cControllerConfig_t(Struct): pass
|
||||||
I2cControllerConfig_t = _anonstruct0
|
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)
|
I2cPort_e = CEnum(ctypes.c_uint32)
|
||||||
I2C_PORT_SVD_SCL = I2cPort_e.define('I2C_PORT_SVD_SCL', 0)
|
I2C_PORT_SVD_SCL = I2cPort_e.define('I2C_PORT_SVD_SCL', 0)
|
||||||
I2C_PORT_GPIO = I2cPort_e.define('I2C_PORT_GPIO', 1)
|
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_WRITE = I2cCmdType_e.define('I2C_CMD_WRITE', 1)
|
||||||
I2C_CMD_COUNT = I2cCmdType_e.define('I2C_CMD_COUNT', 2)
|
I2C_CMD_COUNT = I2cCmdType_e.define('I2C_CMD_COUNT', 2)
|
||||||
|
|
||||||
class _anonstruct1(Struct): pass
|
class SwI2cCmd_t(Struct): pass
|
||||||
SwI2cCmd_t = _anonstruct1
|
SwI2cCmd_t._fields_ = [
|
||||||
class _anonstruct2(Struct): pass
|
('ReadWriteData', uint8_t),
|
||||||
SwI2cRequest_t = _anonstruct2
|
('CmdConfig', uint8_t),
|
||||||
class _anonstruct3(Struct): pass
|
]
|
||||||
SwI2cRequestExternal_t = _anonstruct3
|
class SwI2cRequest_t(Struct): pass
|
||||||
class _anonstruct4(Struct): pass
|
SwI2cRequest_t._fields_ = [
|
||||||
EccInfo_t = _anonstruct4
|
('I2CcontrollerPort', uint8_t),
|
||||||
class _anonstruct5(Struct): pass
|
('I2CSpeed', uint8_t),
|
||||||
EccInfoTable_t = _anonstruct5
|
('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)
|
D3HOTSequence_e = CEnum(ctypes.c_uint32)
|
||||||
BACO_SEQUENCE = D3HOTSequence_e.define('BACO_SEQUENCE', 0)
|
BACO_SEQUENCE = D3HOTSequence_e.define('BACO_SEQUENCE', 0)
|
||||||
MSR_SEQUENCE = D3HOTSequence_e.define('MSR_SEQUENCE', 1)
|
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_DOWN = PowerGatingSettings_e.define('PG_POWER_DOWN', 0)
|
||||||
PG_POWER_UP = PowerGatingSettings_e.define('PG_POWER_UP', 1)
|
PG_POWER_UP = PowerGatingSettings_e.define('PG_POWER_UP', 1)
|
||||||
|
|
||||||
class _anonstruct6(Struct): pass
|
class QuadraticInt_t(Struct): pass
|
||||||
QuadraticInt_t = _anonstruct6
|
QuadraticInt_t._fields_ = [
|
||||||
class _anonstruct7(Struct): pass
|
('a', uint32_t),
|
||||||
LinearInt_t = _anonstruct7
|
('b', uint32_t),
|
||||||
class _anonstruct8(Struct): pass
|
('c', uint32_t),
|
||||||
DroopInt_t = _anonstruct8
|
]
|
||||||
|
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_e = CEnum(ctypes.c_uint32)
|
||||||
DCS_ARCH_DISABLED = DCS_ARCH_e.define('DCS_ARCH_DISABLED', 0)
|
DCS_ARCH_DISABLED = DCS_ARCH_e.define('DCS_ARCH_DISABLED', 0)
|
||||||
DCS_ARCH_FADCS = DCS_ARCH_e.define('DCS_ARCH_FADCS', 1)
|
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_ESTIMATED = PwrConfig_e.define('PWR_CONFIG_TCP_ESTIMATED', 2)
|
||||||
PWR_CONFIG_TCP_MEASURED = PwrConfig_e.define('PWR_CONFIG_TCP_MEASURED', 3)
|
PWR_CONFIG_TCP_MEASURED = PwrConfig_e.define('PWR_CONFIG_TCP_MEASURED', 3)
|
||||||
|
|
||||||
class _anonstruct9(Struct): pass
|
class DpmDescriptor_t(Struct): pass
|
||||||
DpmDescriptor_t = _anonstruct9
|
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_e = CEnum(ctypes.c_uint32)
|
||||||
PPT_THROTTLER_PPT0 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT0', 0)
|
PPT_THROTTLER_PPT0 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT0', 0)
|
||||||
PPT_THROTTLER_PPT1 = PPT_THROTTLER_e.define('PPT_THROTTLER_PPT1', 1)
|
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_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)
|
PP_GRTAVFS_FW_SEP_FUSE_COUNT = PP_GRTAVFS_FW_SEP_FUSE_e.define('PP_GRTAVFS_FW_SEP_FUSE_COUNT', 19)
|
||||||
|
|
||||||
class _anonstruct10(Struct): pass
|
class SviTelemetryScale_t(Struct): pass
|
||||||
SviTelemetryScale_t = _anonstruct10
|
int8_t = ctypes.c_char
|
||||||
|
SviTelemetryScale_t._fields_ = [
|
||||||
|
('Offset', int8_t),
|
||||||
|
('Padding', uint8_t),
|
||||||
|
('MaxCurrent', uint16_t),
|
||||||
|
]
|
||||||
FanMode_e = CEnum(ctypes.c_uint32)
|
FanMode_e = CEnum(ctypes.c_uint32)
|
||||||
FAN_MODE_AUTO = FanMode_e.define('FAN_MODE_AUTO', 0)
|
FAN_MODE_AUTO = FanMode_e.define('FAN_MODE_AUTO', 0)
|
||||||
FAN_MODE_MANUAL_LINEAR = FanMode_e.define('FAN_MODE_MANUAL_LINEAR', 1)
|
FAN_MODE_MANUAL_LINEAR = FanMode_e.define('FAN_MODE_MANUAL_LINEAR', 1)
|
||||||
|
|
||||||
class _anonstruct11(Struct): pass
|
class OverDriveTable_t(Struct): pass
|
||||||
OverDriveTable_t = _anonstruct11
|
int16_t = ctypes.c_int16
|
||||||
class _anonstruct12(Struct): pass
|
OverDriveTable_t._fields_ = [
|
||||||
OverDriveTableExternal_t = _anonstruct12
|
('FeatureCtrlMask', uint32_t),
|
||||||
class _anonstruct13(Struct): pass
|
('VoltageOffsetPerZoneBoundary', (int16_t * 6)),
|
||||||
OverDriveLimits_t = _anonstruct13
|
('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_TYPE_e = CEnum(ctypes.c_uint32)
|
||||||
BOARD_GPIO_SMUIO_0 = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_SMUIO_0', 0)
|
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)
|
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_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)
|
BOARD_GPIO_DC_SWAPLOCK_B = BOARD_GPIO_TYPE_e.define('BOARD_GPIO_DC_SWAPLOCK_B', 43)
|
||||||
|
|
||||||
class _anonstruct14(Struct): pass
|
class BootValues_t(Struct): pass
|
||||||
BootValues_t = _anonstruct14
|
BootValues_t._fields_ = [
|
||||||
class _anonstruct15(Struct): pass
|
('InitGfxclk_bypass', uint16_t),
|
||||||
MsgLimits_t = _anonstruct15
|
('InitSocclk', uint16_t),
|
||||||
class _anonstruct16(Struct): pass
|
('InitMp0clk', uint16_t),
|
||||||
DriverReportedClocks_t = _anonstruct16
|
('InitMpioclk', uint16_t),
|
||||||
class _anonstruct17(Struct): pass
|
('InitSmnclk', uint16_t),
|
||||||
AvfsDcBtcParams_t = _anonstruct17
|
('InitUcpclk', uint16_t),
|
||||||
class _anonstruct18(Struct): pass
|
('InitCsrclk', uint16_t),
|
||||||
AvfsFuseOverride_t = _anonstruct18
|
('InitDprefclk', uint16_t),
|
||||||
class _anonstruct19(Struct): pass
|
('InitDcfclk', uint16_t),
|
||||||
SkuTable_t = _anonstruct19
|
('InitDtbclk', uint16_t),
|
||||||
class _anonstruct20(Struct): pass
|
('InitDclk', uint16_t),
|
||||||
BoardTable_t = _anonstruct20
|
('InitVclk', uint16_t),
|
||||||
class _anonstruct21(Struct): pass
|
('InitUsbdfsclk', uint16_t),
|
||||||
PPTable_t = _anonstruct21
|
('InitMp1clk', uint16_t),
|
||||||
class _anonstruct22(Struct): pass
|
('InitLclk', uint16_t),
|
||||||
DriverSmuConfig_t = _anonstruct22
|
('InitBaco400clk_bypass', uint16_t),
|
||||||
class _anonstruct23(Struct): pass
|
('InitBaco1200clk_bypass', uint16_t),
|
||||||
DriverSmuConfigExternal_t = _anonstruct23
|
('InitBaco700clk_bypass', uint16_t),
|
||||||
class _anonstruct24(Struct): pass
|
('InitFclk', uint16_t),
|
||||||
DriverInfoTable_t = _anonstruct24
|
('InitGfxclk_clkb', uint16_t),
|
||||||
class _anonstruct25(Struct): pass
|
('InitUclkDPMState', uint8_t),
|
||||||
SmuMetrics_t = _anonstruct25
|
('Padding', (uint8_t * 3)),
|
||||||
class _anonstruct26(Struct): pass
|
('InitVcoFreqPll0', uint32_t),
|
||||||
SmuMetricsExternal_t = _anonstruct26
|
('InitVcoFreqPll1', uint32_t),
|
||||||
class _anonstruct27(Struct): pass
|
('InitVcoFreqPll2', uint32_t),
|
||||||
WatermarkRowGeneric_t = _anonstruct27
|
('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_FLAGS_e = CEnum(ctypes.c_uint32)
|
||||||
WATERMARKS_CLOCK_RANGE = WATERMARKS_FLAGS_e.define('WATERMARKS_CLOCK_RANGE', 0)
|
WATERMARKS_CLOCK_RANGE = WATERMARKS_FLAGS_e.define('WATERMARKS_CLOCK_RANGE', 0)
|
||||||
WATERMARKS_DUMMY_PSTATE = WATERMARKS_FLAGS_e.define('WATERMARKS_DUMMY_PSTATE', 1)
|
WATERMARKS_DUMMY_PSTATE = WATERMARKS_FLAGS_e.define('WATERMARKS_DUMMY_PSTATE', 1)
|
||||||
WATERMARKS_MALL = WATERMARKS_FLAGS_e.define('WATERMARKS_MALL', 2)
|
WATERMARKS_MALL = WATERMARKS_FLAGS_e.define('WATERMARKS_MALL', 2)
|
||||||
WATERMARKS_COUNT = WATERMARKS_FLAGS_e.define('WATERMARKS_COUNT', 3)
|
WATERMARKS_COUNT = WATERMARKS_FLAGS_e.define('WATERMARKS_COUNT', 3)
|
||||||
|
|
||||||
class _anonstruct28(Struct): pass
|
class Watermarks_t(Struct): pass
|
||||||
Watermarks_t = _anonstruct28
|
Watermarks_t._fields_ = [
|
||||||
class _anonstruct29(Struct): pass
|
('WatermarkRow', (WatermarkRowGeneric_t * 4)),
|
||||||
WatermarksExternal_t = _anonstruct29
|
]
|
||||||
class _anonstruct30(Struct): pass
|
class WatermarksExternal_t(Struct): pass
|
||||||
AvfsDebugTable_t = _anonstruct30
|
WatermarksExternal_t._fields_ = [
|
||||||
class _anonstruct31(Struct): pass
|
('Watermarks', Watermarks_t),
|
||||||
AvfsDebugTableExternal_t = _anonstruct31
|
('Spare', (uint32_t * 16)),
|
||||||
class _anonstruct32(Struct): pass
|
('MmHubPadding', (uint32_t * 8)),
|
||||||
DpmActivityMonitorCoeffInt_t = _anonstruct32
|
]
|
||||||
class _anonstruct33(Struct): pass
|
class AvfsDebugTable_t(Struct): pass
|
||||||
DpmActivityMonitorCoeffIntExternal_t = _anonstruct33
|
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
|
class struct_smu_hw_power_state(Struct): pass
|
||||||
struct_smu_hw_power_state._fields_ = [
|
struct_smu_hw_power_state._fields_ = [
|
||||||
('magic', ctypes.c_uint32),
|
('magic', ctypes.c_uint32),
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user