Skip to content

Commit acd26f4

Browse files
authored
Merge pull request #14 from avg-I/power-supply-information-record
Add support for PowerSupplyInformation record in MultiRecord area
2 parents cb2fc9f + e6a77a1 commit acd26f4

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

frugy/multirecords_ipmi.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,65 @@
3030
name in enumerate(fmc_voltages_total)}
3131

3232

33+
@ipmi_multirecord(0x00)
34+
class PowerSupplyInformation(MultirecordEntry):
35+
''' Platform Management FRU Information Storage Definition, Table 18-1 '''
36+
37+
# Need to see the fields as big-endian so that 12-bit sub-fields can be
38+
# properly extracted from 2-byte fields.
39+
_mergeBitfield = True
40+
41+
# TODO: add unit metadata to fields
42+
_schema = [
43+
('predictive_fail_lower_thresh', FixedField, 'u8'),
44+
('combined_wattage', FixedField, 'u16', {'constants': {
45+
'no_combined_voltages': 0
46+
}}),
47+
('voltage1', FixedField, 'u4', {'constants': {
48+
'12v': 0,
49+
'-12v': 1,
50+
'5v': 2,
51+
'3.3v': 3,
52+
}}),
53+
('voltage2', FixedField, 'u4', {'constants': {
54+
'12v': 0,
55+
'-12v': 1,
56+
'5v': 2,
57+
'3.3v': 3,
58+
}}),
59+
('holdup_time', FixedField, 'u4'),
60+
('peak_capacity', FixedField, 'u12', {'constants': {
61+
'unspecified': 0xfff
62+
}}),
63+
('_reserved2', FixedField, 'u3', {'default': 0}),
64+
('pin_polarity', FixedField, 'u1'),
65+
('hot_swap', FixedField, 'u1'),
66+
('autoswitch', FixedField, 'u1'),
67+
('pfc', FixedField, 'u1'),
68+
('predictive_fail_support', FixedField, 'u1'),
69+
('dropout_tolerance', FixedField, 'u8'),
70+
('high_freq', FixedField, 'u8', {'constants': {
71+
'only_dc': 0
72+
}}),
73+
('low_freq', FixedField, 'u8', {'constants': {
74+
'accepts_dc': 0
75+
}}),
76+
('high_input_voltage_2', FixedField, 's16', {'div': 10}), # 10mV
77+
('low_input_voltage_2', FixedField, 's16', {'div': 10}), # 10mV
78+
('high_input_voltage_1', FixedField, 's16', {'div': 10}), # 10mV
79+
('low_input_voltage_1', FixedField, 's16', {'div': 10}), # 10mV
80+
('inrush_interval', FixedField, 'u8'),
81+
('inrush_current', FixedField, 'u8', {'constants': {
82+
'unspecified': 0xff
83+
}}),
84+
('peak_va', FixedField, 'u16', {'constants': {
85+
'unspecified': 0xffff
86+
}}),
87+
('_reserved', FixedField, 'u4', {'default': 0}),
88+
('overall_capacity', FixedField, 'u12'),
89+
]
90+
91+
3392
@ipmi_multirecord(0x01)
3493
class DCOutput(MultirecordEntry):
3594
''' Platform Management FRU Information Storage Definition, Table 18-2 '''

0 commit comments

Comments
 (0)