[SWDEV-529665] Add PLDM Bundle version
feat: Report PLDM Bundle from SMC to IB
Code changes related to the following:
* APIs
* CLI
* Unit tests
Signed-off-by: Oliveira, Daniel <daniel.oliveira@amd.com>
Change-Id: I35ccf01eb612ca80e3ae6b72039085c18c989222
[ROCm/amdsmi commit: fe9b6eeb49]
Este commit está contenido en:
cometido por
Arif, Maisam
padre
a13b160b42
commit
806c3c62ed
@@ -29,6 +29,8 @@ Full documentation for amd_smi_lib is available at [https://rocm.docs.amd.com/pr
|
||||
- **Added bad page threshold count**.
|
||||
- Added `amdsmi_get_gpu_bad_page_threshold` to Python API and CLI; root/sudo permissions required to display the count.
|
||||
|
||||
- **Added new firmware PLDM**.
|
||||
|
||||
### Changed
|
||||
|
||||
- **The `amd-smi topology` command has been enabled for Guest environments**.
|
||||
|
||||
@@ -188,6 +188,9 @@ void getFWNameFromId(int id, char *name)
|
||||
case AMDSMI_FW_ID_DMCU:
|
||||
strcpy(name, "ID_DMCU");
|
||||
break;
|
||||
case AMDSMI_FW_ID_PLDM:
|
||||
strcpy(name, "PLDM");
|
||||
break;
|
||||
default:
|
||||
strcpy(name, "");
|
||||
break;
|
||||
|
||||
@@ -214,6 +214,10 @@ int main() {
|
||||
"\tPSP SOSDRV: %ld\n\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::AMDSMI_FW_ID_PSP_SOSDRV]
|
||||
.fw_version);
|
||||
printf(
|
||||
"\tPLDM: %ld\n\n",
|
||||
fw_information.fw_info_list[amdsmi_fw_block_t::AMDSMI_FW_ID_PLDM]
|
||||
.fw_version);
|
||||
|
||||
// Get temperature measurements
|
||||
int64_t temp_measurements[AMDSMI_TEMPERATURE_TYPE__MAX + 1];
|
||||
|
||||
@@ -549,6 +549,7 @@ typedef enum {
|
||||
AMDSMI_FW_ID_RLC_SRLS,
|
||||
AMDSMI_FW_ID_PM,
|
||||
AMDSMI_FW_ID_DMCU,
|
||||
AMDSMI_FW_ID_PLDM,
|
||||
AMDSMI_FW_ID__MAX
|
||||
} amdsmi_fw_block_t;
|
||||
|
||||
|
||||
@@ -198,6 +198,7 @@ class AmdSmiFwBlock(IntEnum):
|
||||
AMDSMI_FW_ID_RLC_SRLS = amdsmi_wrapper.AMDSMI_FW_ID_RLC_SRLS
|
||||
AMDSMI_FW_ID_PM = amdsmi_wrapper.AMDSMI_FW_ID_PM
|
||||
AMDSMI_FW_ID_DMCU = amdsmi_wrapper.AMDSMI_FW_ID_DMCU
|
||||
AMDSMI_FW_ID_PLDM = amdsmi_wrapper.AMDSMI_FW_ID_PLDM
|
||||
|
||||
|
||||
class AmdSmiClkType(IntEnum):
|
||||
@@ -2737,7 +2738,8 @@ def amdsmi_get_fw_info(
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_TA_XGMI,
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_UVD,
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_VCE,
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_VCN]
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_VCN,
|
||||
AmdSmiFwBlock.AMDSMI_FW_ID_PLDM]
|
||||
|
||||
# PM(AKA: SMC) firmware's hex value looks like 0x12345678
|
||||
# However, they are parsed as: int(0x12).int(0x34).int(0x56).int(0x78)
|
||||
|
||||
@@ -582,7 +582,8 @@ amdsmi_fw_block_t__enumvalues = {
|
||||
76: 'AMDSMI_FW_ID_RLC_SRLS',
|
||||
77: 'AMDSMI_FW_ID_PM',
|
||||
78: 'AMDSMI_FW_ID_DMCU',
|
||||
79: 'AMDSMI_FW_ID__MAX',
|
||||
79: 'AMDSMI_FW_ID_PLDM',
|
||||
80: 'AMDSMI_FW_ID__MAX',
|
||||
}
|
||||
AMDSMI_FW_ID_SMU = 1
|
||||
AMDSMI_FW_ID_FIRST = 1
|
||||
@@ -663,7 +664,8 @@ AMDSMI_FW_ID_RLC_SRLG = 75
|
||||
AMDSMI_FW_ID_RLC_SRLS = 76
|
||||
AMDSMI_FW_ID_PM = 77
|
||||
AMDSMI_FW_ID_DMCU = 78
|
||||
AMDSMI_FW_ID__MAX = 79
|
||||
AMDSMI_FW_ID_PLDM = 79
|
||||
AMDSMI_FW_ID__MAX = 80
|
||||
amdsmi_fw_block_t = ctypes.c_uint32 # enum
|
||||
|
||||
# values for enumeration 'amdsmi_vram_type_t'
|
||||
@@ -985,7 +987,7 @@ struct_amdsmi_fw_info_t._pack_ = 1 # source:False
|
||||
struct_amdsmi_fw_info_t._fields_ = [
|
||||
('num_fw_info', ctypes.c_ubyte),
|
||||
('PADDING_0', ctypes.c_ubyte * 7),
|
||||
('fw_info_list', struct_fw_info_list_ * 79),
|
||||
('fw_info_list', struct_fw_info_list_ * 80),
|
||||
('reserved', ctypes.c_uint32 * 7),
|
||||
('PADDING_1', ctypes.c_ubyte * 4),
|
||||
]
|
||||
@@ -3055,7 +3057,8 @@ __all__ = \
|
||||
'AMDSMI_FW_ID_ISP', 'AMDSMI_FW_ID_MC', 'AMDSMI_FW_ID_MES_KIQ',
|
||||
'AMDSMI_FW_ID_MES_STACK', 'AMDSMI_FW_ID_MES_THREAD1',
|
||||
'AMDSMI_FW_ID_MES_THREAD1_STACK', 'AMDSMI_FW_ID_MMSCH',
|
||||
'AMDSMI_FW_ID_PM', 'AMDSMI_FW_ID_PPTABLE', 'AMDSMI_FW_ID_PSP_BL',
|
||||
'AMDSMI_FW_ID_PLDM', 'AMDSMI_FW_ID_PM',
|
||||
'AMDSMI_FW_ID_PPTABLE', 'AMDSMI_FW_ID_PSP_BL',
|
||||
'AMDSMI_FW_ID_PSP_DBG', 'AMDSMI_FW_ID_PSP_INTF',
|
||||
'AMDSMI_FW_ID_PSP_KEYDB', 'AMDSMI_FW_ID_PSP_SOC',
|
||||
'AMDSMI_FW_ID_PSP_SOSDRV', 'AMDSMI_FW_ID_PSP_SPL',
|
||||
|
||||
@@ -725,8 +725,8 @@ typedef enum {
|
||||
RSMI_FW_BLOCK_UVD,
|
||||
RSMI_FW_BLOCK_VCE,
|
||||
RSMI_FW_BLOCK_VCN,
|
||||
|
||||
RSMI_FW_BLOCK_LAST = RSMI_FW_BLOCK_VCN
|
||||
RSMI_FW_BLOCK_PLDM,
|
||||
RSMI_FW_BLOCK_LAST = RSMI_FW_BLOCK_PLDM
|
||||
} rsmi_fw_block_t;
|
||||
|
||||
/**
|
||||
|
||||
@@ -152,6 +152,7 @@ enum DevInfoTypes {
|
||||
kDevFwVersionUvd,
|
||||
kDevFwVersionVce,
|
||||
kDevFwVersionVcn,
|
||||
kDevFwVersionPldm,
|
||||
kDevSerialNumber,
|
||||
kDevMemPageBad,
|
||||
kDevNumaNode,
|
||||
|
||||
@@ -1985,6 +1985,7 @@ rsmi_dev_firmware_version_get(uint32_t dv_ind, rsmi_fw_block_t block,
|
||||
{ RSMI_FW_BLOCK_UVD, amd::smi::kDevFwVersionUvd },
|
||||
{ RSMI_FW_BLOCK_VCE, amd::smi::kDevFwVersionVce },
|
||||
{ RSMI_FW_BLOCK_VCN, amd::smi::kDevFwVersionVcn },
|
||||
{ RSMI_FW_BLOCK_PLDM, amd::smi::kDevFwVersionPldm},
|
||||
};
|
||||
|
||||
const auto & dev_type_it = kFWBlockTypeMap.find(block);
|
||||
|
||||
@@ -160,6 +160,7 @@ static const char *kDevFwVersionTaXgmiFName = "fw_version/ta_xgmi_fw_version";
|
||||
static const char *kDevFwVersionUvdFName = "fw_version/uvd_fw_version";
|
||||
static const char *kDevFwVersionVceFName = "fw_version/vce_fw_version";
|
||||
static const char *kDevFwVersionVcnFName = "fw_version/vcn_fw_version";
|
||||
static const char *kDevFwVersionPldmFName = "fw_version/pldm_fw_version";
|
||||
|
||||
static const char *kDevKFDNodePropCachesCntSName = "caches_count";
|
||||
static const char *kDevKFDNodePropIoLinksCntSName = "io_links_count";
|
||||
@@ -309,6 +310,7 @@ static const std::map<DevInfoTypes, const char *> kDevAttribNameMap = {
|
||||
{kDevFwVersionUvd, kDevFwVersionUvdFName},
|
||||
{kDevFwVersionVce, kDevFwVersionVceFName},
|
||||
{kDevFwVersionVcn, kDevFwVersionVcnFName},
|
||||
{kDevFwVersionPldm, kDevFwVersionPldmFName},
|
||||
{kDevSerialNumber, kDevSerialNumberFName},
|
||||
{kDevMemPageBad, kDevMemPageBadFName},
|
||||
{kDevNumaNode, kDevNumaNodeFName},
|
||||
@@ -396,6 +398,7 @@ static const std::map<DevInfoTypes, uint8_t> kDevInfoVarTypeToRSMIVariant = {
|
||||
{kDevFwVersionUvd, RSMI_FW_BLOCK_UVD},
|
||||
{kDevFwVersionVce, RSMI_FW_BLOCK_VCE},
|
||||
{kDevFwVersionVcn, RSMI_FW_BLOCK_VCN},
|
||||
{kDevFwVersionPldm, RSMI_FW_BLOCK_PLDM},
|
||||
|
||||
// rsmi_gpu_block_t
|
||||
{kDevErrCntUMC, RSMI_GPU_BLOCK_UMC},
|
||||
@@ -480,6 +483,7 @@ Device::devInfoTypesStrings = {
|
||||
{kDevFwVersionUvd, "kDevFwVersionUvd"},
|
||||
{kDevFwVersionVce, "kDevFwVersionVce"},
|
||||
{kDevFwVersionVcn, "kDevFwVersionVcn"},
|
||||
{kDevFwVersionPldm, "kDevFwVersionPldm"},
|
||||
{kDevSerialNumber, "kDevSerialNumber"},
|
||||
{kDevMemPageBad, "kDevMemPageBad"},
|
||||
{kDevNumaNode, "kDevNumaNode"},
|
||||
@@ -648,6 +652,7 @@ static const std::map<const char *, dev_depends_t> kDevFuncDependsMap = {
|
||||
kDevFwVersionUvd,
|
||||
kDevFwVersionVce,
|
||||
kDevFwVersionVcn,
|
||||
kDevFwVersionPldm,
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1249,6 +1254,7 @@ int Device::readDevInfo(DevInfoTypes type, uint64_t *val) {
|
||||
case kDevFwVersionUvd:
|
||||
case kDevFwVersionVce:
|
||||
case kDevFwVersionVcn:
|
||||
case kDevFwVersionPldm:
|
||||
ret = readDevInfoStr(type, &tempStr);
|
||||
RET_IF_NONZERO(ret);
|
||||
if (tempStr.empty()) {
|
||||
|
||||
@@ -1395,8 +1395,9 @@ amdsmi_status_t amdsmi_get_fw_info(amdsmi_processor_handle processor_handle,
|
||||
{ AMDSMI_FW_ID_TA_RAS, RSMI_FW_BLOCK_TA_RAS},
|
||||
{ AMDSMI_FW_ID_TA_XGMI, RSMI_FW_BLOCK_TA_XGMI},
|
||||
{ AMDSMI_FW_ID_UVD, RSMI_FW_BLOCK_UVD},
|
||||
{AMDSMI_FW_ID_VCE, RSMI_FW_BLOCK_VCE},
|
||||
{ AMDSMI_FW_ID_VCN, RSMI_FW_BLOCK_VCN}
|
||||
{ AMDSMI_FW_ID_VCE, RSMI_FW_BLOCK_VCE},
|
||||
{ AMDSMI_FW_ID_VCN, RSMI_FW_BLOCK_VCN},
|
||||
{ AMDSMI_FW_ID_PLDM, RSMI_FW_BLOCK_PLDM},
|
||||
};
|
||||
|
||||
AMDSMI_CHECK_INIT();
|
||||
|
||||
@@ -278,6 +278,9 @@ test_fw_info (__main__.TestAmdSmiPythonInterface) ...
|
||||
FW version: 20.00.00.0F
|
||||
FW name: AMDSMI_FW_ID_PM
|
||||
FW version: 00.58.90.00
|
||||
FW name: AMDSMI_FW_ID_PLDM
|
||||
FW version: 00.xx.yy.zz
|
||||
|
||||
|
||||
ok
|
||||
test_gpu_activity (__main__.TestAmdSmiPythonInterface) ...
|
||||
@@ -587,6 +590,8 @@ test_walkthrough (__main__.TestAmdSmiPythonInterface) ...
|
||||
FW version: 20.00.00.0F
|
||||
FW name: AMDSMI_FW_ID_PM
|
||||
FW version: 00.58.90.00
|
||||
FW name: AMDSMI_FW_ID_PLDM
|
||||
FW version: 00.xx.yy.zz
|
||||
|
||||
|
||||
|
||||
|
||||
Referencia en una nueva incidencia
Block a user