SWDEV-375181 - Fixed amdsmi_get_fw_info python output

Change-Id: I4bf4bf49cd921d52849e1bb140e464e2756b07c5
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
Tá an tiomantas seo le fáil i:
Dalibor Stanisavljevic
2022-12-28 16:11:10 +01:00
tuismitheoir 79bd9c1d5f
tiomantas e217fff82c
D'athraigh 3 comhad le 45 breiseanna agus 115 scriosta
+5 -49
Féach ar an gComhad
@@ -448,51 +448,7 @@ Output: Dictionary with fields
Field | Description
---|---
`FW_ID_SMU` | SMU info
`FW_ID_CP_CE` | CP_CE info
`FW_ID_CP_PFP` | CP_PFP info
`FW_ID_CP_ME` | CP_ME info
`FW_ID_CP_MEC_JT1` | CP_MEC_JT1 info
`FW_ID_CP_MEC_JT2` | CP_MEC_JT2 info
`FW_ID_CP_MEC1` | CP_MEC1 info
`FW_ID_CP_MEC2` | CP_MEC2 info
`FW_ID_RLC` | RLC info
`FW_ID_SDMA0` | SDMA0 info
`FW_ID_SDMA1` | SDMA1 info
`FW_ID_SDMA2` | SDMA2 info
`FW_ID_SDMA3` | SDMA3 info
`FW_ID_SDMA4` | SDMA4 info
`FW_ID_SDMA5` | SDMA5 info
`FW_ID_SDMA6` | SDMA6 info
`FW_ID_SDMA7` | SDMA7 info
`FW_ID_VCN` | VCN info
`FW_ID_UVD` | UVD info
`FW_ID_VCE` | VCE info
`FW_ID_ISP` | ISP info
`FW_ID_DMCU_ERAM` | DMCU_ERAM info
`FW_ID_DMCU_ISR` | DMCU_ISR info
`FW_ID_RLC_RESTORE_LIST_GPM_MEM` | RLC_RESTORE_LIST_GPM_MEM info
`FW_ID_RLC_RESTORE_LIST_SRM_MEM` | RLC_RESTORE_LIST_SRM_MEM info
`FW_ID_RLC_RESTORE_LIST_CNTL` | RLC_RESTORE_LIST_CNTL info
`FW_ID_RLC_V` | RLC_V info
`FW_ID_MMSCH` | MMSCH info
`FW_ID_PSP_SYSDRV` | PSP_SYSDRV info
`FW_ID_PSP_SOSDRV` | PSP_SOSDRV info
`FW_ID_PSP_TOC` | PSP_TOC info
`FW_ID_PSP_KEYDB` | PSP_KEYDB info
`FW_ID_DFC` | DFC info
`FW_ID_PSP_SPL` | PSP_SPL info
`FW_ID_DRV_CAP` | DRV_CAP info
`FW_ID_MC` | MC info
`FW_ID_PSP_BL` | PSP_BL info
`FW_ID_CP_PM4` | CP_PM4 info
`FW_ID_ASD` | ASD info
`FW_ID_TA_RAS` | TA_RAS info
`FW_ID_XGMI` | XGMI info
`FW_ID_RLC_SRLG` | RLC_SRLG info
`FW_ID_RLC_SRLS` | RLC_SRLS info
`FW_ID_SMC` | SMC info
`FW_ID_DMCU` | DMCU info
`fw_list`| List of dictionaries that contain information about a certain firmware block
Exceptions that can be thrown by `amdsmi_get_fw_info` function:
* `AmdSmiLibraryException`
@@ -507,10 +463,10 @@ try:
print("No GPUs on machine")
else:
for device in devices:
fw_info = amdsmi_get_fw_info(device)
for block_name, block_value in fw_info.items():
print(block_name, str(block_value))
firmware_list = amdsmi_get_fw_info(device)['fw_list']
for firmware_block in firmware_list:
print(firmware_block['fw_name'])
print(firmware_block['fw_version'])
except AmdSmiException as e:
print(e)
```
+1 -1
Féach ar an gComhad
@@ -185,7 +185,7 @@ from .amdsmi_interface import AmdSmiInitFlags
from .amdsmi_interface import AmdSmiContainerTypes
from .amdsmi_interface import AmdSmiDeviceType
from .amdsmi_interface import AmdSmiMmIp
from .amdsmi_interface import AmdSmiFWBlock
from .amdsmi_interface import AmdSmiFwBlock
from .amdsmi_interface import AmdSmiClkType
from .amdsmi_interface import AmdSmiTemperatureType
from .amdsmi_interface import AmdSmiDevPerfLevel
+39 -65
Féach ar an gComhad
@@ -56,7 +56,7 @@ class AmdSmiMmIp(IntEnum):
VCN = amdsmi_wrapper.AMDSMI_MM_VCN
class AmdSmiFWBlock(IntEnum):
class AmdSmiFwBlock(IntEnum):
FW_ID_SMU = amdsmi_wrapper.FW_ID_SMU
FW_ID_CP_CE = amdsmi_wrapper.FW_ID_CP_CE
FW_ID_CP_PFP = amdsmi_wrapper.FW_ID_CP_PFP
@@ -376,38 +376,6 @@ _AMDSMI_GPU_UUID_SIZE = 38
_AMDSMI_STRING_LENGTH = 80
def _parse_fw_info(fw_info: amdsmi_wrapper.amdsmi_fw_info_t) -> Dict[str, Any]:
"""
Format firmware info extracted.
Parameters:
fw_info(`amdsmi_fw_info_t`): Struct containing the extracted info to be
formatted.
Returns:
`dict`: All of the firmware info formatted into a dictionary.
"""
if not isinstance(fw_info, amdsmi_wrapper.amdsmi_fw_info_t):
raise AmdSmiParameterException(
fw_info, amdsmi_wrapper.amdsmi_fw_info_t)
formatted_fw_info = dict()
formatted_fw_info = {"num_fw_info": fw_info.num_fw_info}
for i in range(0, fw_info.num_fw_info):
index = fw_info.fw_info_list[i].fw_id
value = amdsmi_wrapper.amdsmi_fw_block__enumvalues.get(index)
if value == "FW_ID_FIRST":
value = "FW_ID_SMU"
if value == "FW_ID__MAX":
continue
formatted_fw_info.update(
{value: fw_info.fw_info_list[i].fw_version})
return formatted_fw_info
def _format_bad_page_info(bad_page_info, bad_page_count: ctypes.c_uint32) -> List[Dict]:
"""
Format bad page info data retrieved.
@@ -1090,18 +1058,23 @@ def amdsmi_get_power_measure(
def amdsmi_get_fw_info(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
) -> Dict[str, Any]:
device_handle: amdsmi_wrapper.amdsmi_device_handle
) -> List[Dict[str, Any]]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
raise AmdSmiParameterException(
device_handle, amdsmi_wrapper.amdsmi_device_handle
)
device_handle, amdsmi_wrapper.amdsmi_device_handle)
fw_info = amdsmi_wrapper.amdsmi_fw_info_t()
_check_res(amdsmi_wrapper.amdsmi_get_fw_info(
device_handle, ctypes.byref(fw_info)))
return _parse_fw_info(fw_info)
firmwares = list()
for i in range(0, fw_info.num_fw_info):
firmwares.append({
'fw_name': AmdSmiFwBlock(fw_info.fw_info_list[i].fw_id),
'fw_version': fw_info.fw_info_list[i].fw_version,
})
return {
'fw_list': firmwares
}
def amdsmi_get_vram_usage(
@@ -1342,7 +1315,7 @@ def amdsmi_topo_get_link_weight(
return weight.value
def amdsmi_get_minmax_bandwidth(
def amdsmi_get_minmax_bandwidth(
device_handle_src: amdsmi_wrapper.amdsmi_device_handle,
device_handle_dst: amdsmi_wrapper.amdsmi_device_handle,
):
@@ -1392,7 +1365,8 @@ def amdsmi_topo_get_link_type(
_check_res(
amdsmi_wrapper.amdsmi_topo_get_link_type(
#device_handle_src, device_handle_dst, ctypes.byref(hops), type
device_handle_src, device_handle_dst, ctypes.byref(hops), ctypes.byref(type)
device_handle_src, device_handle_dst, ctypes.byref(
hops), ctypes.byref(type)
)
)
@@ -1529,7 +1503,7 @@ def amdsmi_read_counter(
}
def amdsmi_counter_get_available_counters(
def amdsmi_counter_get_available_counters(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
event_group: AmdSmiEventGroup,
) -> int:
@@ -1550,7 +1524,7 @@ def amdsmi_counter_get_available_counters(
return available.value
def amdsmi_dev_set_perf_level(
def amdsmi_dev_set_perf_level(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
perf_level: AmdSmiDevPerfLevel,
):
@@ -1565,7 +1539,7 @@ def amdsmi_dev_set_perf_level(
device_handle, perf_level))
def amdsmi_dev_get_power_profile_presets(
def amdsmi_dev_get_power_profile_presets(
device_handle: amdsmi_wrapper.amdsmi_device_handle, sensor_idx: int
) -> Dict[str, Any]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -1651,7 +1625,7 @@ def amdsmi_dev_reset_fan(
_check_res(amdsmi_wrapper.amdsmi_dev_reset_fan(device_handle, sensor_idx))
def amdsmi_dev_set_clk_freq(
def amdsmi_dev_set_clk_freq(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
clk_type: AmdSmiClkType,
freq_bitmask: int,
@@ -1672,7 +1646,7 @@ def amdsmi_dev_set_clk_freq(
)
def amdsmi_dev_set_overdrive_level_v1(
def amdsmi_dev_set_overdrive_level_v1(
device_handle: amdsmi_wrapper.amdsmi_device_handle, overdrive_value: int
):
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -1689,7 +1663,7 @@ def amdsmi_dev_set_overdrive_level_v1(
)
def amdsmi_dev_set_overdrive_level(
def amdsmi_dev_set_overdrive_level(
device_handle: amdsmi_wrapper.amdsmi_device_handle, overdrive_value: int
):
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -1814,7 +1788,7 @@ def amdsmi_get_func_iter_value(
}
def amdsmi_dev_set_pci_bandwidth(
def amdsmi_dev_set_pci_bandwidth(
device_handle: amdsmi_wrapper.amdsmi_device_handle, bitmask: int
) -> None:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -1883,7 +1857,7 @@ def amdsmi_dev_get_pci_throughput(device_handle: amdsmi_wrapper.amdsmi_device_ha
}
def amdsmi_dev_get_pci_replay_counter(device_handle: amdsmi_wrapper.amdsmi_device_handle):
def amdsmi_dev_get_pci_replay_counter(device_handle: amdsmi_wrapper.amdsmi_device_handle):
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
raise AmdSmiParameterException(
device_handle, amdsmi_wrapper.amdsmi_device_handle
@@ -1915,7 +1889,7 @@ def amdsmi_topo_get_numa_affinity(device_handle: amdsmi_wrapper.amdsmi_device_ha
return numa_node.value
def amdsmi_dev_set_power_cap(
def amdsmi_dev_set_power_cap(
device_handle: amdsmi_wrapper.amdsmi_device_handle, sensor_ind: int, cap: int
) -> None:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -1952,7 +1926,7 @@ def amdsmi_dev_get_power_ave(device_handle: amdsmi_wrapper.amdsmi_device_handle,
return power.value
def amdsmi_dev_set_power_profile(
def amdsmi_dev_set_power_profile(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
reserved: int,
profile: AmdSmiPowerProfilePresetMasks,
@@ -2048,7 +2022,7 @@ def amdsmi_dev_get_memory_total(device_handle: amdsmi_wrapper.amdsmi_device_hand
return total.value
def amdsmi_dev_set_od_clk_info(
def amdsmi_dev_set_od_clk_info(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
level: AmdSmiFreqInd,
value: int,
@@ -2096,7 +2070,7 @@ def amdsmi_dev_get_memory_usage(device_handle: amdsmi_wrapper.amdsmi_device_hand
return used.value
def amdsmi_dev_set_od_volt_info(
def amdsmi_dev_set_od_volt_info(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
vpoint: int,
clk_value: int,
@@ -2142,7 +2116,7 @@ def amdsmi_dev_get_memory_busy_percent(device_handle: amdsmi_wrapper.amdsmi_devi
return busy_percent.value
def amdsmi_dev_set_perf_level_v1(
def amdsmi_dev_set_perf_level_v1(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
perf_lvl: AmdSmiDevPerfLevel,
) -> None:
@@ -2215,7 +2189,7 @@ def amdsmi_dev_get_fan_speed_max(
return fan_speed.value
def amdsmi_dev_get_temp_metric(
def amdsmi_dev_get_temp_metric(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
sensor_type: AmdSmiTemperatureType,
metric: AmdSmiTemperatureMetric,
@@ -2239,7 +2213,7 @@ def amdsmi_dev_get_temp_metric(
return temp_value.value
def amdsmi_dev_get_volt_metric(
def amdsmi_dev_get_volt_metric(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
sensor_type: AmdSmiVoltageType,
metric: AmdSmiVoltageMetric,
@@ -2383,7 +2357,7 @@ def amdsmi_dev_get_overdrive_level(
return od_level.value
def amdsmi_dev_get_gpu_clk_freq(
def amdsmi_dev_get_gpu_clk_freq(
device_handle: amdsmi_wrapper.amdsmi_device_handle, clk_type: AmdSmiClkType
) -> Dict[str, Any]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2407,7 +2381,7 @@ def amdsmi_dev_get_gpu_clk_freq(
}
def amdsmi_dev_get_od_volt_info(
def amdsmi_dev_get_od_volt_info(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
) -> Dict[str, Any]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2444,7 +2418,7 @@ def amdsmi_dev_get_od_volt_info(
}
def amdsmi_dev_get_gpu_metrics_info(
def amdsmi_dev_get_gpu_metrics_info(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
) -> Dict[str, Any]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2497,7 +2471,7 @@ def amdsmi_dev_get_gpu_metrics_info(
}
def amdsmi_dev_get_od_volt_curve_regions(
def amdsmi_dev_get_od_volt_curve_regions(
device_handle: amdsmi_wrapper.amdsmi_device_handle, num_regions: int
) -> List[Dict[str, Any]]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2536,7 +2510,7 @@ def amdsmi_dev_get_od_volt_curve_regions(
return result
def amdsmi_dev_get_power_profile_presets(
def amdsmi_dev_get_power_profile_presets(
device_handle: amdsmi_wrapper.amdsmi_device_handle, sensor_idx: int
) -> Dict[str, Any]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2560,7 +2534,7 @@ def amdsmi_dev_get_power_profile_presets(
}
def amdsmi_dev_get_ecc_count(
def amdsmi_dev_get_ecc_count(
device_handle: amdsmi_wrapper.amdsmi_device_handle, block: AmdSmiGpuBlock
) -> Dict[str, int]:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2583,7 +2557,7 @@ def amdsmi_dev_get_ecc_count(
}
def amdsmi_dev_get_ecc_enabled(
def amdsmi_dev_get_ecc_enabled(
device_handle: amdsmi_wrapper.amdsmi_device_handle,
) -> int:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):
@@ -2600,7 +2574,7 @@ def amdsmi_dev_get_ecc_enabled(
return blocks.value
def amdsmi_dev_get_ecc_status(
def amdsmi_dev_get_ecc_status(
device_handle: amdsmi_wrapper.amdsmi_device_handle, block: AmdSmiGpuBlock
) -> AmdSmiRasErrState:
if not isinstance(device_handle, amdsmi_wrapper.amdsmi_device_handle):