1#! /usr/bin/python
2
3# System states
4# state can change to next state in 2 ways:
5# - a process emits a GotoSystemState signal with state name to goto
6# - objects specified in EXIT_STATE_DEPEND have started
7SYSTEM_STATES = [
8    'BASE_APPS',
9    'BMC_STARTING',
10    'BMC_READY',
11    'HOST_POWERING_ON',
12    'HOST_POWERED_ON',
13    'HOST_BOOTING',
14    'HOST_BOOTED',
15    'HOST_POWERED_OFF',
16]
17
18EXIT_STATE_DEPEND = {
19    'BASE_APPS': {
20        '/org/openbmc/sensors': 0,
21    },
22    'BMC_STARTING': {
23        '/org/openbmc/control/chassis0': 0,
24        '/org/openbmc/control/power0': 0,
25        '/org/openbmc/control/flash/bios': 0,
26    },
27}
28
29FRU_INSTANCES = {
30    '<inventory_root>/system': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
31    '<inventory_root>/system/bios': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
32    '<inventory_root>/system/misc': {'fru_type': 'SYSTEM', 'is_fru': False, },
33
34    '<inventory_root>/system/chassis': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
35
36    '<inventory_root>/system/chassis/motherboard': {'fru_type': 'MAIN_PLANAR', 'is_fru': True, },
37
38    '<inventory_root>/system/systemevent': {'fru_type': 'SYSTEM_EVENT', 'is_fru': False, },
39    '<inventory_root>/system/chassis/motherboard/refclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
40    '<inventory_root>/system/chassis/motherboard/pcieclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
41    '<inventory_root>/system/chassis/motherboard/todclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
42    '<inventory_root>/system/chassis/motherboard/apss': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
43
44    '<inventory_root>/system/chassis/fan0': {'fru_type': 'FAN', 'is_fru': True, },
45    '<inventory_root>/system/chassis/fan1': {'fru_type': 'FAN', 'is_fru': True, },
46    '<inventory_root>/system/chassis/fan2': {'fru_type': 'FAN', 'is_fru': True, },
47    '<inventory_root>/system/chassis/fan3': {'fru_type': 'FAN', 'is_fru': True, },
48
49    '<inventory_root>/system/chassis/motherboard/bmc': {'fru_type': 'BMC', 'is_fru': False,
50                                                        'manufacturer': 'ASPEED'},
51
52    '<inventory_root>/system/chassis/motherboard/cpu0': {'fru_type': 'CPU', 'is_fru': True, },
53    '<inventory_root>/system/chassis/motherboard/cpu1': {'fru_type': 'CPU', 'is_fru': True, },
54
55    '<inventory_root>/system/chassis/motherboard/cpu0/core0': {'fru_type': 'CORE', 'is_fru': False, },
56    '<inventory_root>/system/chassis/motherboard/cpu0/core1': {'fru_type': 'CORE', 'is_fru': False, },
57    '<inventory_root>/system/chassis/motherboard/cpu0/core2': {'fru_type': 'CORE', 'is_fru': False, },
58    '<inventory_root>/system/chassis/motherboard/cpu0/core3': {'fru_type': 'CORE', 'is_fru': False, },
59    '<inventory_root>/system/chassis/motherboard/cpu0/core4': {'fru_type': 'CORE', 'is_fru': False, },
60    '<inventory_root>/system/chassis/motherboard/cpu0/core5': {'fru_type': 'CORE', 'is_fru': False, },
61    '<inventory_root>/system/chassis/motherboard/cpu0/core6': {'fru_type': 'CORE', 'is_fru': False, },
62    '<inventory_root>/system/chassis/motherboard/cpu0/core7': {'fru_type': 'CORE', 'is_fru': False, },
63    '<inventory_root>/system/chassis/motherboard/cpu0/core8': {'fru_type': 'CORE', 'is_fru': False, },
64    '<inventory_root>/system/chassis/motherboard/cpu0/core9': {'fru_type': 'CORE', 'is_fru': False, },
65    '<inventory_root>/system/chassis/motherboard/cpu0/core10': {'fru_type': 'CORE', 'is_fru': False, },
66    '<inventory_root>/system/chassis/motherboard/cpu0/core11': {'fru_type': 'CORE', 'is_fru': False, },
67
68    '<inventory_root>/system/chassis/motherboard/cpu1/core0': {'fru_type': 'CORE', 'is_fru': False, },
69    '<inventory_root>/system/chassis/motherboard/cpu1/core1': {'fru_type': 'CORE', 'is_fru': False, },
70    '<inventory_root>/system/chassis/motherboard/cpu1/core2': {'fru_type': 'CORE', 'is_fru': False, },
71    '<inventory_root>/system/chassis/motherboard/cpu1/core3': {'fru_type': 'CORE', 'is_fru': False, },
72    '<inventory_root>/system/chassis/motherboard/cpu1/core4': {'fru_type': 'CORE', 'is_fru': False, },
73    '<inventory_root>/system/chassis/motherboard/cpu1/core5': {'fru_type': 'CORE', 'is_fru': False, },
74    '<inventory_root>/system/chassis/motherboard/cpu1/core6': {'fru_type': 'CORE', 'is_fru': False, },
75    '<inventory_root>/system/chassis/motherboard/cpu1/core7': {'fru_type': 'CORE', 'is_fru': False, },
76    '<inventory_root>/system/chassis/motherboard/cpu1/core8': {'fru_type': 'CORE', 'is_fru': False, },
77    '<inventory_root>/system/chassis/motherboard/cpu1/core9': {'fru_type': 'CORE', 'is_fru': False, },
78    '<inventory_root>/system/chassis/motherboard/cpu1/core10': {'fru_type': 'CORE', 'is_fru': False, },
79    '<inventory_root>/system/chassis/motherboard/cpu1/core11': {'fru_type': 'CORE', 'is_fru': False, },
80
81    '<inventory_root>/system/chassis/motherboard/membuf0': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
82    '<inventory_root>/system/chassis/motherboard/membuf1': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
83    '<inventory_root>/system/chassis/motherboard/membuf2': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
84    '<inventory_root>/system/chassis/motherboard/membuf3': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
85    '<inventory_root>/system/chassis/motherboard/membuf4': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
86    '<inventory_root>/system/chassis/motherboard/membuf5': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
87    '<inventory_root>/system/chassis/motherboard/membuf6': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
88    '<inventory_root>/system/chassis/motherboard/membuf7': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
89
90    '<inventory_root>/system/chassis/motherboard/dimm0': {'fru_type': 'DIMM', 'is_fru': True, },
91    '<inventory_root>/system/chassis/motherboard/dimm1': {'fru_type': 'DIMM', 'is_fru': True, },
92    '<inventory_root>/system/chassis/motherboard/dimm2': {'fru_type': 'DIMM', 'is_fru': True, },
93    '<inventory_root>/system/chassis/motherboard/dimm3': {'fru_type': 'DIMM', 'is_fru': True, },
94    '<inventory_root>/system/chassis/motherboard/dimm4': {'fru_type': 'DIMM', 'is_fru': True, },
95    '<inventory_root>/system/chassis/motherboard/dimm5': {'fru_type': 'DIMM', 'is_fru': True, },
96    '<inventory_root>/system/chassis/motherboard/dimm6': {'fru_type': 'DIMM', 'is_fru': True, },
97    '<inventory_root>/system/chassis/motherboard/dimm7': {'fru_type': 'DIMM', 'is_fru': True, },
98    '<inventory_root>/system/chassis/motherboard/dimm8': {'fru_type': 'DIMM', 'is_fru': True, },
99    '<inventory_root>/system/chassis/motherboard/dimm9': {'fru_type': 'DIMM', 'is_fru': True, },
100    '<inventory_root>/system/chassis/motherboard/dimm10': {'fru_type': 'DIMM', 'is_fru': True, },
101    '<inventory_root>/system/chassis/motherboard/dimm11': {'fru_type': 'DIMM', 'is_fru': True, },
102    '<inventory_root>/system/chassis/motherboard/dimm12': {'fru_type': 'DIMM', 'is_fru': True, },
103    '<inventory_root>/system/chassis/motherboard/dimm13': {'fru_type': 'DIMM', 'is_fru': True, },
104    '<inventory_root>/system/chassis/motherboard/dimm14': {'fru_type': 'DIMM', 'is_fru': True, },
105    '<inventory_root>/system/chassis/motherboard/dimm15': {'fru_type': 'DIMM', 'is_fru': True, },
106    '<inventory_root>/system/chassis/motherboard/dimm16': {'fru_type': 'DIMM', 'is_fru': True, },
107    '<inventory_root>/system/chassis/motherboard/dimm17': {'fru_type': 'DIMM', 'is_fru': True, },
108    '<inventory_root>/system/chassis/motherboard/dimm18': {'fru_type': 'DIMM', 'is_fru': True, },
109    '<inventory_root>/system/chassis/motherboard/dimm19': {'fru_type': 'DIMM', 'is_fru': True, },
110    '<inventory_root>/system/chassis/motherboard/dimm20': {'fru_type': 'DIMM', 'is_fru': True, },
111    '<inventory_root>/system/chassis/motherboard/dimm21': {'fru_type': 'DIMM', 'is_fru': True, },
112    '<inventory_root>/system/chassis/motherboard/dimm22': {'fru_type': 'DIMM', 'is_fru': True, },
113    '<inventory_root>/system/chassis/motherboard/dimm23': {'fru_type': 'DIMM', 'is_fru': True, },
114    '<inventory_root>/system/chassis/motherboard/dimm24': {'fru_type': 'DIMM', 'is_fru': True, },
115    '<inventory_root>/system/chassis/motherboard/dimm25': {'fru_type': 'DIMM', 'is_fru': True, },
116    '<inventory_root>/system/chassis/motherboard/dimm26': {'fru_type': 'DIMM', 'is_fru': True, },
117    '<inventory_root>/system/chassis/motherboard/dimm27': {'fru_type': 'DIMM', 'is_fru': True, },
118    '<inventory_root>/system/chassis/motherboard/dimm28': {'fru_type': 'DIMM', 'is_fru': True, },
119    '<inventory_root>/system/chassis/motherboard/dimm29': {'fru_type': 'DIMM', 'is_fru': True, },
120    '<inventory_root>/system/chassis/motherboard/dimm30': {'fru_type': 'DIMM', 'is_fru': True, },
121    '<inventory_root>/system/chassis/motherboard/dimm31': {'fru_type': 'DIMM', 'is_fru': True, },
122}
123
124ID_LOOKUP = {
125    'FRU': {
126        0x01: '<inventory_root>/system/chassis/motherboard/cpu0',
127        0x02: '<inventory_root>/system/chassis/motherboard/cpu1',
128        0x03: '<inventory_root>/system/chassis/motherboard',
129        0x04: '<inventory_root>/system/chassis/motherboard/membuf0',
130        0x05: '<inventory_root>/system/chassis/motherboard/membuf1',
131        0x06: '<inventory_root>/system/chassis/motherboard/membuf2',
132        0x07: '<inventory_root>/system/chassis/motherboard/membuf3',
133        0x08: '<inventory_root>/system/chassis/motherboard/membuf4',
134        0x09: '<inventory_root>/system/chassis/motherboard/membuf5',
135        0x0c: '<inventory_root>/system/chassis/motherboard/dimm0',
136        0x0d: '<inventory_root>/system/chassis/motherboard/dimm1',
137        0x0e: '<inventory_root>/system/chassis/motherboard/dimm2',
138        0x0f: '<inventory_root>/system/chassis/motherboard/dimm3',
139        0x10: '<inventory_root>/system/chassis/motherboard/dimm4',
140        0x11: '<inventory_root>/system/chassis/motherboard/dimm5',
141        0x12: '<inventory_root>/system/chassis/motherboard/dimm6',
142        0x13: '<inventory_root>/system/chassis/motherboard/dimm7',
143        0x14: '<inventory_root>/system/chassis/motherboard/dimm8',
144        0x15: '<inventory_root>/system/chassis/motherboard/dimm9',
145        0x16: '<inventory_root>/system/chassis/motherboard/dimm10',
146        0x17: '<inventory_root>/system/chassis/motherboard/dimm11',
147        0x18: '<inventory_root>/system/chassis/motherboard/dimm12',
148        0x19: '<inventory_root>/system/chassis/motherboard/dimm13',
149        0x1a: '<inventory_root>/system/chassis/motherboard/dimm14',
150        0x1b: '<inventory_root>/system/chassis/motherboard/dimm15',
151        0x1c: '<inventory_root>/system/chassis/motherboard/dimm16',
152        0x1d: '<inventory_root>/system/chassis/motherboard/dimm17',
153        0x1e: '<inventory_root>/system/chassis/motherboard/dimm18',
154        0x1f: '<inventory_root>/system/chassis/motherboard/dimm19',
155        0x20: '<inventory_root>/system/chassis/motherboard/dimm20',
156        0x21: '<inventory_root>/system/chassis/motherboard/dimm21',
157        0x22: '<inventory_root>/system/chassis/motherboard/dimm22',
158        0x23: '<inventory_root>/system/chassis/motherboard/dimm23',
159        0x24: '<inventory_root>/system/chassis/motherboard/dimm24',
160        0x25: '<inventory_root>/system/chassis/motherboard/dimm25',
161        0x26: '<inventory_root>/system/chassis/motherboard/dimm26',
162        0x27: '<inventory_root>/system/chassis/motherboard/dimm27',
163        0x28: '<inventory_root>/system/chassis/motherboard/dimm28',
164        0x29: '<inventory_root>/system/chassis/motherboard/dimm29',
165        0x2a: '<inventory_root>/system/chassis/motherboard/dimm30',
166        0x2b: '<inventory_root>/system/chassis/motherboard/dimm31',
167    },
168    'FRU_STR': {
169        'PRODUCT_0': '<inventory_root>/system/bios',
170        'BOARD_1': '<inventory_root>/system/chassis/motherboard/cpu0',
171        'BOARD_2': '<inventory_root>/system/chassis/motherboard/cpu1',
172        'CHASSIS_3': '<inventory_root>/system/chassis/motherboard',
173        'BOARD_3': '<inventory_root>/system/misc',
174        'BOARD_4': '<inventory_root>/system/chassis/motherboard/membuf0',
175        'BOARD_5': '<inventory_root>/system/chassis/motherboard/membuf1',
176        'BOARD_6': '<inventory_root>/system/chassis/motherboard/membuf2',
177        'BOARD_7': '<inventory_root>/system/chassis/motherboard/membuf3',
178        'BOARD_8': '<inventory_root>/system/chassis/motherboard/membuf4',
179        'BOARD_9': '<inventory_root>/system/chassis/motherboard/membuf5',
180        'BOARD_10': '<inventory_root>/system/chassis/motherboard/membuf6',
181        'BOARD_11': '<inventory_root>/system/chassis/motherboard/membuf7',
182        'PRODUCT_12': '<inventory_root>/system/chassis/motherboard/dimm0',
183        'PRODUCT_13': '<inventory_root>/system/chassis/motherboard/dimm1',
184        'PRODUCT_14': '<inventory_root>/system/chassis/motherboard/dimm2',
185        'PRODUCT_15': '<inventory_root>/system/chassis/motherboard/dimm3',
186        'PRODUCT_16': '<inventory_root>/system/chassis/motherboard/dimm4',
187        'PRODUCT_17': '<inventory_root>/system/chassis/motherboard/dimm5',
188        'PRODUCT_18': '<inventory_root>/system/chassis/motherboard/dimm6',
189        'PRODUCT_19': '<inventory_root>/system/chassis/motherboard/dimm7',
190        'PRODUCT_20': '<inventory_root>/system/chassis/motherboard/dimm8',
191        'PRODUCT_21': '<inventory_root>/system/chassis/motherboard/dimm9',
192        'PRODUCT_22': '<inventory_root>/system/chassis/motherboard/dimm10',
193        'PRODUCT_23': '<inventory_root>/system/chassis/motherboard/dimm11',
194        'PRODUCT_24': '<inventory_root>/system/chassis/motherboard/dimm12',
195        'PRODUCT_25': '<inventory_root>/system/chassis/motherboard/dimm13',
196        'PRODUCT_26': '<inventory_root>/system/chassis/motherboard/dimm14',
197        'PRODUCT_27': '<inventory_root>/system/chassis/motherboard/dimm15',
198        'PRODUCT_28': '<inventory_root>/system/chassis/motherboard/dimm16',
199        'PRODUCT_29': '<inventory_root>/system/chassis/motherboard/dimm17',
200        'PRODUCT_30': '<inventory_root>/system/chassis/motherboard/dimm18',
201        'PRODUCT_31': '<inventory_root>/system/chassis/motherboard/dimm19',
202        'PRODUCT_32': '<inventory_root>/system/chassis/motherboard/dimm20',
203        'PRODUCT_33': '<inventory_root>/system/chassis/motherboard/dimm21',
204        'PRODUCT_34': '<inventory_root>/system/chassis/motherboard/dimm22',
205        'PRODUCT_35': '<inventory_root>/system/chassis/motherboard/dimm23',
206        'PRODUCT_36': '<inventory_root>/system/chassis/motherboard/dimm24',
207        'PRODUCT_37': '<inventory_root>/system/chassis/motherboard/dimm25',
208        'PRODUCT_38': '<inventory_root>/system/chassis/motherboard/dimm26',
209        'PRODUCT_39': '<inventory_root>/system/chassis/motherboard/dimm27',
210        'PRODUCT_40': '<inventory_root>/system/chassis/motherboard/dimm28',
211        'PRODUCT_41': '<inventory_root>/system/chassis/motherboard/dimm29',
212        'PRODUCT_42': '<inventory_root>/system/chassis/motherboard/dimm30',
213        'PRODUCT_43': '<inventory_root>/system/chassis/motherboard/dimm31',
214        'PRODUCT_47': '<inventory_root>/system/misc',
215    },
216    'SENSOR': {
217        0x02: '/org/openbmc/sensors/host/HostStatus',
218        0x03: '/org/openbmc/sensors/host/BootProgress',
219        0x5a: '<inventory_root>/system/chassis/motherboard/cpu0',
220        0xa4: '<inventory_root>/system/chassis/motherboard/cpu1',
221        0x1e: '<inventory_root>/system/chassis/motherboard/dimm3',
222        0x1f: '<inventory_root>/system/chassis/motherboard/dimm2',
223        0x20: '<inventory_root>/system/chassis/motherboard/dimm1',
224        0x21: '<inventory_root>/system/chassis/motherboard/dimm0',
225        0x22: '<inventory_root>/system/chassis/motherboard/dimm7',
226        0x23: '<inventory_root>/system/chassis/motherboard/dimm6',
227        0x24: '<inventory_root>/system/chassis/motherboard/dimm5',
228        0x25: '<inventory_root>/system/chassis/motherboard/dimm4',
229        0x26: '<inventory_root>/system/chassis/motherboard/dimm11',
230        0x27: '<inventory_root>/system/chassis/motherboard/dimm10',
231        0x28: '<inventory_root>/system/chassis/motherboard/dimm9',
232        0x29: '<inventory_root>/system/chassis/motherboard/dimm8',
233        0x2a: '<inventory_root>/system/chassis/motherboard/dimm15',
234        0x2b: '<inventory_root>/system/chassis/motherboard/dimm14',
235        0x2c: '<inventory_root>/system/chassis/motherboard/dimm13',
236        0x2d: '<inventory_root>/system/chassis/motherboard/dimm12',
237        0x2e: '<inventory_root>/system/chassis/motherboard/dimm19',
238        0x2f: '<inventory_root>/system/chassis/motherboard/dimm18',
239        0x30: '<inventory_root>/system/chassis/motherboard/dimm17',
240        0x31: '<inventory_root>/system/chassis/motherboard/dimm16',
241        0x32: '<inventory_root>/system/chassis/motherboard/dimm23',
242        0x33: '<inventory_root>/system/chassis/motherboard/dimm22',
243        0x34: '<inventory_root>/system/chassis/motherboard/dimm21',
244        0x35: '<inventory_root>/system/chassis/motherboard/dimm20',
245        0x36: '<inventory_root>/system/chassis/motherboard/dimm27',
246        0x37: '<inventory_root>/system/chassis/motherboard/dimm26',
247        0x38: '<inventory_root>/system/chassis/motherboard/dimm25',
248        0x39: '<inventory_root>/system/chassis/motherboard/dimm24',
249        0x3a: '<inventory_root>/system/chassis/motherboard/dimm31',
250        0x3b: '<inventory_root>/system/chassis/motherboard/dimm30',
251        0x3c: '<inventory_root>/system/chassis/motherboard/dimm29',
252        0x3d: '<inventory_root>/system/chassis/motherboard/dimm28',
253        0x3e: '<inventory_root>/system/chassis/motherboard/cpu0/core0',
254        0x3f: '<inventory_root>/system/chassis/motherboard/cpu0/core1',
255        0x40: '<inventory_root>/system/chassis/motherboard/cpu0/core2',
256        0x41: '<inventory_root>/system/chassis/motherboard/cpu0/core3',
257        0x42: '<inventory_root>/system/chassis/motherboard/cpu0/core4',
258        0x43: '<inventory_root>/system/chassis/motherboard/cpu0/core5',
259        0x44: '<inventory_root>/system/chassis/motherboard/cpu0/core6',
260        0x45: '<inventory_root>/system/chassis/motherboard/cpu0/core7',
261        0x46: '<inventory_root>/system/chassis/motherboard/cpu0/core8',
262        0x47: '<inventory_root>/system/chassis/motherboard/cpu0/core9',
263        0x48: '<inventory_root>/system/chassis/motherboard/cpu0/core10',
264        0x49: '<inventory_root>/system/chassis/motherboard/cpu0/core11',
265        0x4a: '<inventory_root>/system/chassis/motherboard/cpu1/core0',
266        0x4b: '<inventory_root>/system/chassis/motherboard/cpu1/core1',
267        0x4c: '<inventory_root>/system/chassis/motherboard/cpu1/core2',
268        0x4d: '<inventory_root>/system/chassis/motherboard/cpu1/core3',
269        0x4e: '<inventory_root>/system/chassis/motherboard/cpu1/core4',
270        0x4f: '<inventory_root>/system/chassis/motherboard/cpu1/core5',
271        0x50: '<inventory_root>/system/chassis/motherboard/cpu1/core6',
272        0x51: '<inventory_root>/system/chassis/motherboard/cpu1/core7',
273        0x52: '<inventory_root>/system/chassis/motherboard/cpu1/core8',
274        0x53: '<inventory_root>/system/chassis/motherboard/cpu1/core9',
275        0x54: '<inventory_root>/system/chassis/motherboard/cpu1/core10',
276        0x55: '<inventory_root>/system/chassis/motherboard/cpu1/core11',
277        0x56: '<inventory_root>/system/chassis/motherboard/membuf0',
278        0x57: '<inventory_root>/system/chassis/motherboard/membuf1',
279        0x58: '<inventory_root>/system/chassis/motherboard/membuf2',
280        0x59: '<inventory_root>/system/chassis/motherboard/membuf3',
281        0x5a: '<inventory_root>/system/chassis/motherboard/membuf4',
282        0x5b: '<inventory_root>/system/chassis/motherboard/membuf5',
283        0x5c: '<inventory_root>/system/chassis/motherboard/membuf6',
284        0x5d: '<inventory_root>/system/chassis/motherboard/membuf7',
285        0x07: '/org/openbmc/sensors/host/BootCount',
286        0x0c: '<inventory_root>/system/chassis/motherboard',
287        0x01: '<inventory_root>/system/systemevent',
288        0x08: '<inventory_root>/system/powerlimit',
289        0x0d: '<inventory_root>/system/chassis/motherboard/refclock',
290        0x0e: '<inventory_root>/system/chassis/motherboard/pcieclock',
291        0x0f: '<inventory_root>/system/chassis/motherboard/todclock',
292        0x10: '<inventory_root>/system/chassis/motherboard/apss',
293        0x02: '/org/openbmc/sensors/host/OperatingSystemStatus',
294        0x04: '<inventory_root>/system/chassis/motherboard/pcielink',
295        0x0b: '/xyz/openbmc_project/sensors/chassis/PowerSupplyRedundancy',
296        0xda: '/org/openbmc/sensors/host/TurboAllowed',
297        0xD8: '/org/openbmc/sensors/host/PowerSupplyDerating',
298    },
299    'GPIO_PRESENT': {}
300}
301
302GPIO_CONFIG = {}
303GPIO_CONFIG['BMC_POWER_UP'] = \
304    {'gpio_pin': 'D1', 'direction': 'out'}
305GPIO_CONFIG['SOFTWARE_PGOOD'] = \
306    {'gpio_pin': 'R1', 'direction': 'out'}
307GPIO_CONFIG['SYS_PWROK_BUFF'] = \
308    {'gpio_pin': 'D2', 'direction': 'in'}
309
310# PV_CP_MD_JTAG_ATTENTION_N
311GPIO_CONFIG['CHECKSTOP'] = \
312    {'gpio_pin': 'J2', 'direction': 'falling'}
313
314GPIO_CONFIG['BMC_CP0_RESET_N'] = \
315    {'gpio_pin': 'A1', 'direction': 'out'}
316# pcie switch reset
317GPIO_CONFIG['BMC_VS1_PERST_N'] = \
318    {'gpio_pin': 'B7', 'direction': 'out'}
319# pcie slots reset - not connected?
320GPIO_CONFIG['BMC_CP0_PERST_ENABLE_R'] = \
321    {'gpio_pin': 'A3', 'direction': 'out'}
322
323# SOFT_FSI_DAT
324GPIO_CONFIG['FSI_DATA'] = \
325    {'gpio_pin': 'E0', 'direction': 'out'}
326# SOFT_FSI_CLK
327GPIO_CONFIG['FSI_CLK'] = \
328    {'gpio_pin': 'AA0', 'direction': 'out'}
329# BMC_FSI_IN_ENA
330GPIO_CONFIG['FSI_ENABLE'] = \
331    {'gpio_pin': 'D0', 'direction': 'out'}
332# FSI_JMFG0_PRSNT_N
333GPIO_CONFIG['CRONUS_SEL'] = \
334    {'gpio_pin': 'A6', 'direction': 'out'}
335
336# FP_PWR_BTN_N
337GPIO_CONFIG['POWER_BUTTON'] = \
338    {'gpio_pin': 'I3', 'direction': 'both'}
339# BMC_NMIBTN_IN_N
340GPIO_CONFIG['RESET_BUTTON'] = \
341    {'gpio_pin': 'J1', 'direction': 'both'}
342
343# FIXME: needed for Witherspoon?
344# Tracked by openbmc/openbmc#814
345# FP_ID_BTN_N
346GPIO_CONFIG['IDBTN'] = \
347    {'gpio_pin': 'Q7', 'direction': 'out'}
348
349# TODO openbmc/openbmc#2288 - Determine if any pci resets needed
350GPIO_CONFIGS = {
351    'power_config': {
352        'power_good_in': 'SYS_PWROK_BUFF',
353        'power_up_outs': [
354            ('SOFTWARE_PGOOD', True),
355            ('BMC_POWER_UP', True),
356        ],
357        'reset_outs': [
358            ('BMC_CP0_RESET_N', False),
359        ],
360    },
361    'hostctl_config': {
362        'fsi_data': 'FSI_DATA',
363        'fsi_clk': 'FSI_CLK',
364        'fsi_enable': 'FSI_ENABLE',
365        'cronus_sel': 'CRONUS_SEL',
366        'optionals': [
367        ],
368    },
369}
370
371
372# Miscellaneous non-poll sensor with system specific properties.
373# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
374MISC_SENSORS = {
375    0x07: {'class': 'BootCountSensor'},
376    0x03: {'class': 'BootProgressSensor'},
377    0x02: {'class': 'OperatingSystemStatusSensor'},
378    # Garrison value is used, Not in P9 XML yet.
379    0x0b: {'class': 'PowerSupplyRedundancySensor'},
380    0xda: {'class': 'TurboAllowedSensor'},
381    0xD8: {'class': 'PowerSupplyDeratingSensor'},
382}
383
384# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
385