blob: d140c29a135cc2121da2e0f7788b6f25a94a667b [file] [log] [blame]
Sridevi Ramesh70e14182019-08-27 04:04:27 -05001#!/usr/bin/python
2
3r"""
4Contains PLDM-related constants.
5"""
6
Sridevi Ramesh92041a32020-04-22 02:29:31 -05007PLDM_SUPPORTED_TYPES = ['base', 'platform', 'bios', 'fru', 'oem-ibm']
Rahul Maheshwari4d488572019-12-10 23:53:05 -06008
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -06009# PLDM types.
10PLDM_TYPE_BASE = {'VALUE': '00', 'STRING': 'base'}
11PLDM_TYPE_PLATFORM = {'VALUE': '02', 'STRING': 'platform'}
12PLDM_TYPE_BIOS = {'VALUE': '03', 'STRING': 'bios'}
13PLDM_TYPE_FRU = {'VALUE': '04', 'STRING': 'fru'}
Sridevi Ramesh92041a32020-04-22 02:29:31 -050014PLDM_TYPE_OEM = {'VALUE': '63', 'STRING': 'oem-ibm'}
Sridevi Ramesh961050b2020-11-12 11:04:30 -060015PLDM_SUPPORTED_TYPES = ['0(base)', '2(platform)', '3(bios)', '4(fru)', '63(oem-ibm)']
Sridevi Ramesh70e14182019-08-27 04:04:27 -050016
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060017VERSION_BASE = {'VALUE': ['f1', 'f0', 'f0', '00'], 'STRING': '1.0.0'}
Sridevi Rameshec753aa2020-02-17 22:55:13 -060018VERSION_PLATFORM = {'VALUE': ['f1', 'f2', 'f0', '00'], 'STRING': '1.2.0'}
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060019VERSION_BIOS = {'VALUE': ['f1', 'f1', 'f1', '00'], 'STRING': '1.0.0'}
20VERSION_FRU = {'VALUE': ['f1', 'f0', 'f0', '00'], 'STRING': '1.0.0'}
Sridevi Ramesh92041a32020-04-22 02:29:31 -050021VERSION_OEM = {'VALUE': ['f1', 'f0', 'f0', '00'], 'STRING': '1.0.0'}
Sridevi Ramesh70e14182019-08-27 04:04:27 -050022
Sridevi Ramesh70e14182019-08-27 04:04:27 -050023
Sridevi Ramesh039bc762020-03-30 09:59:07 -050024PLDM_BASE_CMDS = ['2(GetTID)', '3(GetPLDMVersion)', '4(GetPLDMTypes)', '5(GetPLDMCommands)']
25PLDM_PLATFORM_CMDS = ['57(SetStateEffecterStates)', '81(GetPDR)']
26PLDM_BIOS_CMDS = ['1(GetBIOSTable)', '7(SetBIOSAttributeCurrentValue)',
27 '8(GetBIOSAttributeCurrentValueByHandle)', '12(GetDateTime)',
28 '13(SetDateTime)']
Sridevi Ramesh3ca4f642020-07-14 01:15:30 -050029PLDM_FRU_CMDS = ['1(GetFRURecordTableMetadata)', '2(GetFRURecordTable)', '4(GetFRURecordByOption)']
Sridevi Ramesh92041a32020-04-22 02:29:31 -050030PLDM_OEM_CMDS = ['1(GetFileTable)', '4(ReadFile)', '5(WriteFile)', '6(ReadFileInToMemory)',
31 '7(WriteFileFromMemory)', '8(ReadFileByTypeIntoMemory)',
32 '9(WriteFileByTypeFromMemory)', '10(NewFileAvailable)',
33 '11(ReadFileByType)', '12(WriteFileByType)', '13(FileAck)',
34 '240(GetAlertStatus)']
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060035
36# PLDM command format.
37
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060038'''
39e.g. : GetPLDMVersion usage
40
41pldmtool base GetPLDMVersion -t <pldm_type>
42
43pldm supported types
44
45base->0,platform->2,bios->3,fru->4
46
47'''
Rahul Maheshwari4d488572019-12-10 23:53:05 -060048CMD_GETPLDMVERSION = 'base GetPLDMVersion -t %s'
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060049
50'''
51e.g. : PLDM raw command usage
52
53pldmtool raw -d 0x80 0x00 0x03 0x00 0x00 0x00 0x00 0x01 0x00
54
55pldm raw -d 0x<header> 0x<pldm_type> 0x<pldm_cmd_type> 0x<payload_data>
56'''
57
Rahul Maheshwari4d488572019-12-10 23:53:05 -060058CMD_PLDMTOOL_RAW = 'raw -d 0x80' + '0x%s' + ' ' + '0x%s'
Sridevi Rameshc4e1cba2019-12-03 00:12:27 -060059
60
61# PLDM command payload data.
62
63PAYLOAD_GetPLDMVersion = \
64 ' 0x00 0x00 0x00 0x00 0x%s 0x%s' # %(TransferOperationFlag, PLDMType)
Rahul Maheshwari4d488572019-12-10 23:53:05 -060065
66
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060067'''
68e.g. : SetDateTime usage
69
70pldmtool bios SetDateTime -d <YYYYMMDDHHMMSS>
71
72'''
73CMD_SETDATETIME = 'bios SetDateTime -d %s'
Sridevi Rameshfe52e402020-02-05 00:15:24 -060074
75
76CMD_GETPDR = 'platform GetPDR -d %s'
77
78'''
79e.g. : SetStateEffecterStates usage
80
Sridevi Rameshca3223a2020-03-11 03:58:58 -050081pldmtool platform GetPDR -i <effter_handle> -c <count> -d <effecterID, effecterState>
Sridevi Rameshfe52e402020-02-05 00:15:24 -060082
Sridevi Rameshca3223a2020-03-11 03:58:58 -050083pldmtool platform SetStateEffecterStates -i 1 -c 1 -d 1 1
Sridevi Rameshfe52e402020-02-05 00:15:24 -060084'''
85
Sridevi Rameshca3223a2020-03-11 03:58:58 -050086CMD_SETSTATEEFFECTERSTATES = 'platform SetStateEffecterStates -i %s -c %s -d %s'
Sridevi Rameshfe52e402020-02-05 00:15:24 -060087
88# GetPDR parsed response message for record handle.
89# Dictionary value array holds the expected output for record handle 1, 2.
Sridevi Rameshfe52e402020-02-05 00:15:24 -060090#
91# Note :
92# Record handle - 0 is default & has same behaviour as record handle 1
93# Only record handle 0, 1, 2 are supported as of now.
94
Sridevi Ramesh538d18d2020-03-30 11:45:42 -050095RESPONSE_DICT_GETPDR_SETSTATEEFFECTER = {
Sridevi Ramesh961050b2020-11-12 11:04:30 -060096 'PDRHeaderVersion': [1],
97 'PDRType': ['State Effecter PDR'],
98 'recordChangeNumber': [0],
99 'PLDMTerminusHandle': [0, 1, 2],
Sridevi Ramesh88fc1ae2021-04-21 05:36:52 -0500100 'effecterID': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600101 'entityType': ['Virtual Machine Manager', 'System chassis (main enclosure)',
Sridevi Ramesh88fc1ae2021-04-21 05:36:52 -0500102 'System Firmware', 'Processor Module', '32801(OEM)',
103 'Management Controller', '24577(OEM)'],
104 'entityInstanceNumber': [0, 1, 2, 3, 4],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600105 'containerID': [0, 1],
106 'effecterSemanticID': [0],
107 'effecterInit': ['noInit'],
108 'effecterDescriptionPDR': [False],
Sridevi Ramesh297d41b2021-02-02 09:16:55 -0600109 'compositeEffecterCount': [1]}
Sridevi Rameshfe52e402020-02-05 00:15:24 -0600110
Sridevi Ramesh538d18d2020-03-30 11:45:42 -0500111RESPONSE_DICT_GETPDR_FRURECORDSETIDENTIFIER = {
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600112 'PDRHeaderVersion': [1],
113 'PDRType': ['FRU Record Set PDR'],
114 'recordChangeNumber': [0],
115 'dataLength': [10],
116 'PLDMTerminusHandle': [0, 2],
117 'entityType': ['System Board', 'Chassis front panel board (control panel)',
Sridevi Ramesh072d5af2020-06-02 09:20:57 -0500118 'Management Controller', 'OEM', 'Power converter',
Sridevi Ramesh88f21722020-04-16 05:54:02 -0500119 'System (logical)', 'System chassis (main enclosure)',
Sridevi Rameshde91ec22020-05-14 05:02:03 -0500120 'Chassis front panel board (control panel)',
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600121 'Processor Module', 'Memory Module', 'Power Supply',
Sridevi Ramesh420a3e22021-01-13 00:12:18 -0600122 '24576(OEM)', '60(OEM)', 'Processor', '142(OEM)'],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600123 'containerID': [0, 1, 2, 3]}
Sridevi Ramesh538d18d2020-03-30 11:45:42 -0500124
125RESPONSE_DICT_GETPDR_PDRENTITYASSOCIATION = {
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600126 'PDRHeaderVersion': [1],
127 'PDRType': ['Entity Association PDR'],
128 'recordChangeNumber': [0],
129 'containerID': [1, 2, 3],
Sridevi Ramesh538d18d2020-03-30 11:45:42 -0500130 'associationtype': ['Physical'],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600131 'containerentityType': ['System Board', 'System (logical)',
132 'System chassis (main enclosure)']}
Sridevi Ramesh538d18d2020-03-30 11:45:42 -0500133
Sridevi Rameshdfc7fcb2020-07-23 03:03:57 -0500134RESPONSE_DICT_GETPDR_STATESENSORPDR = {
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600135 'entityType': ['Communication Channel', 'Connector', 'Processor Module',
Sridevi Ramesh88fc1ae2021-04-21 05:36:52 -0500136 '32774(OEM)', '57346(OEM)', '57347(OEM)', '32801(OEM)',
137 '91(OEM)', '5(OEM)', '24577(OEM)'],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600138 'sensorInit': ['noInit'],
Sridevi Ramesh297d41b2021-02-02 09:16:55 -0600139 'sensorAuxiliaryNamesPDR': [False]}
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600140
141RESPONSE_DICT_GETPDR_TERMINUSLOCATORPDR = {
142 'PDRHeaderVersion': [1],
143 'PDRType': ['Terminus Locator PDR'],
144 'recordChangeNumber': [0],
145 'PLDMTerminusHandle': [1],
146 'validity': ['valid'],
147 'TID': [1, 208],
148 'containerID': [0, 1],
149 'terminusLocatorType': ['MCTP_EID'],
150 'terminusLocatorValueSize': [1]}
151
152RESPONSE_DICT_GETPDR_NUMERICEFFECTERPDR = {
153 'PDRHeaderVersion': [1],
154 'PDRType': ['Numeric Effecter PDR'],
155 'recordChangeNumber': [0],
156 'PLDMTerminusHandle': [0, 1],
157 'entityInstanceNumber': [0, 1],
158 'containerID': [0],
159 'effecterSemanticID': [0],
160 'effecterInit': [0],
161 'effecterAuxiliaryNames': [False],
Sridevi Ramesh88fc1ae2021-04-21 05:36:52 -0500162 'baseUnit': [0, 72, 21],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600163 'unitModifier': [0],
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600164 'baseOEMUnitHandle': [0],
165 'auxUnit': [0],
166 'auxUnitModifier': [0],
167 'auxrateUnit': [0],
168 'auxOEMUnitHandle': [0],
169 'resolution': [1, 0],
170 'offset': [0],
171 'accuracy': [0],
172 'plusTolerance': [0],
173 'minusTolerance': [0],
174 'stateTransitionInterval': [0],
175 'TransitionInterval': [0],
176 'minSettable': [0],
177 'rangeFieldSupport': [0],
178 'nominalValue': [0],
179 'normalMax': [0],
180 'normalMin': [0],
181 'ratedMax': [0],
182 'ratedMin': [0]}
Sridevi Rameshdfc7fcb2020-07-23 03:03:57 -0500183
Sridevi Ramesh538d18d2020-03-30 11:45:42 -0500184PLDM_PDR_TYPES = {
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600185 'PLDM_STATE_EFFECTER_PDR': 'State Effecter PDR',
186 'PLDM_PDR_FRU_RECORD_SET': 'FRU Record Set PDR',
187 'PLDM_PDR_ENTITY_ASSOCIATION': 'Entity Association PDR',
188 'PLDM_STATE_SENSOR_PDR': 'State Sensor PDR',
189 'PLDM_NUMERIC_EFFECTER_PDR': 'Numeric Effecter PDR',
190 'PLDM_TERMINUS_LOCATOR_PDR': 'Terminus Locator PDR',
191 'PLDM_COMPACT_NUMERIC_SENSOR_PDR': '21'}
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500192
193RESPONSE_LIST_GETBIOSTABLE_STRTABLE = [
194 'Allowed', 'Disabled', 'Enabled', 'IPv4DHCP', 'IPv4Static', 'Not Allowed',
Sridevi Ramesh297d41b2021-02-02 09:16:55 -0600195 'Perm', 'Temp', 'pvm_fw_boot_side', 'pvm_inband_code_update', 'pvm_os_boot_side',
196 'pvm_pcie_error_inject', 'pvm_surveillance', 'pvm_system_name', 'vmi_hostname',
197 'vmi_if_count', 'vmi_if0_ipv4_ipaddr', 'vmi_if0_ipv4_method',
198 'vmi_if0_ipv4_prefix_length', 'vmi_if1_ipv4_ipaddr', 'vmi_if1_ipv4_method',
199 'vmi_if1_ipv4_prefix_length']
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600200
201
202RESPONSE_LIST_GETBIOSTABLE_ATTRTABLE = [
Sridevi Ramesh297d41b2021-02-02 09:16:55 -0600203 'pvm_fw_boot_side', 'pvm_inband_code_update', 'pvm_os_boot_side',
204 'pvm_pcie_error_inject', 'pvm_surveillance', 'pvm_system_name', 'vmi_hostname',
205 'vmi_if_count', 'vmi_if0_ipv4_ipaddr', 'vmi_if0_ipv4_method',
206 'vmi_if0_ipv4_prefix_length', 'vmi_if1_ipv4_ipaddr', 'vmi_if1_ipv4_method',
207 'vmi_if1_ipv4_prefix_length']
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600208
209RESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE = [
210 'BIOSString', 'BIOSInteger', 'BIOSEnumeration']