| #!/usr/bin/env python3 |
| |
| r""" |
| Contains PLDM-related constants. |
| """ |
| |
| PLDM_SUPPORTED_TYPES = ["base", "platform", "bios", "fru", "oem-ibm"] |
| |
| # PLDM types. |
| PLDM_TYPE_BASE = {"VALUE": "00", "STRING": "base"} |
| PLDM_TYPE_PLATFORM = {"VALUE": "02", "STRING": "platform"} |
| PLDM_TYPE_BIOS = {"VALUE": "03", "STRING": "bios"} |
| PLDM_TYPE_FRU = {"VALUE": "04", "STRING": "fru"} |
| PLDM_TYPE_OEM = {"VALUE": "63", "STRING": "oem-ibm"} |
| PLDM_SUPPORTED_TYPES = [ |
| "0(base)", |
| "2(platform)", |
| "3(bios)", |
| "4(fru)", |
| "63(oem-ibm)", |
| ] |
| |
| VERSION_BASE = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"} |
| VERSION_PLATFORM = {"VALUE": ["f1", "f2", "f0", "00"], "STRING": "1.2.0"} |
| VERSION_BIOS = {"VALUE": ["f1", "f1", "f1", "00"], "STRING": "1.0.0"} |
| VERSION_FRU = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"} |
| VERSION_OEM = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"} |
| |
| |
| PLDM_BASE_CMDS = [ |
| "2(GetTID)", |
| "3(GetPLDMVersion)", |
| "4(GetPLDMTypes)", |
| "5(GetPLDMCommands)", |
| ] |
| PLDM_PLATFORM_CMDS = ["57(SetStateEffecterStates)", "81(GetPDR)"] |
| PLDM_BIOS_CMDS = [ |
| "1(GetBIOSTable)", |
| "7(SetBIOSAttributeCurrentValue)", |
| "8(GetBIOSAttributeCurrentValueByHandle)", |
| "12(GetDateTime)", |
| "13(SetDateTime)", |
| ] |
| PLDM_FRU_CMDS = [ |
| "1(GetFRURecordTableMetadata)", |
| "2(GetFRURecordTable)", |
| "4(GetFRURecordByOption)", |
| ] |
| PLDM_OEM_CMDS = [ |
| "1(GetFileTable)", |
| "4(ReadFile)", |
| "5(WriteFile)", |
| "6(ReadFileInToMemory)", |
| "7(WriteFileFromMemory)", |
| "8(ReadFileByTypeIntoMemory)", |
| "9(WriteFileByTypeFromMemory)", |
| "10(NewFileAvailable)", |
| "11(ReadFileByType)", |
| "12(WriteFileByType)", |
| "13(FileAck)", |
| "240(GetAlertStatus)", |
| ] |
| |
| # PLDM command format. |
| |
| """ |
| e.g. : GetPLDMVersion usage |
| |
| pldmtool base GetPLDMVersion -t <pldm_type> |
| |
| pldm supported types |
| |
| base->0,platform->2,bios->3,fru->4 |
| |
| """ |
| CMD_GETPLDMVERSION = "base GetPLDMVersion -t %s" |
| |
| """ |
| e.g. : PLDM raw command usage |
| |
| pldmtool raw -d 0x80 0x00 0x03 0x00 0x00 0x00 0x00 0x01 0x00 |
| |
| pldm raw -d 0x<header> 0x<pldm_type> 0x<pldm_cmd_type> 0x<payload_data> |
| """ |
| |
| CMD_PLDMTOOL_RAW = "raw -d 0x80" + "0x%s" + " " + "0x%s" |
| |
| |
| # PLDM command payload data. |
| |
| PAYLOAD_GetPLDMVersion = ( # %(TransferOperationFlag, PLDMType) |
| " 0x00 0x00 0x00 0x00 0x%s 0x%s" |
| ) |
| |
| |
| """ |
| e.g. : SetDateTime usage |
| |
| pldmtool bios SetDateTime -d <YYYYMMDDHHMMSS> |
| |
| """ |
| CMD_SETDATETIME = "bios SetDateTime -d %s" |
| |
| |
| CMD_GETPDR = "platform GetPDR -d %s" |
| |
| """ |
| e.g. : SetStateEffecterStates usage |
| |
| pldmtool platform GetPDR -i <effter_handle> -c <count> -d <effecterID, effecterState> |
| |
| pldmtool platform SetStateEffecterStates -i 1 -c 1 -d 1 1 |
| """ |
| |
| CMD_SETSTATEEFFECTERSTATES = ( |
| "platform SetStateEffecterStates -i %s -c %s -d %s" |
| ) |
| |
| # GetPDR parsed response message for record handle. |
| # Dictionary value array holds the expected output for record handle 1, 2. |
| # |
| # Note : |
| # Record handle - 0 is default & has same behaviour as record handle 1 |
| # Only record handle 0, 1, 2 are supported as of now. |
| |
| RESPONSE_DICT_GETPDR_SETSTATEEFFECTER = { |
| "PDRHeaderVersion": [1], |
| "PDRType": ["State Effecter PDR"], |
| "recordChangeNumber": [0], |
| "effecterID": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], |
| "entityType": [ |
| "Virtual Machine Manager", |
| "System chassis (main enclosure)", |
| "System Firmware", |
| "Processor Module", |
| "32801(OEM)", |
| "Management Controller", |
| "24577(OEM)", |
| ], |
| "entityInstanceNumber": [0, 1, 2, 3, 4], |
| "containerID": [0, 1], |
| "effecterSemanticID": [0], |
| "effecterInit": ["noInit"], |
| "effecterDescriptionPDR": [False], |
| "compositeEffecterCount": [1], |
| } |
| |
| RESPONSE_DICT_GETPDR_FRURECORDSETIDENTIFIER = { |
| "PDRHeaderVersion": [1], |
| "PDRType": ["FRU Record Set PDR"], |
| "recordChangeNumber": [0], |
| "dataLength": [10], |
| "entityType": [ |
| "System Board", |
| "Chassis front panel board (control panel)", |
| "Management Controller", |
| "OEM", |
| "Power converter", |
| "System (logical)", |
| "System chassis (main enclosure)", |
| "Chassis front panel board (control panel)", |
| "Processor Module", |
| "Memory Module", |
| "Power Supply", |
| "24576(OEM)", |
| "60(OEM)", |
| "Processor", |
| "142(OEM)", |
| ], |
| "containerID": [0, 1, 2, 3], |
| } |
| |
| RESPONSE_DICT_GETPDR_PDRENTITYASSOCIATION = { |
| "PDRHeaderVersion": [1], |
| "PDRType": ["Entity Association PDR"], |
| "recordChangeNumber": [0], |
| "containerID": [1, 2, 3], |
| "associationtype": ["Physical"], |
| "containerentityType": [ |
| "System Board", |
| "System (logical)", |
| "System chassis (main enclosure)", |
| ], |
| } |
| |
| RESPONSE_DICT_GETPDR_STATESENSORPDR = { |
| "entityType": [ |
| "Communication Channel", |
| "Connector", |
| "Processor Module", |
| "32774(OEM)", |
| "57346(OEM)", |
| "57347(OEM)", |
| "32801(OEM)", |
| "91(OEM)", |
| "5(OEM)", |
| "24577(OEM)", |
| ], |
| "sensorInit": ["noInit"], |
| "sensorAuxiliaryNamesPDR": [False], |
| } |
| |
| RESPONSE_DICT_GETPDR_TERMINUSLOCATORPDR = { |
| "PDRHeaderVersion": [1], |
| "PDRType": ["Terminus Locator PDR"], |
| "recordChangeNumber": [0], |
| "validity": ["valid"], |
| "TID": [0, 1, 208], |
| "containerID": [0, 1], |
| "terminusLocatorType": ["MCTP_EID"], |
| "terminusLocatorValueSize": [1], |
| } |
| |
| RESPONSE_DICT_GETPDR_NUMERICEFFECTERPDR = { |
| "PDRHeaderVersion": [1], |
| "PDRType": ["Numeric Effecter PDR"], |
| "recordChangeNumber": [0], |
| "entityInstanceNumber": [0, 1], |
| "containerID": [0], |
| "effecterSemanticID": [0], |
| "effecterInit": [0], |
| "effecterAuxiliaryNames": [False], |
| "baseUnit": [0, 72, 21], |
| "unitModifier": [0], |
| "baseOEMUnitHandle": [0], |
| "auxUnit": [0], |
| "auxUnitModifier": [0], |
| "auxrateUnit": [0], |
| "auxOEMUnitHandle": [0], |
| "resolution": [1, 0], |
| "offset": [0], |
| "accuracy": [0], |
| "plusTolerance": [0], |
| "minusTolerance": [0], |
| "stateTransitionInterval": [0], |
| "TransitionInterval": [0], |
| "minSettable": [0], |
| "rangeFieldSupport": [0], |
| "nominalValue": [0], |
| "normalMax": [0], |
| "normalMin": [0], |
| "ratedMax": [0], |
| "ratedMin": [0], |
| } |
| |
| PLDM_PDR_TYPES = { |
| "PLDM_STATE_EFFECTER_PDR": "State Effecter PDR", |
| "PLDM_PDR_FRU_RECORD_SET": "FRU Record Set PDR", |
| "PLDM_PDR_ENTITY_ASSOCIATION": "Entity Association PDR", |
| "PLDM_STATE_SENSOR_PDR": "State Sensor PDR", |
| "PLDM_NUMERIC_EFFECTER_PDR": "Numeric Effecter PDR", |
| "PLDM_TERMINUS_LOCATOR_PDR": "Terminus Locator PDR", |
| "PLDM_COMPACT_NUMERIC_SENSOR_PDR": "21", |
| } |
| |
| RESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE = [ |
| "BIOSString", |
| "BIOSInteger", |
| "BIOSEnumeration", |
| ] |