1# Romulus.py
2#
3
4SYSTEM_STATES = [
5    'BASE_APPS',
6    'BMC_STARTING',
7    'BMC_READY',
8    'HOST_POWERING_ON',
9    'HOST_POWERED_ON',
10    'HOST_BOOTING',
11    'HOST_BOOTED',
12    'HOST_POWERED_OFF',
13]
14
15EXIT_STATE_DEPEND = {
16    'BASE_APPS': {
17        '/org/openbmc/sensors': 0,
18    },
19    'BMC_STARTING': {
20        '/org/openbmc/control/chassis0': 0,
21        '/org/openbmc/control/power0': 0,
22        '/org/openbmc/control/flash/bios': 0,
23    },
24}
25
26INVENTORY_ROOT = '/org/openbmc/inventory'
27
28FRU_INSTANCES = {
29    '<inventory_root>/system': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
30    '<inventory_root>/system/bios': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
31    '<inventory_root>/system/misc': {'fru_type': 'SYSTEM', 'is_fru': False, },
32
33    '<inventory_root>/system/chassis': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
34
35    '<inventory_root>/system/chassis/motherboard': {'fru_type': 'MAIN_PLANAR', 'is_fru': True, },
36
37    '<inventory_root>/system/systemevent': {'fru_type': 'SYSTEM_EVENT', 'is_fru': False, },
38    '<inventory_root>/system/chassis/motherboard/refclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
39    '<inventory_root>/system/chassis/motherboard/pcieclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
40    '<inventory_root>/system/chassis/motherboard/todclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
41    '<inventory_root>/system/chassis/motherboard/apss': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
42
43    '<inventory_root>/system/chassis/fan0': {'fru_type': 'FAN', 'is_fru': True, },
44    '<inventory_root>/system/chassis/fan1': {'fru_type': 'FAN', 'is_fru': True, },
45    '<inventory_root>/system/chassis/fan2': {'fru_type': 'FAN', 'is_fru': True, },
46    '<inventory_root>/system/chassis/fan3': {'fru_type': 'FAN', 'is_fru': True, },
47
48    '<inventory_root>/system/chassis/motherboard/bmc': {'fru_type': 'BMC', 'is_fru': False, 'manufacturer': 'ASPEED'},
49
50    '<inventory_root>/system/chassis/motherboard/cpu0': {'fru_type': 'CPU', 'is_fru': True, },
51    '<inventory_root>/system/chassis/motherboard/cpu1': {'fru_type': 'CPU', 'is_fru': True, },
52
53    '<inventory_root>/system/chassis/motherboard/cpu0/core0': {'fru_type': 'CORE', 'is_fru': False, },
54    '<inventory_root>/system/chassis/motherboard/cpu0/core1': {'fru_type': 'CORE', 'is_fru': False, },
55    '<inventory_root>/system/chassis/motherboard/cpu0/core2': {'fru_type': 'CORE', 'is_fru': False, },
56    '<inventory_root>/system/chassis/motherboard/cpu0/core3': {'fru_type': 'CORE', 'is_fru': False, },
57    '<inventory_root>/system/chassis/motherboard/cpu0/core4': {'fru_type': 'CORE', 'is_fru': False, },
58    '<inventory_root>/system/chassis/motherboard/cpu0/core5': {'fru_type': 'CORE', 'is_fru': False, },
59    '<inventory_root>/system/chassis/motherboard/cpu0/core6': {'fru_type': 'CORE', 'is_fru': False, },
60    '<inventory_root>/system/chassis/motherboard/cpu0/core7': {'fru_type': 'CORE', 'is_fru': False, },
61    '<inventory_root>/system/chassis/motherboard/cpu0/core8': {'fru_type': 'CORE', 'is_fru': False, },
62    '<inventory_root>/system/chassis/motherboard/cpu0/core9': {'fru_type': 'CORE', 'is_fru': False, },
63    '<inventory_root>/system/chassis/motherboard/cpu0/core10': {'fru_type': 'CORE', 'is_fru': False, },
64    '<inventory_root>/system/chassis/motherboard/cpu0/core11': {'fru_type': 'CORE', 'is_fru': False, },
65    '<inventory_root>/system/chassis/motherboard/cpu0/core12': {'fru_type': 'CORE', 'is_fru': False, },
66    '<inventory_root>/system/chassis/motherboard/cpu0/core13': {'fru_type': 'CORE', 'is_fru': False, },
67    '<inventory_root>/system/chassis/motherboard/cpu0/core14': {'fru_type': 'CORE', 'is_fru': False, },
68    '<inventory_root>/system/chassis/motherboard/cpu0/core15': {'fru_type': 'CORE', 'is_fru': False, },
69    '<inventory_root>/system/chassis/motherboard/cpu0/core16': {'fru_type': 'CORE', 'is_fru': False, },
70    '<inventory_root>/system/chassis/motherboard/cpu0/core17': {'fru_type': 'CORE', 'is_fru': False, },
71    '<inventory_root>/system/chassis/motherboard/cpu0/core18': {'fru_type': 'CORE', 'is_fru': False, },
72    '<inventory_root>/system/chassis/motherboard/cpu0/core19': {'fru_type': 'CORE', 'is_fru': False, },
73    '<inventory_root>/system/chassis/motherboard/cpu0/core20': {'fru_type': 'CORE', 'is_fru': False, },
74    '<inventory_root>/system/chassis/motherboard/cpu0/core21': {'fru_type': 'CORE', 'is_fru': False, },
75    '<inventory_root>/system/chassis/motherboard/cpu0/core22': {'fru_type': 'CORE', 'is_fru': False, },
76    '<inventory_root>/system/chassis/motherboard/cpu0/core23': {'fru_type': 'CORE', 'is_fru': False, },
77
78    '<inventory_root>/system/chassis/motherboard/cpu1/core0': {'fru_type': 'CORE', 'is_fru': False, },
79    '<inventory_root>/system/chassis/motherboard/cpu1/core1': {'fru_type': 'CORE', 'is_fru': False, },
80    '<inventory_root>/system/chassis/motherboard/cpu1/core2': {'fru_type': 'CORE', 'is_fru': False, },
81    '<inventory_root>/system/chassis/motherboard/cpu1/core3': {'fru_type': 'CORE', 'is_fru': False, },
82    '<inventory_root>/system/chassis/motherboard/cpu1/core4': {'fru_type': 'CORE', 'is_fru': False, },
83    '<inventory_root>/system/chassis/motherboard/cpu1/core5': {'fru_type': 'CORE', 'is_fru': False, },
84    '<inventory_root>/system/chassis/motherboard/cpu1/core6': {'fru_type': 'CORE', 'is_fru': False, },
85    '<inventory_root>/system/chassis/motherboard/cpu1/core7': {'fru_type': 'CORE', 'is_fru': False, },
86    '<inventory_root>/system/chassis/motherboard/cpu1/core8': {'fru_type': 'CORE', 'is_fru': False, },
87    '<inventory_root>/system/chassis/motherboard/cpu1/core9': {'fru_type': 'CORE', 'is_fru': False, },
88    '<inventory_root>/system/chassis/motherboard/cpu1/core10': {'fru_type': 'CORE', 'is_fru': False, },
89    '<inventory_root>/system/chassis/motherboard/cpu1/core11': {'fru_type': 'CORE', 'is_fru': False, },
90    '<inventory_root>/system/chassis/motherboard/cpu1/core12': {'fru_type': 'CORE', 'is_fru': False, },
91    '<inventory_root>/system/chassis/motherboard/cpu1/core13': {'fru_type': 'CORE', 'is_fru': False, },
92    '<inventory_root>/system/chassis/motherboard/cpu1/core14': {'fru_type': 'CORE', 'is_fru': False, },
93    '<inventory_root>/system/chassis/motherboard/cpu1/core15': {'fru_type': 'CORE', 'is_fru': False, },
94    '<inventory_root>/system/chassis/motherboard/cpu1/core16': {'fru_type': 'CORE', 'is_fru': False, },
95    '<inventory_root>/system/chassis/motherboard/cpu1/core17': {'fru_type': 'CORE', 'is_fru': False, },
96    '<inventory_root>/system/chassis/motherboard/cpu1/core18': {'fru_type': 'CORE', 'is_fru': False, },
97    '<inventory_root>/system/chassis/motherboard/cpu1/core19': {'fru_type': 'CORE', 'is_fru': False, },
98    '<inventory_root>/system/chassis/motherboard/cpu1/core20': {'fru_type': 'CORE', 'is_fru': False, },
99    '<inventory_root>/system/chassis/motherboard/cpu1/core21': {'fru_type': 'CORE', 'is_fru': False, },
100    '<inventory_root>/system/chassis/motherboard/cpu1/core22': {'fru_type': 'CORE', 'is_fru': False, },
101    '<inventory_root>/system/chassis/motherboard/cpu1/core23': {'fru_type': 'CORE', 'is_fru': False, },
102
103    '<inventory_root>/system/chassis/motherboard/dimm0': {'fru_type': 'DIMM', 'is_fru': True, },
104    '<inventory_root>/system/chassis/motherboard/dimm1': {'fru_type': 'DIMM', 'is_fru': True, },
105    '<inventory_root>/system/chassis/motherboard/dimm2': {'fru_type': 'DIMM', 'is_fru': True, },
106    '<inventory_root>/system/chassis/motherboard/dimm3': {'fru_type': 'DIMM', 'is_fru': True, },
107    '<inventory_root>/system/chassis/motherboard/dimm4': {'fru_type': 'DIMM', 'is_fru': True, },
108    '<inventory_root>/system/chassis/motherboard/dimm5': {'fru_type': 'DIMM', 'is_fru': True, },
109    '<inventory_root>/system/chassis/motherboard/dimm6': {'fru_type': 'DIMM', 'is_fru': True, },
110    '<inventory_root>/system/chassis/motherboard/dimm7': {'fru_type': 'DIMM', 'is_fru': True, },
111    '<inventory_root>/system/chassis/motherboard/dimm8': {'fru_type': 'DIMM', 'is_fru': True, },
112    '<inventory_root>/system/chassis/motherboard/dimm9': {'fru_type': 'DIMM', 'is_fru': True, },
113    '<inventory_root>/system/chassis/motherboard/dimm10': {'fru_type': 'DIMM', 'is_fru': True, },
114    '<inventory_root>/system/chassis/motherboard/dimm11': {'fru_type': 'DIMM', 'is_fru': True, },
115    '<inventory_root>/system/chassis/motherboard/dimm12': {'fru_type': 'DIMM', 'is_fru': True, },
116    '<inventory_root>/system/chassis/motherboard/dimm13': {'fru_type': 'DIMM', 'is_fru': True, },
117    '<inventory_root>/system/chassis/motherboard/dimm14': {'fru_type': 'DIMM', 'is_fru': True, },
118    '<inventory_root>/system/chassis/motherboard/dimm15': {'fru_type': 'DIMM', 'is_fru': True, },
119}
120
121ID_LOOKUP = {
122    'FRU': {
123        0x01: '<inventory_root>/system/chassis/motherboard/cpu0',
124        0x02: '<inventory_root>/system/chassis/motherboard/cpu1',
125        0x03: '<inventory_root>/system/chassis/motherboard',
126        0x04: '<inventory_root>/system/chassis/motherboard/dimm0',
127        0x05: '<inventory_root>/system/chassis/motherboard/dimm1',
128        0x06: '<inventory_root>/system/chassis/motherboard/dimm2',
129        0x07: '<inventory_root>/system/chassis/motherboard/dimm3',
130        0x08: '<inventory_root>/system/chassis/motherboard/dimm4',
131        0x09: '<inventory_root>/system/chassis/motherboard/dimm5',
132        0x0a: '<inventory_root>/system/chassis/motherboard/dimm6',
133        0x0b: '<inventory_root>/system/chassis/motherboard/dimm7',
134        0x0c: '<inventory_root>/system/chassis/motherboard/dimm8',
135        0x0d: '<inventory_root>/system/chassis/motherboard/dimm9',
136        0x0e: '<inventory_root>/system/chassis/motherboard/dimm10',
137        0x0f: '<inventory_root>/system/chassis/motherboard/dimm11',
138        0x10: '<inventory_root>/system/chassis/motherboard/dimm12',
139        0x11: '<inventory_root>/system/chassis/motherboard/dimm13',
140        0x12: '<inventory_root>/system/chassis/motherboard/dimm14',
141        0x13: '<inventory_root>/system/chassis/motherboard/dimm15',
142    },
143    'FRU_STR': {
144        'PRODUCT_0': '<inventory_root>/system/bios',
145        'BOARD_1': '<inventory_root>/system/chassis/motherboard/cpu0',
146        'BOARD_2': '<inventory_root>/system/chassis/motherboard/cpu1',
147        'CHASSIS_3': '<inventory_root>/system/chassis/motherboard',
148        'BOARD_3': '<inventory_root>/system/misc',
149        'PRODUCT_12': '<inventory_root>/system/chassis/motherboard/dimm0',
150        'PRODUCT_13': '<inventory_root>/system/chassis/motherboard/dimm1',
151        'PRODUCT_14': '<inventory_root>/system/chassis/motherboard/dimm2',
152        'PRODUCT_15': '<inventory_root>/system/chassis/motherboard/dimm3',
153        'PRODUCT_16': '<inventory_root>/system/chassis/motherboard/dimm4',
154        'PRODUCT_17': '<inventory_root>/system/chassis/motherboard/dimm5',
155        'PRODUCT_18': '<inventory_root>/system/chassis/motherboard/dimm6',
156        'PRODUCT_19': '<inventory_root>/system/chassis/motherboard/dimm7',
157        'PRODUCT_20': '<inventory_root>/system/chassis/motherboard/dimm8',
158        'PRODUCT_21': '<inventory_root>/system/chassis/motherboard/dimm9',
159        'PRODUCT_22': '<inventory_root>/system/chassis/motherboard/dimm10',
160        'PRODUCT_23': '<inventory_root>/system/chassis/motherboard/dimm11',
161        'PRODUCT_24': '<inventory_root>/system/chassis/motherboard/dimm12',
162        'PRODUCT_25': '<inventory_root>/system/chassis/motherboard/dimm13',
163        'PRODUCT_26': '<inventory_root>/system/chassis/motherboard/dimm14',
164        'PRODUCT_27': '<inventory_root>/system/chassis/motherboard/dimm15',
165        'PRODUCT_47': '<inventory_root>/system/misc',
166    },
167    'SENSOR': {
168        0x01: '/org/openbmc/sensors/host/HostStatus',
169        0x02: '/org/openbmc/sensors/host/BootProgress',
170        0x03: '/org/openbmc/sensors/host/cpu0/OccStatus',
171        0x04: '/org/openbmc/sensors/host/cpu1/OccStatus',
172        0x08: '<inventory_root>/system/chassis/motherboard/cpu0',
173        0x09: '<inventory_root>/system/chassis/motherboard/cpu1',
174        0x0b: '<inventory_root>/system/chassis/motherboard/dimm0',
175        0x0c: '<inventory_root>/system/chassis/motherboard/dimm1',
176        0x0d: '<inventory_root>/system/chassis/motherboard/dimm2',
177        0x0e: '<inventory_root>/system/chassis/motherboard/dimm3',
178        0x0f: '<inventory_root>/system/chassis/motherboard/dimm4',
179        0x10: '<inventory_root>/system/chassis/motherboard/dimm5',
180        0x11: '<inventory_root>/system/chassis/motherboard/dimm6',
181        0x12: '<inventory_root>/system/chassis/motherboard/dimm7',
182        0x13: '<inventory_root>/system/chassis/motherboard/dimm8',
183        0x14: '<inventory_root>/system/chassis/motherboard/dimm9',
184        0x15: '<inventory_root>/system/chassis/motherboard/dimm10',
185        0x16: '<inventory_root>/system/chassis/motherboard/dimm11',
186        0x17: '<inventory_root>/system/chassis/motherboard/dimm12',
187        0x18: '<inventory_root>/system/chassis/motherboard/dimm13',
188        0x19: '<inventory_root>/system/chassis/motherboard/dimm14',
189        0x1a: '<inventory_root>/system/chassis/motherboard/dimm15',
190        0x2b: '<inventory_root>/system/chassis/motherboard/cpu0/core0',
191        0x2c: '<inventory_root>/system/chassis/motherboard/cpu0/core1',
192        0x2d: '<inventory_root>/system/chassis/motherboard/cpu0/core2',
193        0x2e: '<inventory_root>/system/chassis/motherboard/cpu0/core3',
194        0x2f: '<inventory_root>/system/chassis/motherboard/cpu0/core4',
195        0x30: '<inventory_root>/system/chassis/motherboard/cpu0/core5',
196        0x31: '<inventory_root>/system/chassis/motherboard/cpu0/core6',
197        0x32: '<inventory_root>/system/chassis/motherboard/cpu0/core7',
198        0x33: '<inventory_root>/system/chassis/motherboard/cpu0/core8',
199        0x34: '<inventory_root>/system/chassis/motherboard/cpu0/core9',
200        0x35: '<inventory_root>/system/chassis/motherboard/cpu0/core10',
201        0x36: '<inventory_root>/system/chassis/motherboard/cpu0/core11',
202        0x37: '<inventory_root>/system/chassis/motherboard/cpu0/core12',
203        0x38: '<inventory_root>/system/chassis/motherboard/cpu0/core13',
204        0x39: '<inventory_root>/system/chassis/motherboard/cpu0/core14',
205        0x3a: '<inventory_root>/system/chassis/motherboard/cpu0/core15',
206        0x3b: '<inventory_root>/system/chassis/motherboard/cpu0/core16',
207        0x3c: '<inventory_root>/system/chassis/motherboard/cpu0/core17',
208        0x3d: '<inventory_root>/system/chassis/motherboard/cpu0/core18',
209        0x3e: '<inventory_root>/system/chassis/motherboard/cpu0/core19',
210        0x3f: '<inventory_root>/system/chassis/motherboard/cpu0/core20',
211        0x40: '<inventory_root>/system/chassis/motherboard/cpu0/core21',
212        0x41: '<inventory_root>/system/chassis/motherboard/cpu0/core22',
213        0x42: '<inventory_root>/system/chassis/motherboard/cpu0/core23',
214        0x43: '<inventory_root>/system/chassis/motherboard/cpu1/core0',
215        0x44: '<inventory_root>/system/chassis/motherboard/cpu1/core1',
216        0x45: '<inventory_root>/system/chassis/motherboard/cpu1/core2',
217        0x46: '<inventory_root>/system/chassis/motherboard/cpu1/core3',
218        0x47: '<inventory_root>/system/chassis/motherboard/cpu1/core4',
219        0x48: '<inventory_root>/system/chassis/motherboard/cpu1/core5',
220        0x49: '<inventory_root>/system/chassis/motherboard/cpu1/core6',
221        0x4a: '<inventory_root>/system/chassis/motherboard/cpu1/core7',
222        0x4b: '<inventory_root>/system/chassis/motherboard/cpu1/core8',
223        0x4c: '<inventory_root>/system/chassis/motherboard/cpu1/core9',
224        0x4d: '<inventory_root>/system/chassis/motherboard/cpu1/core10',
225        0x4e: '<inventory_root>/system/chassis/motherboard/cpu1/core11',
226        0x4f: '<inventory_root>/system/chassis/motherboard/cpu1/core12',
227        0x50: '<inventory_root>/system/chassis/motherboard/cpu1/core13',
228        0x51: '<inventory_root>/system/chassis/motherboard/cpu1/core14',
229        0x52: '<inventory_root>/system/chassis/motherboard/cpu1/core15',
230        0x53: '<inventory_root>/system/chassis/motherboard/cpu1/core16',
231        0x54: '<inventory_root>/system/chassis/motherboard/cpu1/core17',
232        0x55: '<inventory_root>/system/chassis/motherboard/cpu1/core18',
233        0x56: '<inventory_root>/system/chassis/motherboard/cpu1/core19',
234        0x57: '<inventory_root>/system/chassis/motherboard/cpu1/core20',
235        0x58: '<inventory_root>/system/chassis/motherboard/cpu1/core21',
236        0x59: '<inventory_root>/system/chassis/motherboard/cpu1/core22',
237        0x5a: '<inventory_root>/system/chassis/motherboard/cpu1/core23',
238        0x8b: '/org/openbmc/sensors/host/BootCount',
239        0x8c: '<inventory_root>/system/chassis/motherboard',
240        0x8d: '<inventory_root>/system/chassis/motherboard/refclock',
241        0x8e: '<inventory_root>/system/chassis/motherboard/pcieclock',
242        0x8f: '<inventory_root>/system/chassis/motherboard/todclock',
243        0x90: '<inventory_root>/system/systemevent',
244        0x91: '/org/openbmc/sensors/host/OperatingSystemStatus',
245        0x92: '<inventory_root>/system/chassis/motherboard/pcielink',
246        #        0x08 : '<inventory_root>/system/powerlimit',
247        #        0x10 : '<inventory_root>/system/chassis/motherboard/apss',
248        #        0x06 : '/org/openbmc/sensors/host/powercap',
249    },
250    'GPIO_PRESENT': {}
251}
252
253GPIO_CONFIG = {}
254GPIO_CONFIG['SOFTWARE_PGOOD'] = \
255    {'gpio_pin': 'R1', 'direction': 'out'}
256GPIO_CONFIG['BMC_POWER_UP'] = \
257    {'gpio_pin': 'D1', 'direction': 'out'}
258GPIO_CONFIG['SYS_PWROK_BUFF'] = \
259    {'gpio_pin': 'D2', 'direction': 'in'}
260GPIO_CONFIG['BMC_WD_CLEAR_PULSE_N'] = \
261    {'gpio_pin': 'N5', 'direction': 'out'}
262GPIO_CONFIG['CHECKSTOP'] = \
263    {'gpio_pin': 'J2', 'direction': 'falling'}
264GPIO_CONFIG['BMC_CP0_RESET_N'] = \
265    {'gpio_pin': 'A1', 'direction': 'out'}
266GPIO_CONFIG['BMC_CP0_PERST_ENABLE_R'] = \
267    {'gpio_pin': 'A3', 'direction': 'out'}
268GPIO_CONFIG['FSI_DATA'] = \
269    {'gpio_pin': 'AA2', 'direction': 'out'}
270GPIO_CONFIG['FSI_CLK'] = \
271    {'gpio_pin': 'AA0', 'direction': 'out'}
272GPIO_CONFIG['FSI_ENABLE'] = \
273    {'gpio_pin': 'D0', 'direction': 'out'}
274
275# DBG_CP0_MUX_SEL
276GPIO_CONFIG['CRONUS_SEL'] = \
277    {'gpio_pin': 'A6', 'direction': 'out'}
278GPIO_CONFIG['BMC_THROTTLE'] = \
279    {'gpio_pin': 'J3', 'direction': 'out'}
280GPIO_CONFIG['IDBTN'] = \
281    {'gpio_pin': 'Q7', 'direction': 'out'}
282
283# PM_FP_PWRBTN_IN_L
284GPIO_CONFIG['POWER_BUTTON'] = \
285    {'gpio_pin': 'I3', 'direction': 'both'}
286
287# PM_NMIBTN_IN_L
288GPIO_CONFIG['RESET_BUTTON'] = \
289    {'gpio_pin': 'J1', 'direction': 'both'}
290
291HWMON_CONFIG = {
292    '4-0050': {
293        'names': {
294            'caps_curr_powercap': {'object_path': 'powercap/curr_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
295            'caps_curr_powerreading': {'object_path': 'powercap/system_power', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
296            'caps_max_powercap': {'object_path': 'powercap/max_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
297            'caps_min_powercap': {'object_path': 'powercap/min_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
298            'caps_norm_powercap': {'object_path': 'powercap/n_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
299            'caps_user_powerlimit': {'object_path': 'powercap/user_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
300        },
301        'labels': {
302            '176':  {'object_path': 'temperature/cpu0/core0', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
303                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
304            '177':  {'object_path': 'temperature/cpu0/core1', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
305                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
306            '178':  {'object_path': 'temperature/cpu0/core2', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
307                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
308            '179':  {'object_path': 'temperature/cpu0/core3', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
309                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
310            '180':  {'object_path': 'temperature/cpu0/core4', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
311                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
312            '181':  {'object_path': 'temperature/cpu0/core5', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
313                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
314            '182':  {'object_path': 'temperature/cpu0/core6', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
315                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
316            '183':  {'object_path': 'temperature/cpu0/core7', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
317                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
318            '184':  {'object_path': 'temperature/cpu0/core8', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
319                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
320            '185':  {'object_path': 'temperature/cpu0/core9', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
321                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
322            '186':  {'object_path': 'temperature/cpu0/core10', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
323                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
324            '187':  {'object_path': 'temperature/cpu0/core11', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
325                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
326            '102':  {'object_path': 'temperature/dimm0', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
327            '103':  {'object_path': 'temperature/dimm1', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
328            '104':  {'object_path': 'temperature/dimm2', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
329            '105':  {'object_path': 'temperature/dimm3', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
330            '106':  {'object_path': 'temperature/dimm4', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
331            '107':  {'object_path': 'temperature/dimm5', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
332            '108':  {'object_path': 'temperature/dimm6', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
333            '109':  {'object_path': 'temperature/dimm7', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
334        }
335    },
336    '5-0050': {
337        'labels':  {
338            '188':  {'object_path': 'temperature/cpu1/core0', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
339                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
340            '189':  {'object_path': 'temperature/cpu1/core1', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
341                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
342            '190':  {'object_path': 'temperature/cpu1/core2', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
343                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
344            '191':  {'object_path': 'temperature/cpu1/core3', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
345                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
346            '192':  {'object_path': 'temperature/cpu1/core4', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
347                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
348            '193':  {'object_path': 'temperature/cpu1/core5', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
349                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
350            '194':  {'object_path': 'temperature/cpu1/core6', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
351                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
352            '195':  {'object_path': 'temperature/cpu1/core7', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
353                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
354            '196':  {'object_path': 'temperature/cpu1/core8', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
355                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
356            '197':  {'object_path': 'temperature/cpu1/core9', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
357                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
358            '198':  {'object_path': 'temperature/cpu1/core10', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
359                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
360            '199':  {'object_path': 'temperature/cpu1/core11', 'poll_interval': 5000, 'scale': -3, 'units': 'C',
361                     'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
362            '110':  {'object_path': 'temperature/dimm8', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
363            '111':  {'object_path': 'temperature/dimm9', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
364            '112':  {'object_path': 'temperature/dimm10', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
365            '113':  {'object_path': 'temperature/dimm11', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
366            '114':  {'object_path': 'temperature/dimm12', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
367            '115':  {'object_path': 'temperature/dimm13', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
368            '116':  {'object_path': 'temperature/dimm14', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
369            '117':  {'object_path': 'temperature/dimm15', 'poll_interval': 5000, 'scale': -3, 'units': 'C'},
370        }
371    },
372}
373
374
375GPIO_CONFIGS = {
376    'power_config': {
377        'power_good_in': 'SYS_PWROK_BUFF',
378        'power_up_outs': [
379            ('SOFTWARE_PGOOD', True),
380            ('BMC_POWER_UP', True),
381        ],
382        'reset_outs': [
383            ('BMC_CP0_RESET_N', False),
384            ('BMC_CP0_PERST_ENABLE_R', False),
385        ],
386    },
387    'hostctl_config': {
388        'fsi_data': 'FSI_DATA',
389        'fsi_clk': 'FSI_CLK',
390        'fsi_enable': 'FSI_ENABLE',
391        'cronus_sel': 'CRONUS_SEL',
392        'optionals': [
393        ],
394    },
395}
396
397
398# Miscellaneous non-poll sensor with system specific properties.
399# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
400MISC_SENSORS = {
401    0x8b: {'class': 'BootCountSensor'},
402    0x02: {'class': 'BootProgressSensor'},
403    # OCC active sensors aren't in the P9 XML yet.  These are wrong.
404    0x03: {'class': 'OccStatusSensor',
405           'os_path': '/sys/bus/i2c/devices/3-0050/online'},
406    0x04: {'class': 'OccStatusSensor',
407           'os_path': '/sys/bus/i2c/devices/3-0051/online'},
408    0x91: {'class': 'OperatingSystemStatusSensor'},
409    # 0x06 : { 'class' : 'PowerCap',
410    #    'os_path' : '/sys/class/hwmon/hwmon3/user_powercap' },
411}
412
413# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
414