1e7e9171eSGeorge Keishing#!/usr/bin/env python3
270e14187SSridevi Ramesh
370e14187SSridevi Rameshr"""
470e14187SSridevi RameshContains PLDM-related constants.
570e14187SSridevi Ramesh"""
670e14187SSridevi Ramesh
7*20f38712SPatrick WilliamsPLDM_SUPPORTED_TYPES = ["base", "platform", "bios", "fru", "oem-ibm"]
84d488571SRahul Maheshwari
9c4e1cbacSSridevi Ramesh# PLDM types.
10*20f38712SPatrick WilliamsPLDM_TYPE_BASE = {"VALUE": "00", "STRING": "base"}
11*20f38712SPatrick WilliamsPLDM_TYPE_PLATFORM = {"VALUE": "02", "STRING": "platform"}
12*20f38712SPatrick WilliamsPLDM_TYPE_BIOS = {"VALUE": "03", "STRING": "bios"}
13*20f38712SPatrick WilliamsPLDM_TYPE_FRU = {"VALUE": "04", "STRING": "fru"}
14*20f38712SPatrick WilliamsPLDM_TYPE_OEM = {"VALUE": "63", "STRING": "oem-ibm"}
15*20f38712SPatrick WilliamsPLDM_SUPPORTED_TYPES = [
16*20f38712SPatrick Williams    "0(base)",
17*20f38712SPatrick Williams    "2(platform)",
18*20f38712SPatrick Williams    "3(bios)",
19*20f38712SPatrick Williams    "4(fru)",
20*20f38712SPatrick Williams    "63(oem-ibm)",
21*20f38712SPatrick Williams]
2270e14187SSridevi Ramesh
23*20f38712SPatrick WilliamsVERSION_BASE = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"}
24*20f38712SPatrick WilliamsVERSION_PLATFORM = {"VALUE": ["f1", "f2", "f0", "00"], "STRING": "1.2.0"}
25*20f38712SPatrick WilliamsVERSION_BIOS = {"VALUE": ["f1", "f1", "f1", "00"], "STRING": "1.0.0"}
26*20f38712SPatrick WilliamsVERSION_FRU = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"}
27*20f38712SPatrick WilliamsVERSION_OEM = {"VALUE": ["f1", "f0", "f0", "00"], "STRING": "1.0.0"}
2870e14187SSridevi Ramesh
2970e14187SSridevi Ramesh
30*20f38712SPatrick WilliamsPLDM_BASE_CMDS = [
31*20f38712SPatrick Williams    "2(GetTID)",
32*20f38712SPatrick Williams    "3(GetPLDMVersion)",
33*20f38712SPatrick Williams    "4(GetPLDMTypes)",
34*20f38712SPatrick Williams    "5(GetPLDMCommands)",
35*20f38712SPatrick Williams]
36*20f38712SPatrick WilliamsPLDM_PLATFORM_CMDS = ["57(SetStateEffecterStates)", "81(GetPDR)"]
37*20f38712SPatrick WilliamsPLDM_BIOS_CMDS = [
38*20f38712SPatrick Williams    "1(GetBIOSTable)",
39*20f38712SPatrick Williams    "7(SetBIOSAttributeCurrentValue)",
40*20f38712SPatrick Williams    "8(GetBIOSAttributeCurrentValueByHandle)",
41*20f38712SPatrick Williams    "12(GetDateTime)",
42*20f38712SPatrick Williams    "13(SetDateTime)",
43*20f38712SPatrick Williams]
44*20f38712SPatrick WilliamsPLDM_FRU_CMDS = [
45*20f38712SPatrick Williams    "1(GetFRURecordTableMetadata)",
46*20f38712SPatrick Williams    "2(GetFRURecordTable)",
47*20f38712SPatrick Williams    "4(GetFRURecordByOption)",
48*20f38712SPatrick Williams]
49*20f38712SPatrick WilliamsPLDM_OEM_CMDS = [
50*20f38712SPatrick Williams    "1(GetFileTable)",
51*20f38712SPatrick Williams    "4(ReadFile)",
52*20f38712SPatrick Williams    "5(WriteFile)",
53*20f38712SPatrick Williams    "6(ReadFileInToMemory)",
54*20f38712SPatrick Williams    "7(WriteFileFromMemory)",
55*20f38712SPatrick Williams    "8(ReadFileByTypeIntoMemory)",
56*20f38712SPatrick Williams    "9(WriteFileByTypeFromMemory)",
57*20f38712SPatrick Williams    "10(NewFileAvailable)",
58*20f38712SPatrick Williams    "11(ReadFileByType)",
59*20f38712SPatrick Williams    "12(WriteFileByType)",
60*20f38712SPatrick Williams    "13(FileAck)",
61*20f38712SPatrick Williams    "240(GetAlertStatus)",
62*20f38712SPatrick Williams]
63c4e1cbacSSridevi Ramesh
64c4e1cbacSSridevi Ramesh# PLDM command format.
65c4e1cbacSSridevi Ramesh
66*20f38712SPatrick Williams"""
67c4e1cbacSSridevi Rameshe.g. : GetPLDMVersion usage
68c4e1cbacSSridevi Ramesh
69c4e1cbacSSridevi Rameshpldmtool base GetPLDMVersion -t <pldm_type>
70c4e1cbacSSridevi Ramesh
71c4e1cbacSSridevi Rameshpldm supported types
72c4e1cbacSSridevi Ramesh
73c4e1cbacSSridevi Rameshbase->0,platform->2,bios->3,fru->4
74c4e1cbacSSridevi Ramesh
75*20f38712SPatrick Williams"""
76*20f38712SPatrick WilliamsCMD_GETPLDMVERSION = "base GetPLDMVersion -t %s"
77c4e1cbacSSridevi Ramesh
78*20f38712SPatrick Williams"""
79c4e1cbacSSridevi Rameshe.g. : PLDM raw command usage
80c4e1cbacSSridevi Ramesh
81c4e1cbacSSridevi Rameshpldmtool raw -d 0x80 0x00 0x03 0x00 0x00 0x00 0x00 0x01 0x00
82c4e1cbacSSridevi Ramesh
83c4e1cbacSSridevi Rameshpldm raw -d 0x<header> 0x<pldm_type> 0x<pldm_cmd_type> 0x<payload_data>
84*20f38712SPatrick Williams"""
85c4e1cbacSSridevi Ramesh
86*20f38712SPatrick WilliamsCMD_PLDMTOOL_RAW = "raw -d 0x80" + "0x%s" + " " + "0x%s"
87c4e1cbacSSridevi Ramesh
88c4e1cbacSSridevi Ramesh
89c4e1cbacSSridevi Ramesh# PLDM command payload data.
90c4e1cbacSSridevi Ramesh
91*20f38712SPatrick WilliamsPAYLOAD_GetPLDMVersion = (  # %(TransferOperationFlag, PLDMType)
92*20f38712SPatrick Williams    " 0x00 0x00 0x00 0x00 0x%s 0x%s"
93*20f38712SPatrick Williams)
944d488571SRahul Maheshwari
954d488571SRahul Maheshwari
96*20f38712SPatrick Williams"""
971495bc4fSSridevi Rameshe.g. : SetDateTime usage
981495bc4fSSridevi Ramesh
991495bc4fSSridevi Rameshpldmtool bios SetDateTime -d <YYYYMMDDHHMMSS>
1001495bc4fSSridevi Ramesh
101*20f38712SPatrick Williams"""
102*20f38712SPatrick WilliamsCMD_SETDATETIME = "bios SetDateTime -d %s"
103fe52e405SSridevi Ramesh
104fe52e405SSridevi Ramesh
105*20f38712SPatrick WilliamsCMD_GETPDR = "platform GetPDR -d %s"
106fe52e405SSridevi Ramesh
107*20f38712SPatrick Williams"""
108fe52e405SSridevi Rameshe.g. : SetStateEffecterStates usage
109fe52e405SSridevi Ramesh
110ca3223a6SSridevi Rameshpldmtool platform GetPDR -i <effter_handle> -c <count> -d <effecterID, effecterState>
111fe52e405SSridevi Ramesh
112ca3223a6SSridevi Rameshpldmtool platform SetStateEffecterStates -i 1 -c 1 -d 1 1
113*20f38712SPatrick Williams"""
114fe52e405SSridevi Ramesh
115*20f38712SPatrick WilliamsCMD_SETSTATEEFFECTERSTATES = (
116*20f38712SPatrick Williams    "platform SetStateEffecterStates -i %s -c %s -d %s"
117*20f38712SPatrick Williams)
118fe52e405SSridevi Ramesh
119fe52e405SSridevi Ramesh# GetPDR parsed response message for record handle.
120fe52e405SSridevi Ramesh# Dictionary value array holds the expected output for record handle 1, 2.
121fe52e405SSridevi Ramesh#
122fe52e405SSridevi Ramesh# Note :
123fe52e405SSridevi Ramesh#      Record handle - 0 is default &  has same behaviour as record handle 1
124fe52e405SSridevi Ramesh#      Only record handle 0, 1, 2 are supported as of now.
125fe52e405SSridevi Ramesh
126538d18d1SSridevi RameshRESPONSE_DICT_GETPDR_SETSTATEEFFECTER = {
127*20f38712SPatrick Williams    "PDRHeaderVersion": [1],
128*20f38712SPatrick Williams    "PDRType": ["State Effecter PDR"],
129*20f38712SPatrick Williams    "recordChangeNumber": [0],
130*20f38712SPatrick Williams    "effecterID": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
131*20f38712SPatrick Williams    "entityType": [
132*20f38712SPatrick Williams        "Virtual Machine Manager",
133*20f38712SPatrick Williams        "System chassis (main enclosure)",
134*20f38712SPatrick Williams        "System Firmware",
135*20f38712SPatrick Williams        "Processor Module",
136*20f38712SPatrick Williams        "32801(OEM)",
137*20f38712SPatrick Williams        "Management Controller",
138*20f38712SPatrick Williams        "24577(OEM)",
139*20f38712SPatrick Williams    ],
140*20f38712SPatrick Williams    "entityInstanceNumber": [0, 1, 2, 3, 4],
141*20f38712SPatrick Williams    "containerID": [0, 1],
142*20f38712SPatrick Williams    "effecterSemanticID": [0],
143*20f38712SPatrick Williams    "effecterInit": ["noInit"],
144*20f38712SPatrick Williams    "effecterDescriptionPDR": [False],
145*20f38712SPatrick Williams    "compositeEffecterCount": [1],
146*20f38712SPatrick Williams}
147fe52e405SSridevi Ramesh
148538d18d1SSridevi RameshRESPONSE_DICT_GETPDR_FRURECORDSETIDENTIFIER = {
149*20f38712SPatrick Williams    "PDRHeaderVersion": [1],
150*20f38712SPatrick Williams    "PDRType": ["FRU Record Set PDR"],
151*20f38712SPatrick Williams    "recordChangeNumber": [0],
152*20f38712SPatrick Williams    "dataLength": [10],
153*20f38712SPatrick Williams    "entityType": [
154*20f38712SPatrick Williams        "System Board",
155*20f38712SPatrick Williams        "Chassis front panel board (control panel)",
156*20f38712SPatrick Williams        "Management Controller",
157*20f38712SPatrick Williams        "OEM",
158*20f38712SPatrick Williams        "Power converter",
159*20f38712SPatrick Williams        "System (logical)",
160*20f38712SPatrick Williams        "System chassis (main enclosure)",
161*20f38712SPatrick Williams        "Chassis front panel board (control panel)",
162*20f38712SPatrick Williams        "Processor Module",
163*20f38712SPatrick Williams        "Memory Module",
164*20f38712SPatrick Williams        "Power Supply",
165*20f38712SPatrick Williams        "24576(OEM)",
166*20f38712SPatrick Williams        "60(OEM)",
167*20f38712SPatrick Williams        "Processor",
168*20f38712SPatrick Williams        "142(OEM)",
169*20f38712SPatrick Williams    ],
170*20f38712SPatrick Williams    "containerID": [0, 1, 2, 3],
171*20f38712SPatrick Williams}
172538d18d1SSridevi Ramesh
173538d18d1SSridevi RameshRESPONSE_DICT_GETPDR_PDRENTITYASSOCIATION = {
174*20f38712SPatrick Williams    "PDRHeaderVersion": [1],
175*20f38712SPatrick Williams    "PDRType": ["Entity Association PDR"],
176*20f38712SPatrick Williams    "recordChangeNumber": [0],
177*20f38712SPatrick Williams    "containerID": [1, 2, 3],
178*20f38712SPatrick Williams    "associationtype": ["Physical"],
179*20f38712SPatrick Williams    "containerentityType": [
180*20f38712SPatrick Williams        "System Board",
181*20f38712SPatrick Williams        "System (logical)",
182*20f38712SPatrick Williams        "System chassis (main enclosure)",
183*20f38712SPatrick Williams    ],
184*20f38712SPatrick Williams}
185538d18d1SSridevi Ramesh
186dfc7fcb7SSridevi RameshRESPONSE_DICT_GETPDR_STATESENSORPDR = {
187*20f38712SPatrick Williams    "entityType": [
188*20f38712SPatrick Williams        "Communication Channel",
189*20f38712SPatrick Williams        "Connector",
190*20f38712SPatrick Williams        "Processor Module",
191*20f38712SPatrick Williams        "32774(OEM)",
192*20f38712SPatrick Williams        "57346(OEM)",
193*20f38712SPatrick Williams        "57347(OEM)",
194*20f38712SPatrick Williams        "32801(OEM)",
195*20f38712SPatrick Williams        "91(OEM)",
196*20f38712SPatrick Williams        "5(OEM)",
197*20f38712SPatrick Williams        "24577(OEM)",
198*20f38712SPatrick Williams    ],
199*20f38712SPatrick Williams    "sensorInit": ["noInit"],
200*20f38712SPatrick Williams    "sensorAuxiliaryNamesPDR": [False],
201*20f38712SPatrick Williams}
202961050baSSridevi Ramesh
203961050baSSridevi RameshRESPONSE_DICT_GETPDR_TERMINUSLOCATORPDR = {
204*20f38712SPatrick Williams    "PDRHeaderVersion": [1],
205*20f38712SPatrick Williams    "PDRType": ["Terminus Locator PDR"],
206*20f38712SPatrick Williams    "recordChangeNumber": [0],
207*20f38712SPatrick Williams    "validity": ["valid"],
208*20f38712SPatrick Williams    "TID": [0, 1, 208],
209*20f38712SPatrick Williams    "containerID": [0, 1],
210*20f38712SPatrick Williams    "terminusLocatorType": ["MCTP_EID"],
211*20f38712SPatrick Williams    "terminusLocatorValueSize": [1],
212*20f38712SPatrick Williams}
213961050baSSridevi Ramesh
214961050baSSridevi RameshRESPONSE_DICT_GETPDR_NUMERICEFFECTERPDR = {
215*20f38712SPatrick Williams    "PDRHeaderVersion": [1],
216*20f38712SPatrick Williams    "PDRType": ["Numeric Effecter PDR"],
217*20f38712SPatrick Williams    "recordChangeNumber": [0],
218*20f38712SPatrick Williams    "entityInstanceNumber": [0, 1],
219*20f38712SPatrick Williams    "containerID": [0],
220*20f38712SPatrick Williams    "effecterSemanticID": [0],
221*20f38712SPatrick Williams    "effecterInit": [0],
222*20f38712SPatrick Williams    "effecterAuxiliaryNames": [False],
223*20f38712SPatrick Williams    "baseUnit": [0, 72, 21],
224*20f38712SPatrick Williams    "unitModifier": [0],
225*20f38712SPatrick Williams    "baseOEMUnitHandle": [0],
226*20f38712SPatrick Williams    "auxUnit": [0],
227*20f38712SPatrick Williams    "auxUnitModifier": [0],
228*20f38712SPatrick Williams    "auxrateUnit": [0],
229*20f38712SPatrick Williams    "auxOEMUnitHandle": [0],
230*20f38712SPatrick Williams    "resolution": [1, 0],
231*20f38712SPatrick Williams    "offset": [0],
232*20f38712SPatrick Williams    "accuracy": [0],
233*20f38712SPatrick Williams    "plusTolerance": [0],
234*20f38712SPatrick Williams    "minusTolerance": [0],
235*20f38712SPatrick Williams    "stateTransitionInterval": [0],
236*20f38712SPatrick Williams    "TransitionInterval": [0],
237*20f38712SPatrick Williams    "minSettable": [0],
238*20f38712SPatrick Williams    "rangeFieldSupport": [0],
239*20f38712SPatrick Williams    "nominalValue": [0],
240*20f38712SPatrick Williams    "normalMax": [0],
241*20f38712SPatrick Williams    "normalMin": [0],
242*20f38712SPatrick Williams    "ratedMax": [0],
243*20f38712SPatrick Williams    "ratedMin": [0],
244*20f38712SPatrick Williams}
245dfc7fcb7SSridevi Ramesh
246538d18d1SSridevi RameshPLDM_PDR_TYPES = {
247*20f38712SPatrick Williams    "PLDM_STATE_EFFECTER_PDR": "State Effecter PDR",
248*20f38712SPatrick Williams    "PLDM_PDR_FRU_RECORD_SET": "FRU Record Set PDR",
249*20f38712SPatrick Williams    "PLDM_PDR_ENTITY_ASSOCIATION": "Entity Association PDR",
250*20f38712SPatrick Williams    "PLDM_STATE_SENSOR_PDR": "State Sensor PDR",
251*20f38712SPatrick Williams    "PLDM_NUMERIC_EFFECTER_PDR": "Numeric Effecter PDR",
252*20f38712SPatrick Williams    "PLDM_TERMINUS_LOCATOR_PDR": "Terminus Locator PDR",
253*20f38712SPatrick Williams    "PLDM_COMPACT_NUMERIC_SENSOR_PDR": "21",
254*20f38712SPatrick Williams}
255f60581b6SSridevi Ramesh
256961050baSSridevi RameshRESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE = [
257*20f38712SPatrick Williams    "BIOSString",
258*20f38712SPatrick Williams    "BIOSInteger",
259*20f38712SPatrick Williams    "BIOSEnumeration",
260*20f38712SPatrick Williams]
261