Merge amd-dev into amd-master 20231116
Signed-off-by: guanyu12 <guanyu12@amd.com> Change-Id: I49c2a01f07b8b0415204083566b72a5afcd10c18
Этот коммит содержится в:
@@ -293,6 +293,10 @@ class AMDSMICommands():
|
||||
if args.vbios:
|
||||
try:
|
||||
vbios_info = amdsmi_interface.amdsmi_get_gpu_vbios_info(args.gpu)
|
||||
for key, value in vbios_info.items():
|
||||
if isinstance(value, str):
|
||||
if value.strip() == '':
|
||||
vbios_info[key] = "N/A"
|
||||
static_dict['vbios'] = vbios_info
|
||||
except amdsmi_exception.AmdSmiLibraryException as e:
|
||||
static_dict['vbios'] = "N/A"
|
||||
@@ -625,7 +629,7 @@ class AMDSMICommands():
|
||||
|
||||
for fw_index, fw_entry in enumerate(fw_info['fw_list']):
|
||||
# Change fw_name to fw_id
|
||||
fw_entry['fw_id'] = fw_entry.pop('fw_name').name.strip('FW_ID_')
|
||||
fw_entry['fw_id'] = fw_entry.pop('fw_name').name.replace("FW_ID_", "")
|
||||
fw_entry['fw_version'] = fw_entry.pop('fw_version') # popping to ensure order
|
||||
|
||||
# Add custom human readable formatting
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# ESMI Library README
|
||||
|
||||
For more information, see the [ESMI Library README](https://raw.githubusercontent.com/am/esmi_ib_library/master/docs/README.md)
|
||||
For more information, see the [ESMI Library README](https://raw.githubusercontent.com/amd/esmi_ib_library/master/docs/README.md)
|
||||
|
||||
@@ -191,8 +191,8 @@ void getFWNameFromId(int id, char *name)
|
||||
case FW_ID_TA_RAS:
|
||||
strcpy(name, "ID_TA_RAS");
|
||||
break;
|
||||
case FW_ID_XGMI:
|
||||
strcpy(name, "ID_XGMI");
|
||||
case FW_ID_TA_XGMI:
|
||||
strcpy(name, "ID_TA_XGMI");
|
||||
break;
|
||||
case FW_ID_RLC_SRLG:
|
||||
strcpy(name, "ID_RLC_SRLG");
|
||||
@@ -200,8 +200,8 @@ void getFWNameFromId(int id, char *name)
|
||||
case FW_ID_RLC_SRLS:
|
||||
strcpy(name, "ID_RLC_SRLS");
|
||||
break;
|
||||
case FW_ID_SMC:
|
||||
strcpy(name, "ID_SMC");
|
||||
case FW_ID_PM:
|
||||
strcpy(name, "ID_PM");
|
||||
break;
|
||||
case FW_ID_DMCU:
|
||||
strcpy(name, "ID_DMCU");
|
||||
|
||||
@@ -186,8 +186,8 @@ int main() {
|
||||
printf("\tSMU: %ld\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::FW_ID_SMU]
|
||||
.fw_version);
|
||||
printf("\tSMC: %ld\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::FW_ID_SMC]
|
||||
printf("\tPM: %ld\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::FW_ID_PM]
|
||||
.fw_version);
|
||||
printf("\tVCN: %ld\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::FW_ID_VCN]
|
||||
|
||||
@@ -357,10 +357,10 @@ typedef enum {
|
||||
FW_ID_RLC_SAVE_RESTORE_LIST,
|
||||
FW_ID_ASD,
|
||||
FW_ID_TA_RAS,
|
||||
FW_ID_XGMI,
|
||||
FW_ID_TA_XGMI,
|
||||
FW_ID_RLC_SRLG,
|
||||
FW_ID_RLC_SRLS,
|
||||
FW_ID_SMC,
|
||||
FW_ID_PM,
|
||||
FW_ID_DMCU,
|
||||
FW_ID__MAX
|
||||
} amdsmi_fw_block_t;
|
||||
|
||||
@@ -87,15 +87,15 @@ class AMDSmiSystem {
|
||||
amdsmi_status_t cpu_index_to_handle(uint32_t cpu_index,
|
||||
amdsmi_cpusocket_handle* cpusock_handle);
|
||||
|
||||
amdsmi_status_t get_cpu_sockets(uint32_t socks);
|
||||
amdsmi_status_t get_cpu_sockets(uint32_t *socks);
|
||||
|
||||
amdsmi_status_t get_cpu_cores(uint32_t cpus);
|
||||
amdsmi_status_t get_cpu_cores(uint32_t *cpus);
|
||||
|
||||
amdsmi_status_t get_threads_per_core(uint32_t threads);
|
||||
amdsmi_status_t get_threads_per_core(uint32_t *threads);
|
||||
|
||||
amdsmi_status_t get_cpu_family(uint32_t family);
|
||||
amdsmi_status_t get_cpu_family(uint32_t *family);
|
||||
|
||||
amdsmi_status_t get_cpu_model(uint32_t model);
|
||||
amdsmi_status_t get_cpu_model(uint32_t *model);
|
||||
#endif
|
||||
private:
|
||||
AMDSmiSystem() : init_flag_(AMDSMI_INIT_AMD_GPUS) {}
|
||||
|
||||
@@ -4069,3 +4069,133 @@ try:
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_socket_temperature
|
||||
|
||||
Description: Get the socket temperature.
|
||||
|
||||
Output: amdsmi temperature value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_socket_temperature` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
ptmon = amdsmi_get_cpu_socket_temperature(socket)
|
||||
print(ptmon)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_dimm_temp_range_and_refresh_rate
|
||||
|
||||
Description: Get DIMM temperature range and refresh rate.
|
||||
|
||||
Output: amdsmi dimm metric data
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_dimm_temp_range_and_refresh_rate` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(socket)
|
||||
print(dimm['range'])
|
||||
print(dimm['ref_rate'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_dimm_power_consumption
|
||||
|
||||
Description: amdsmi_get_cpu_dimm_power_consumption.
|
||||
|
||||
Output: amdsmi dimm power consumption value
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_dimm_power_consumption` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_power_consumption(socket)
|
||||
print(dimm['power'])
|
||||
print(dimm['update_rate'])
|
||||
print(dimm['dimm_addr'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_get_cpu_dimm_thermal_sensor
|
||||
|
||||
Description: Get DIMM thermal sensor value.
|
||||
|
||||
Output: amdsmi dimm temperature data
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_get_cpu_dimm_thermal_sensor` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
dimm = amdsmi_get_cpu_dimm_thermal_sensor(socket)
|
||||
print(dimm['sensor'])
|
||||
print(dimm['update_rate'])
|
||||
print(dimm['dimm_addr'])
|
||||
print(dimm['temp'])
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
### amdsmi_set_cpu_xgmi_width
|
||||
|
||||
Description: Set xgmi width.
|
||||
|
||||
Input: amdsmi xgmi width
|
||||
|
||||
Exceptions that can be thrown by `amdsmi_set_cpu_xgmi_width` function:
|
||||
|
||||
* `AmdSmiLibraryException`
|
||||
|
||||
Example:
|
||||
|
||||
```python
|
||||
try:
|
||||
socket_handles = amdsmi_get_cpusocket_handles()
|
||||
if len(socket_handles) == 0:
|
||||
print("No CPU sockets on machine")
|
||||
else:
|
||||
for socket in socket_handles:
|
||||
xgmi_width = amdsmi_set_cpu_xgmi_width(socket, 0, 100)
|
||||
except AmdSmiException as e:
|
||||
print(e)
|
||||
```
|
||||
|
||||
@@ -45,6 +45,21 @@ try:
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_freq_range
|
||||
from .amdsmi_interface import amdsmi_get_cpu_core_current_freq_limit
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_power
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_power_cap
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_power_cap_max
|
||||
from .amdsmi_interface import amdsmi_get_cpu_pwr_svi_telemetry_all_rails
|
||||
from .amdsmi_interface import amdsmi_set_cpu_socket_power_cap
|
||||
from .amdsmi_interface import amdsmi_set_cpu_pwr_efficiency_mode
|
||||
from .amdsmi_interface import amdsmi_get_cpu_core_boostlimit
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_c0_residency
|
||||
from .amdsmi_interface import amdsmi_set_cpu_core_boostlimit
|
||||
from .amdsmi_interface import amdsmi_set_cpu_socket_boostlimit
|
||||
from .amdsmi_interface import amdsmi_get_cpu_ddr_bw
|
||||
from .amdsmi_interface import amdsmi_get_cpu_socket_temperature
|
||||
from .amdsmi_interface import amdsmi_get_cpu_dimm_temp_range_and_refresh_rate
|
||||
from .amdsmi_interface import amdsmi_get_cpu_dimm_power_consumption
|
||||
from .amdsmi_interface import amdsmi_get_cpu_dimm_thermal_sensor
|
||||
from .amdsmi_interface import amdsmi_set_cpu_xgmi_width
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -130,10 +130,10 @@ class AmdSmiFwBlock(IntEnum):
|
||||
FW_ID_RLC_SAVE_RESTORE_LIST = amdsmi_wrapper.FW_ID_RLC_SAVE_RESTORE_LIST
|
||||
FW_ID_ASD = amdsmi_wrapper.FW_ID_ASD
|
||||
FW_ID_TA_RAS = amdsmi_wrapper.FW_ID_TA_RAS
|
||||
FW_ID_XGMI = amdsmi_wrapper.FW_ID_XGMI
|
||||
FW_ID_TA_XGMI = amdsmi_wrapper.FW_ID_TA_XGMI
|
||||
FW_ID_RLC_SRLG = amdsmi_wrapper.FW_ID_RLC_SRLG
|
||||
FW_ID_RLC_SRLS = amdsmi_wrapper.FW_ID_RLC_SRLS
|
||||
FW_ID_SMC = amdsmi_wrapper.FW_ID_SMC
|
||||
FW_ID_PM = amdsmi_wrapper.FW_ID_PM
|
||||
FW_ID_DMCU = amdsmi_wrapper.FW_ID_DMCU
|
||||
|
||||
|
||||
@@ -1063,6 +1063,111 @@ def amdsmi_get_cpu_ddr_bw(socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle)
|
||||
"ddr_bw_utilized_pct": ddr_bw.utilized_pct
|
||||
}
|
||||
|
||||
def amdsmi_get_cpu_socket_temperature(
|
||||
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, sock_idx: int
|
||||
) -> int:
|
||||
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
|
||||
raise AmdSmiParameterException(
|
||||
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
|
||||
)
|
||||
if not isinstance(sock_idx, int):
|
||||
raise AmdSmiParameterException(sock_idx, int)
|
||||
|
||||
ptmon = ctypes.c_uint32()
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_get_cpu_socket_temperature(
|
||||
socket_handle, sock_idx, ctypes.byref(ptmon)
|
||||
)
|
||||
)
|
||||
|
||||
return ptmon.value
|
||||
|
||||
def amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(
|
||||
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle,
|
||||
sock_idx: int, dimm_addr: int):
|
||||
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
|
||||
raise AmdSmiParameterException(
|
||||
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
|
||||
)
|
||||
if not isinstance(sock_idx, int):
|
||||
raise AmdSmiParameterException(sock_idx, int)
|
||||
if not isinstance(dimm_addr, int):
|
||||
raise AmdSmiParameterException(dimm_addr, int)
|
||||
|
||||
dimm = amdsmi_wrapper.amdsmi_temp_range_refresh_rate_t()
|
||||
|
||||
_check_res(amdsmi_wrapper.amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(socket_handle, dimm))
|
||||
|
||||
return {
|
||||
"dimm_temperature_range": dimm.range,
|
||||
"dimm_refresh_rate": dimm.ref_rate
|
||||
}
|
||||
|
||||
def amdsmi_get_cpu_dimm_power_consumption(
|
||||
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle,
|
||||
sock_idx: int, dimm_addr: int):
|
||||
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
|
||||
raise AmdSmiParameterException(
|
||||
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
|
||||
)
|
||||
if not isinstance(sock_idx, int):
|
||||
raise AmdSmiParameterException(sock_idx, int)
|
||||
if not isinstance(dimm_addr, int):
|
||||
raise AmdSmiParameterException(dimm_addr, int)
|
||||
|
||||
dimm = amdsmi_wrapper.amdsmi_dimm_power_t()
|
||||
|
||||
_check_res(amdsmi_wrapper.amdsmi_get_cpu_dimm_power_consumption(socket_handle, dimm))
|
||||
|
||||
return {
|
||||
"dimm_power_consumed": dimm.power,
|
||||
"dimm_power_update_rate": dimm.update_rate,
|
||||
"dimm_dimm_addr": dimm.dimm_addr
|
||||
}
|
||||
|
||||
def amdsmi_get_cpu_dimm_thermal_sensor(
|
||||
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle,
|
||||
sock_idx: int, dimm_addr: int):
|
||||
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
|
||||
raise AmdSmiParameterException(
|
||||
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
|
||||
)
|
||||
if not isinstance(sock_idx, int):
|
||||
raise AmdSmiParameterException(sock_idx, int)
|
||||
if not isinstance(dimm_addr, int):
|
||||
raise AmdSmiParameterException(dimm_addr, int)
|
||||
|
||||
dimm_thermal = amdsmi_wrapper.amdsmi_dimm_thermal_t()
|
||||
|
||||
_check_res(amdsmi_wrapper.amdsmi_get_cpu_dimm_thermal_sensor(socket_handle, dimm_thermal))
|
||||
|
||||
return {
|
||||
"dimm_thermal_sensor_value": dimm_thermal.sensor,
|
||||
"dimm_thermal_update_rate": dimm_thermal.update_rate,
|
||||
"dimm_thermal_dimm_addr": dimm_thermal.dimm_addr,
|
||||
"dimm_thermal_temperature": dimm_thermal.temp
|
||||
}
|
||||
|
||||
def amdsmi_set_cpu_xgmi_width(
|
||||
socket_handle: amdsmi_wrapper.amdsmi_cpusocket_handle, min_width: int, max_width: int
|
||||
):
|
||||
if not isinstance(socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle):
|
||||
raise AmdSmiParameterException(
|
||||
socket_handle, amdsmi_wrapper.amdsmi_cpusocket_handle
|
||||
)
|
||||
if not isinstance(min_width, int):
|
||||
raise AmdSmiParameterException(min_width, int)
|
||||
if not isinstance(max_width, int):
|
||||
raise AmdSmiParameterException(max_width, int)
|
||||
|
||||
min_width = ctypes.c_uint8(min_width)
|
||||
max_width = ctypes.c_uint8(max_width)
|
||||
|
||||
_check_res(
|
||||
amdsmi_wrapper.amdsmi_set_cpu_xgmi_width(
|
||||
socket_handle, min_width, max_width)
|
||||
)
|
||||
|
||||
def amdsmi_init(flag=AmdSmiInitFlags.INIT_AMD_GPUS):
|
||||
if not isinstance(flag, AmdSmiInitFlags):
|
||||
raise AmdSmiParameterException(flag, AmdSmiInitFlags)
|
||||
@@ -1562,14 +1667,15 @@ def amdsmi_get_fw_info(
|
||||
_check_res(amdsmi_wrapper.amdsmi_get_fw_info(
|
||||
processor_handle, ctypes.byref(fw_info)))
|
||||
|
||||
hex_format_fw = [AmdSmiFwBlock.FW_ID_SMC,
|
||||
AmdSmiFwBlock.FW_ID_PSP_SOSDRV,
|
||||
hex_format_fw = [AmdSmiFwBlock.FW_ID_PSP_SOSDRV,
|
||||
AmdSmiFwBlock.FW_ID_TA_RAS,
|
||||
AmdSmiFwBlock.FW_ID_XGMI,
|
||||
AmdSmiFwBlock.FW_ID_TA_XGMI,
|
||||
AmdSmiFwBlock.FW_ID_UVD,
|
||||
AmdSmiFwBlock.FW_ID_VCE,
|
||||
AmdSmiFwBlock.FW_ID_VCN]
|
||||
|
||||
dec_format_fw = [AmdSmiFwBlock.FW_ID_PM]
|
||||
|
||||
firmwares = []
|
||||
for i in range(0, fw_info.num_fw_info):
|
||||
fw_name = AmdSmiFwBlock(fw_info.fw_info_list[i].fw_id)
|
||||
@@ -1577,6 +1683,12 @@ def amdsmi_get_fw_info(
|
||||
|
||||
if fw_name in hex_format_fw:
|
||||
fw_version_string = ".".join(re.findall('..?', hex(fw_version)[2:]))
|
||||
elif fw_name in dec_format_fw:
|
||||
# Convert every two hex digits to decimal and join them with a dot
|
||||
dec_version_string = ''
|
||||
for ver1,ver2 in zip(hex(fw_version)[2::2], hex(fw_version)[3::2]):
|
||||
dec_version_string += str(int(f"0x{ver1}{ver2}", 0)) + "."
|
||||
fw_version_string = dec_version_string.strip('.')
|
||||
else:
|
||||
fw_version_string = str(fw_version)
|
||||
|
||||
|
||||
@@ -496,10 +496,10 @@ amdsmi_fw_block_t__enumvalues = {
|
||||
71: 'FW_ID_RLC_SAVE_RESTORE_LIST',
|
||||
72: 'FW_ID_ASD',
|
||||
73: 'FW_ID_TA_RAS',
|
||||
74: 'FW_ID_XGMI',
|
||||
74: 'FW_ID_TA_XGMI',
|
||||
75: 'FW_ID_RLC_SRLG',
|
||||
76: 'FW_ID_RLC_SRLS',
|
||||
77: 'FW_ID_SMC',
|
||||
77: 'FW_ID_PM',
|
||||
78: 'FW_ID_DMCU',
|
||||
79: 'FW_ID__MAX',
|
||||
}
|
||||
@@ -577,10 +577,10 @@ FW_ID_RLCV_LX7 = 70
|
||||
FW_ID_RLC_SAVE_RESTORE_LIST = 71
|
||||
FW_ID_ASD = 72
|
||||
FW_ID_TA_RAS = 73
|
||||
FW_ID_XGMI = 74
|
||||
FW_ID_TA_XGMI = 74
|
||||
FW_ID_RLC_SRLG = 75
|
||||
FW_ID_RLC_SRLS = 76
|
||||
FW_ID_SMC = 77
|
||||
FW_ID_PM = 77
|
||||
FW_ID_DMCU = 78
|
||||
FW_ID__MAX = 79
|
||||
amdsmi_fw_block_t = ctypes.c_uint32 # enum
|
||||
@@ -2235,9 +2235,9 @@ __all__ = \
|
||||
'FW_ID_RS64_PFP_P1_DATA', 'FW_ID_SDMA0', 'FW_ID_SDMA1',
|
||||
'FW_ID_SDMA2', 'FW_ID_SDMA3', 'FW_ID_SDMA4', 'FW_ID_SDMA5',
|
||||
'FW_ID_SDMA6', 'FW_ID_SDMA7', 'FW_ID_SDMA_TH0', 'FW_ID_SDMA_TH1',
|
||||
'FW_ID_SEC_POLICY_STAGE2', 'FW_ID_SMC', 'FW_ID_SMU',
|
||||
'FW_ID_TA_RAS', 'FW_ID_UVD', 'FW_ID_VCE', 'FW_ID_VCN',
|
||||
'FW_ID_XGMI', 'FW_ID__MAX', 'MEMORY_PARTITION_NPS1',
|
||||
'FW_ID_SEC_POLICY_STAGE2', 'FW_ID_PM', 'FW_ID_SMU',
|
||||
'FW_ID_TA_RAS', 'FW_ID_TA_XGMI', 'FW_ID_UVD', 'FW_ID_VCE',
|
||||
'FW_ID_VCN', 'FW_ID__MAX', 'MEMORY_PARTITION_NPS1',
|
||||
'MEMORY_PARTITION_NPS2', 'MEMORY_PARTITION_NPS4',
|
||||
'MEMORY_PARTITION_NPS8', 'MEMORY_PARTITION_UNKNOWN',
|
||||
'NON_AMD_CPU', 'NON_AMD_GPU', 'RD_BW0', 'TEMPERATURE_TYPE_EDGE',
|
||||
|
||||
@@ -662,10 +662,10 @@ amdsmi_status_t amdsmi_get_fw_info(amdsmi_processor_handle processor_handle,
|
||||
{ FW_ID_RLC_RESTORE_LIST_SRM_MEM, RSMI_FW_BLOCK_RLC_SRLS},
|
||||
{ FW_ID_SDMA0, RSMI_FW_BLOCK_SDMA},
|
||||
{ FW_ID_SDMA1, RSMI_FW_BLOCK_SDMA2},
|
||||
{ FW_ID_SMC, RSMI_FW_BLOCK_SMC},
|
||||
{ FW_ID_PM, RSMI_FW_BLOCK_SMC},
|
||||
{ FW_ID_PSP_SOSDRV, RSMI_FW_BLOCK_SOS},
|
||||
{ FW_ID_TA_RAS, RSMI_FW_BLOCK_TA_RAS},
|
||||
{ FW_ID_XGMI, RSMI_FW_BLOCK_TA_XGMI},
|
||||
{ FW_ID_TA_XGMI, RSMI_FW_BLOCK_TA_XGMI},
|
||||
{ FW_ID_UVD, RSMI_FW_BLOCK_UVD},
|
||||
{ FW_ID_VCE, RSMI_FW_BLOCK_VCE},
|
||||
{ FW_ID_VCN, RSMI_FW_BLOCK_VCN}
|
||||
@@ -1499,20 +1499,19 @@ amdsmi_get_gpu_vbios_info(amdsmi_processor_handle processor_handle, amdsmi_vbios
|
||||
amdsmi_status_t status;
|
||||
|
||||
amd::smi::AMDSmiGPUDevice* gpu_device = nullptr;
|
||||
amdsmi_status_t r = get_gpu_device_from_handle(processor_handle, &gpu_device);
|
||||
if (r != AMDSMI_STATUS_SUCCESS)
|
||||
return r;
|
||||
status = get_gpu_device_from_handle(processor_handle, &gpu_device);
|
||||
if (status != AMDSMI_STATUS_SUCCESS)
|
||||
return status;
|
||||
|
||||
|
||||
if (gpu_device->check_if_drm_is_supported()) {
|
||||
status = gpu_device->amdgpu_query_vbios(&vbios);
|
||||
if (status != AMDSMI_STATUS_SUCCESS) {
|
||||
return status;
|
||||
if (status == AMDSMI_STATUS_SUCCESS) {
|
||||
strncpy(info->name, (char *) vbios.name, AMDSMI_MAX_STRING_LENGTH);
|
||||
strncpy(info->build_date, (char *) vbios.date, AMDSMI_MAX_DATE_LENGTH);
|
||||
strncpy(info->part_number, (char *) vbios.vbios_pn, AMDSMI_MAX_STRING_LENGTH);
|
||||
strncpy(info->version, (char *) vbios.vbios_ver_str, AMDSMI_NORMAL_STRING_LENGTH);
|
||||
}
|
||||
strncpy(info->name, (char *) vbios.name, AMDSMI_MAX_STRING_LENGTH);
|
||||
strncpy(info->build_date, (char *) vbios.date, AMDSMI_MAX_DATE_LENGTH);
|
||||
strncpy(info->part_number, (char *) vbios.vbios_pn, AMDSMI_MAX_STRING_LENGTH);
|
||||
strncpy(info->version, (char *) vbios.vbios_ver_str, AMDSMI_NORMAL_STRING_LENGTH);
|
||||
}
|
||||
else {
|
||||
// get vbios version string from rocm_smi
|
||||
@@ -1528,7 +1527,7 @@ amdsmi_get_gpu_vbios_info(amdsmi_processor_handle processor_handle, amdsmi_vbios
|
||||
}
|
||||
}
|
||||
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
return status;
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
@@ -2138,6 +2137,8 @@ amdsmi_status_t amdsmi_get_cpu_hsmp_proto_ver(amdsmi_cpusocket_handle socket_han
|
||||
amdsmi_status_t status;
|
||||
uint32_t hsmp_proto_ver;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2161,6 +2162,8 @@ amdsmi_status_t amdsmi_get_cpu_smu_fw_version(amdsmi_cpusocket_handle socket_han
|
||||
amdsmi_status_t status;
|
||||
struct smu_fw_version smu_fw;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2187,6 +2190,8 @@ amdsmi_status_t amdsmi_get_cpu_core_energy(amdsmi_processor_handle processor_han
|
||||
amdsmi_status_t status;
|
||||
uint64_t core_input;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (processor_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2211,6 +2216,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_energy(amdsmi_cpusocket_handle socket_hand
|
||||
amdsmi_status_t status;
|
||||
uint64_t pkg_input;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2234,6 +2241,8 @@ amdsmi_status_t amdsmi_get_cpu_prochot_status(amdsmi_cpusocket_handle socket_han
|
||||
amdsmi_status_t status;
|
||||
uint32_t phot;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2257,6 +2266,8 @@ amdsmi_status_t amdsmi_get_cpu_fclk_mclk(amdsmi_cpusocket_handle socket_handle,
|
||||
amdsmi_status_t status;
|
||||
uint32_t f_clk, m_clk;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2281,6 +2292,8 @@ amdsmi_status_t amdsmi_get_cpu_cclk_limit(amdsmi_cpusocket_handle socket_handle,
|
||||
amdsmi_status_t status;
|
||||
uint32_t c_clk;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2304,6 +2317,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_current_active_freq_limit(amdsmi_cpusocket
|
||||
amdsmi_status_t status;
|
||||
uint16_t limit;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2328,6 +2343,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_freq_range(amdsmi_cpusocket_handle socket_
|
||||
uint16_t f_max;
|
||||
uint16_t f_min;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2352,6 +2369,8 @@ amdsmi_status_t amdsmi_get_cpu_core_current_freq_limit(amdsmi_processor_handle p
|
||||
amdsmi_status_t status;
|
||||
uint32_t c_clk;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (processor_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2376,6 +2395,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_power(amdsmi_cpusocket_handle socket_handl
|
||||
amdsmi_status_t status;
|
||||
uint32_t avg_power;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2399,6 +2420,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_power_cap(amdsmi_cpusocket_handle socket_h
|
||||
amdsmi_status_t status;
|
||||
uint32_t p_cap;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2422,6 +2445,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_power_cap_max(amdsmi_cpusocket_handle sock
|
||||
amdsmi_status_t status;
|
||||
uint32_t p_max;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2445,6 +2470,8 @@ amdsmi_status_t amdsmi_get_cpu_pwr_svi_telemetry_all_rails(amdsmi_cpusocket_hand
|
||||
amdsmi_status_t status;
|
||||
uint32_t pow;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2467,6 +2494,8 @@ amdsmi_status_t amdsmi_set_cpu_socket_power_cap(amdsmi_cpusocket_handle socket_h
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2488,6 +2517,8 @@ amdsmi_status_t amdsmi_set_cpu_pwr_efficiency_mode(amdsmi_cpusocket_handle socke
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2510,6 +2541,8 @@ amdsmi_status_t amdsmi_get_cpu_core_boostlimit(amdsmi_processor_handle processor
|
||||
amdsmi_status_t status;
|
||||
uint32_t boostlimit;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (processor_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2533,6 +2566,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_c0_residency(amdsmi_cpusocket_handle socke
|
||||
amdsmi_status_t status;
|
||||
uint32_t res;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2555,6 +2590,8 @@ amdsmi_status_t amdsmi_set_cpu_core_boostlimit(amdsmi_processor_handle processor
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (processor_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2576,6 +2613,8 @@ amdsmi_status_t amdsmi_set_cpu_socket_boostlimit(amdsmi_cpusocket_handle socket_
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2598,6 +2637,8 @@ amdsmi_status_t amdsmi_get_cpu_ddr_bw(amdsmi_cpusocket_handle socket_handle,
|
||||
amdsmi_status_t status;
|
||||
struct ddr_bw_metrics ddr;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2623,6 +2664,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_temperature(amdsmi_cpusocket_handle socket
|
||||
amdsmi_status_t status;
|
||||
uint32_t tmon;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2647,6 +2690,8 @@ amdsmi_status_t amdsmi_get_cpu_dimm_temp_range_and_refresh_rate(
|
||||
amdsmi_status_t status;
|
||||
struct temp_range_refresh_rate dimm_rate;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2672,6 +2717,8 @@ amdsmi_status_t amdsmi_get_cpu_dimm_power_consumption(amdsmi_cpusocket_handle so
|
||||
amdsmi_status_t status;
|
||||
struct dimm_power d_power;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2698,6 +2745,8 @@ amdsmi_status_t amdsmi_get_cpu_dimm_thermal_sensor(amdsmi_cpusocket_handle socke
|
||||
amdsmi_status_t status;
|
||||
struct dimm_thermal d_sensor;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2723,6 +2772,8 @@ amdsmi_status_t amdsmi_set_cpu_xgmi_width(amdsmi_cpusocket_handle socket_handle,
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2743,6 +2794,8 @@ amdsmi_status_t amdsmi_set_cpu_gmi3_link_width_range(amdsmi_cpusocket_handle soc
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2763,6 +2816,8 @@ amdsmi_status_t amdsmi_cpu_apb_enable(amdsmi_cpusocket_handle socket_handle, uin
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2783,6 +2838,8 @@ amdsmi_status_t amdsmi_cpu_apb_disable(amdsmi_cpusocket_handle socket_handle,
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2803,6 +2860,8 @@ amdsmi_status_t amdsmi_set_cpu_socket_lclk_dpm_level(amdsmi_cpusocket_handle soc
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2824,6 +2883,8 @@ amdsmi_status_t amdsmi_get_cpu_socket_lclk_dpm_level(amdsmi_cpusocket_handle soc
|
||||
amdsmi_status_t status;
|
||||
struct dpm_level nb;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2848,6 +2909,8 @@ amdsmi_status_t amdsmi_set_cpu_pcie_link_rate(amdsmi_cpusocket_handle socket_han
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2869,6 +2932,8 @@ amdsmi_status_t amdsmi_set_cpu_df_pstate_range(amdsmi_cpusocket_handle socket_ha
|
||||
{
|
||||
amdsmi_status_t status;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2892,6 +2957,8 @@ amdsmi_status_t amdsmi_get_cpu_current_io_bandwidth(amdsmi_cpusocket_handle sock
|
||||
uint32_t bw;
|
||||
struct link_id_bw_type io_link;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2919,6 +2986,8 @@ amdsmi_status_t amdsmi_get_cpu_current_xgmi_bw(amdsmi_cpusocket_handle socket_ha
|
||||
uint32_t bw;
|
||||
struct link_id_bw_type io_link;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2944,6 +3013,8 @@ amdsmi_status_t amdsmi_get_metrics_table_version(amdsmi_cpusocket_handle socket_
|
||||
amdsmi_status_t status;
|
||||
uint32_t metrics_tbl_ver;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2967,6 +3038,8 @@ amdsmi_status_t amdsmi_get_metrics_table(amdsmi_cpusocket_handle socket_handle,
|
||||
amdsmi_status_t status;
|
||||
struct hsmp_metric_table metrics_tbl;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
@@ -2990,6 +3063,8 @@ amdsmi_status_t amdsmi_first_online_core_on_cpu_socket(amdsmi_cpusocket_handle s
|
||||
amdsmi_status_t status;
|
||||
uint32_t online_core;
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
if (socket_handle == nullptr)
|
||||
return AMDSMI_STATUS_INVAL;
|
||||
|
||||
|
||||
@@ -100,11 +100,11 @@ amdsmi_status_t AMDSmiSystem::populate_amd_cpus() {
|
||||
}
|
||||
}
|
||||
|
||||
amd_smi_status = get_cpu_sockets(sockets);
|
||||
amd_smi_status = get_cpu_cores(cpus);
|
||||
amd_smi_status = get_threads_per_core(threads);
|
||||
amd_smi_status = get_cpu_family(family);
|
||||
amd_smi_status = get_cpu_model(model);
|
||||
amd_smi_status = get_cpu_sockets(&sockets);
|
||||
amd_smi_status = get_cpu_cores(&cpus);
|
||||
amd_smi_status = get_threads_per_core(&threads);
|
||||
amd_smi_status = get_cpu_family(&family);
|
||||
amd_smi_status = get_cpu_model(&model);
|
||||
std::cout << "\n***********************EPYC METRICS***********************" << std::endl;
|
||||
std::cout <<"| NR_SOCKETS | "<<sockets<<"\t\t|" << std::endl;
|
||||
std::cout <<"| NR_CPUS | "<<cpus<<"\t\t|" << std::endl;
|
||||
@@ -145,10 +145,10 @@ amdsmi_status_t AMDSmiSystem::populate_amd_cpus() {
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_sockets(uint32_t num_socks) {
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_sockets(uint32_t *num_socks) {
|
||||
amdsmi_status_t ret;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_number_of_sockets_get(&num_socks));
|
||||
sockets = num_socks;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_number_of_sockets_get(num_socks));
|
||||
sockets = *num_socks;
|
||||
|
||||
if (ret != AMDSMI_STATUS_SUCCESS) {
|
||||
std::cout << "Failed to get number of sockets, Err["<<ret<<"]" << std::endl;
|
||||
@@ -157,10 +157,10 @@ amdsmi_status_t AMDSmiSystem::get_cpu_sockets(uint32_t num_socks) {
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_cores(uint32_t num_cpus) {
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_cores(uint32_t *num_cpus) {
|
||||
amdsmi_status_t ret;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_number_of_cpus_get(&num_cpus));
|
||||
cpus = num_cpus;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_number_of_cpus_get(num_cpus));
|
||||
cpus = *num_cpus;
|
||||
|
||||
if (ret != AMDSMI_STATUS_SUCCESS) {
|
||||
std::cout << "Failed to get number of cpus, Err["<<ret<<"]" << std::endl;
|
||||
@@ -169,10 +169,10 @@ amdsmi_status_t AMDSmiSystem::get_cpu_cores(uint32_t num_cpus) {
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
amdsmi_status_t AMDSmiSystem::get_threads_per_core(uint32_t threads_per_core) {
|
||||
amdsmi_status_t AMDSmiSystem::get_threads_per_core(uint32_t *threads_per_core) {
|
||||
amdsmi_status_t ret;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_threads_per_core_get(&threads_per_core));
|
||||
threads = threads_per_core;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_threads_per_core_get(threads_per_core));
|
||||
threads = *threads_per_core;
|
||||
|
||||
if (ret != AMDSMI_STATUS_SUCCESS) {
|
||||
std::cout << "Failed to get threads per core, Err["<<ret<<"]" << std::endl;
|
||||
@@ -181,10 +181,10 @@ amdsmi_status_t AMDSmiSystem::get_threads_per_core(uint32_t threads_per_core) {
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_family(uint32_t cpu_family) {
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_family(uint32_t *cpu_family) {
|
||||
amdsmi_status_t ret;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_cpu_family_get(&cpu_family));
|
||||
family = cpu_family;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_cpu_family_get(cpu_family));
|
||||
family = *cpu_family;
|
||||
|
||||
if (ret != AMDSMI_STATUS_SUCCESS) {
|
||||
std::cout << "Failed to get cpu family, Err["<<ret<<"]" << std::endl;
|
||||
@@ -193,10 +193,10 @@ amdsmi_status_t AMDSmiSystem::get_cpu_family(uint32_t cpu_family) {
|
||||
return AMDSMI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_model(uint32_t cpu_model) {
|
||||
amdsmi_status_t AMDSmiSystem::get_cpu_model(uint32_t *cpu_model) {
|
||||
amdsmi_status_t ret;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_cpu_model_get(&cpu_model));
|
||||
model = cpu_model;
|
||||
ret = static_cast<amdsmi_status_t>(esmi_cpu_model_get(cpu_model));
|
||||
model = *cpu_model;
|
||||
|
||||
if (ret != AMDSMI_STATUS_SUCCESS) {
|
||||
std::cout << "Failed to get cpu model, Err["<<ret<<"]" << std::endl;
|
||||
|
||||
@@ -64,10 +64,10 @@ static const std::map<amdsmi_fw_block_t, const char *> kDevFWNameMap = {
|
||||
{FW_ID_RLC_SRLS, "rlc_srls"},
|
||||
{FW_ID_SDMA1, "sdma1"},
|
||||
{FW_ID_SDMA2, "sdma2"},
|
||||
{FW_ID_SMC, "smc"},
|
||||
{FW_ID_PM, "pm"},
|
||||
{FW_ID_PSP_SOSDRV, "sos"},
|
||||
{FW_ID_TA_RAS, "ta_ras"},
|
||||
{FW_ID_XGMI, "ta_xgmi"},
|
||||
{FW_ID_TA_XGMI, "ta_xgmi"},
|
||||
{FW_ID_UVD, "uvd"},
|
||||
{FW_ID_VCE, "vce"},
|
||||
{FW_ID_VCN, "vcn"},
|
||||
|
||||
Ссылка в новой задаче
Block a user