1e7e9171eSGeorge Keishing#!/usr/bin/env python3
23bd8cf2eSGeorge Keishing
3004ad3c9SJoy Onyerikwu# System states
4004ad3c9SJoy Onyerikwu# state can change to next state in 2 ways:
5004ad3c9SJoy Onyerikwu# - a process emits a GotoSystemState signal with state name to goto
6004ad3c9SJoy Onyerikwu# - objects specified in EXIT_STATE_DEPEND have started
73bd8cf2eSGeorge KeishingSYSTEM_STATES = [
8*20f38712SPatrick Williams    "BASE_APPS",
9*20f38712SPatrick Williams    "BMC_STARTING",
10*20f38712SPatrick Williams    "BMC_READY",
11*20f38712SPatrick Williams    "HOST_POWERING_ON",
12*20f38712SPatrick Williams    "HOST_POWERED_ON",
13*20f38712SPatrick Williams    "HOST_BOOTING",
14*20f38712SPatrick Williams    "HOST_BOOTED",
15*20f38712SPatrick Williams    "HOST_POWERED_OFF",
163bd8cf2eSGeorge Keishing]
173bd8cf2eSGeorge Keishing
183bd8cf2eSGeorge KeishingEXIT_STATE_DEPEND = {
19*20f38712SPatrick Williams    "BASE_APPS": {
20*20f38712SPatrick Williams        "/org/openbmc/sensors": 0,
213bd8cf2eSGeorge Keishing    },
22*20f38712SPatrick Williams    "BMC_STARTING": {
23*20f38712SPatrick Williams        "/org/openbmc/control/chassis0": 0,
24*20f38712SPatrick Williams        "/org/openbmc/control/power0": 0,
25*20f38712SPatrick Williams        "/org/openbmc/control/flash/bios": 0,
263bd8cf2eSGeorge Keishing    },
273bd8cf2eSGeorge Keishing}
283bd8cf2eSGeorge Keishing
293bd8cf2eSGeorge KeishingFRU_INSTANCES = {
30*20f38712SPatrick Williams    "<inventory_root>/system": {
31*20f38712SPatrick Williams        "fru_type": "SYSTEM",
32*20f38712SPatrick Williams        "is_fru": True,
33*20f38712SPatrick Williams        "present": "True",
34*20f38712SPatrick Williams    },
35*20f38712SPatrick Williams    "<inventory_root>/system/bios": {
36*20f38712SPatrick Williams        "fru_type": "SYSTEM",
37*20f38712SPatrick Williams        "is_fru": True,
38*20f38712SPatrick Williams        "present": "True",
39*20f38712SPatrick Williams    },
40*20f38712SPatrick Williams    "<inventory_root>/system/misc": {
41*20f38712SPatrick Williams        "fru_type": "SYSTEM",
42*20f38712SPatrick Williams        "is_fru": False,
43*20f38712SPatrick Williams    },
44*20f38712SPatrick Williams    "<inventory_root>/system/chassis": {
45*20f38712SPatrick Williams        "fru_type": "SYSTEM",
46*20f38712SPatrick Williams        "is_fru": True,
47*20f38712SPatrick Williams        "present": "True",
48*20f38712SPatrick Williams    },
49*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard": {
50*20f38712SPatrick Williams        "fru_type": "MAIN_PLANAR",
51*20f38712SPatrick Williams        "is_fru": True,
52*20f38712SPatrick Williams    },
53*20f38712SPatrick Williams    "<inventory_root>/system/systemevent": {
54*20f38712SPatrick Williams        "fru_type": "SYSTEM_EVENT",
55*20f38712SPatrick Williams        "is_fru": False,
56*20f38712SPatrick Williams    },
57*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/refclock": {
58*20f38712SPatrick Williams        "fru_type": "MAIN_PLANAR",
59*20f38712SPatrick Williams        "is_fru": False,
60*20f38712SPatrick Williams    },
61*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/pcieclock": {
62*20f38712SPatrick Williams        "fru_type": "MAIN_PLANAR",
63*20f38712SPatrick Williams        "is_fru": False,
64*20f38712SPatrick Williams    },
65*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/todclock": {
66*20f38712SPatrick Williams        "fru_type": "MAIN_PLANAR",
67*20f38712SPatrick Williams        "is_fru": False,
68*20f38712SPatrick Williams    },
69*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/apss": {
70*20f38712SPatrick Williams        "fru_type": "MAIN_PLANAR",
71*20f38712SPatrick Williams        "is_fru": False,
72*20f38712SPatrick Williams    },
73*20f38712SPatrick Williams    "<inventory_root>/system/chassis/fan0": {
74*20f38712SPatrick Williams        "fru_type": "FAN",
75*20f38712SPatrick Williams        "is_fru": True,
76*20f38712SPatrick Williams    },
77*20f38712SPatrick Williams    "<inventory_root>/system/chassis/fan1": {
78*20f38712SPatrick Williams        "fru_type": "FAN",
79*20f38712SPatrick Williams        "is_fru": True,
80*20f38712SPatrick Williams    },
81*20f38712SPatrick Williams    "<inventory_root>/system/chassis/fan2": {
82*20f38712SPatrick Williams        "fru_type": "FAN",
83*20f38712SPatrick Williams        "is_fru": True,
84*20f38712SPatrick Williams    },
85*20f38712SPatrick Williams    "<inventory_root>/system/chassis/fan3": {
86*20f38712SPatrick Williams        "fru_type": "FAN",
87*20f38712SPatrick Williams        "is_fru": True,
88*20f38712SPatrick Williams    },
89*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/bmc": {
90*20f38712SPatrick Williams        "fru_type": "BMC",
91*20f38712SPatrick Williams        "is_fru": False,
92*20f38712SPatrick Williams        "manufacturer": "ASPEED",
93*20f38712SPatrick Williams    },
94*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0": {
95*20f38712SPatrick Williams        "fru_type": "CPU",
96*20f38712SPatrick Williams        "is_fru": True,
97*20f38712SPatrick Williams    },
98*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1": {
99*20f38712SPatrick Williams        "fru_type": "CPU",
100*20f38712SPatrick Williams        "is_fru": True,
101*20f38712SPatrick Williams    },
102*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core0": {
103*20f38712SPatrick Williams        "fru_type": "CORE",
104*20f38712SPatrick Williams        "is_fru": False,
105*20f38712SPatrick Williams    },
106*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core1": {
107*20f38712SPatrick Williams        "fru_type": "CORE",
108*20f38712SPatrick Williams        "is_fru": False,
109*20f38712SPatrick Williams    },
110*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core2": {
111*20f38712SPatrick Williams        "fru_type": "CORE",
112*20f38712SPatrick Williams        "is_fru": False,
113*20f38712SPatrick Williams    },
114*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core3": {
115*20f38712SPatrick Williams        "fru_type": "CORE",
116*20f38712SPatrick Williams        "is_fru": False,
117*20f38712SPatrick Williams    },
118*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core4": {
119*20f38712SPatrick Williams        "fru_type": "CORE",
120*20f38712SPatrick Williams        "is_fru": False,
121*20f38712SPatrick Williams    },
122*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core5": {
123*20f38712SPatrick Williams        "fru_type": "CORE",
124*20f38712SPatrick Williams        "is_fru": False,
125*20f38712SPatrick Williams    },
126*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core6": {
127*20f38712SPatrick Williams        "fru_type": "CORE",
128*20f38712SPatrick Williams        "is_fru": False,
129*20f38712SPatrick Williams    },
130*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core7": {
131*20f38712SPatrick Williams        "fru_type": "CORE",
132*20f38712SPatrick Williams        "is_fru": False,
133*20f38712SPatrick Williams    },
134*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core8": {
135*20f38712SPatrick Williams        "fru_type": "CORE",
136*20f38712SPatrick Williams        "is_fru": False,
137*20f38712SPatrick Williams    },
138*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core9": {
139*20f38712SPatrick Williams        "fru_type": "CORE",
140*20f38712SPatrick Williams        "is_fru": False,
141*20f38712SPatrick Williams    },
142*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core10": {
143*20f38712SPatrick Williams        "fru_type": "CORE",
144*20f38712SPatrick Williams        "is_fru": False,
145*20f38712SPatrick Williams    },
146*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu0/core11": {
147*20f38712SPatrick Williams        "fru_type": "CORE",
148*20f38712SPatrick Williams        "is_fru": False,
149*20f38712SPatrick Williams    },
150*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core0": {
151*20f38712SPatrick Williams        "fru_type": "CORE",
152*20f38712SPatrick Williams        "is_fru": False,
153*20f38712SPatrick Williams    },
154*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core1": {
155*20f38712SPatrick Williams        "fru_type": "CORE",
156*20f38712SPatrick Williams        "is_fru": False,
157*20f38712SPatrick Williams    },
158*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core2": {
159*20f38712SPatrick Williams        "fru_type": "CORE",
160*20f38712SPatrick Williams        "is_fru": False,
161*20f38712SPatrick Williams    },
162*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core3": {
163*20f38712SPatrick Williams        "fru_type": "CORE",
164*20f38712SPatrick Williams        "is_fru": False,
165*20f38712SPatrick Williams    },
166*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core4": {
167*20f38712SPatrick Williams        "fru_type": "CORE",
168*20f38712SPatrick Williams        "is_fru": False,
169*20f38712SPatrick Williams    },
170*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core5": {
171*20f38712SPatrick Williams        "fru_type": "CORE",
172*20f38712SPatrick Williams        "is_fru": False,
173*20f38712SPatrick Williams    },
174*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core6": {
175*20f38712SPatrick Williams        "fru_type": "CORE",
176*20f38712SPatrick Williams        "is_fru": False,
177*20f38712SPatrick Williams    },
178*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core7": {
179*20f38712SPatrick Williams        "fru_type": "CORE",
180*20f38712SPatrick Williams        "is_fru": False,
181*20f38712SPatrick Williams    },
182*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core8": {
183*20f38712SPatrick Williams        "fru_type": "CORE",
184*20f38712SPatrick Williams        "is_fru": False,
185*20f38712SPatrick Williams    },
186*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core9": {
187*20f38712SPatrick Williams        "fru_type": "CORE",
188*20f38712SPatrick Williams        "is_fru": False,
189*20f38712SPatrick Williams    },
190*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core10": {
191*20f38712SPatrick Williams        "fru_type": "CORE",
192*20f38712SPatrick Williams        "is_fru": False,
193*20f38712SPatrick Williams    },
194*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/cpu1/core11": {
195*20f38712SPatrick Williams        "fru_type": "CORE",
196*20f38712SPatrick Williams        "is_fru": False,
197*20f38712SPatrick Williams    },
198*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf0": {
199*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
200*20f38712SPatrick Williams        "is_fru": False,
201*20f38712SPatrick Williams    },
202*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf1": {
203*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
204*20f38712SPatrick Williams        "is_fru": False,
205*20f38712SPatrick Williams    },
206*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf2": {
207*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
208*20f38712SPatrick Williams        "is_fru": False,
209*20f38712SPatrick Williams    },
210*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf3": {
211*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
212*20f38712SPatrick Williams        "is_fru": False,
213*20f38712SPatrick Williams    },
214*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf4": {
215*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
216*20f38712SPatrick Williams        "is_fru": False,
217*20f38712SPatrick Williams    },
218*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf5": {
219*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
220*20f38712SPatrick Williams        "is_fru": False,
221*20f38712SPatrick Williams    },
222*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf6": {
223*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
224*20f38712SPatrick Williams        "is_fru": False,
225*20f38712SPatrick Williams    },
226*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/membuf7": {
227*20f38712SPatrick Williams        "fru_type": "MEMORY_BUFFER",
228*20f38712SPatrick Williams        "is_fru": False,
229*20f38712SPatrick Williams    },
230*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm0": {
231*20f38712SPatrick Williams        "fru_type": "DIMM",
232*20f38712SPatrick Williams        "is_fru": True,
233*20f38712SPatrick Williams    },
234*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm1": {
235*20f38712SPatrick Williams        "fru_type": "DIMM",
236*20f38712SPatrick Williams        "is_fru": True,
237*20f38712SPatrick Williams    },
238*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm2": {
239*20f38712SPatrick Williams        "fru_type": "DIMM",
240*20f38712SPatrick Williams        "is_fru": True,
241*20f38712SPatrick Williams    },
242*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm3": {
243*20f38712SPatrick Williams        "fru_type": "DIMM",
244*20f38712SPatrick Williams        "is_fru": True,
245*20f38712SPatrick Williams    },
246*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm4": {
247*20f38712SPatrick Williams        "fru_type": "DIMM",
248*20f38712SPatrick Williams        "is_fru": True,
249*20f38712SPatrick Williams    },
250*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm5": {
251*20f38712SPatrick Williams        "fru_type": "DIMM",
252*20f38712SPatrick Williams        "is_fru": True,
253*20f38712SPatrick Williams    },
254*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm6": {
255*20f38712SPatrick Williams        "fru_type": "DIMM",
256*20f38712SPatrick Williams        "is_fru": True,
257*20f38712SPatrick Williams    },
258*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm7": {
259*20f38712SPatrick Williams        "fru_type": "DIMM",
260*20f38712SPatrick Williams        "is_fru": True,
261*20f38712SPatrick Williams    },
262*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm8": {
263*20f38712SPatrick Williams        "fru_type": "DIMM",
264*20f38712SPatrick Williams        "is_fru": True,
265*20f38712SPatrick Williams    },
266*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm9": {
267*20f38712SPatrick Williams        "fru_type": "DIMM",
268*20f38712SPatrick Williams        "is_fru": True,
269*20f38712SPatrick Williams    },
270*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm10": {
271*20f38712SPatrick Williams        "fru_type": "DIMM",
272*20f38712SPatrick Williams        "is_fru": True,
273*20f38712SPatrick Williams    },
274*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm11": {
275*20f38712SPatrick Williams        "fru_type": "DIMM",
276*20f38712SPatrick Williams        "is_fru": True,
277*20f38712SPatrick Williams    },
278*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm12": {
279*20f38712SPatrick Williams        "fru_type": "DIMM",
280*20f38712SPatrick Williams        "is_fru": True,
281*20f38712SPatrick Williams    },
282*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm13": {
283*20f38712SPatrick Williams        "fru_type": "DIMM",
284*20f38712SPatrick Williams        "is_fru": True,
285*20f38712SPatrick Williams    },
286*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm14": {
287*20f38712SPatrick Williams        "fru_type": "DIMM",
288*20f38712SPatrick Williams        "is_fru": True,
289*20f38712SPatrick Williams    },
290*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm15": {
291*20f38712SPatrick Williams        "fru_type": "DIMM",
292*20f38712SPatrick Williams        "is_fru": True,
293*20f38712SPatrick Williams    },
294*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm16": {
295*20f38712SPatrick Williams        "fru_type": "DIMM",
296*20f38712SPatrick Williams        "is_fru": True,
297*20f38712SPatrick Williams    },
298*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm17": {
299*20f38712SPatrick Williams        "fru_type": "DIMM",
300*20f38712SPatrick Williams        "is_fru": True,
301*20f38712SPatrick Williams    },
302*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm18": {
303*20f38712SPatrick Williams        "fru_type": "DIMM",
304*20f38712SPatrick Williams        "is_fru": True,
305*20f38712SPatrick Williams    },
306*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm19": {
307*20f38712SPatrick Williams        "fru_type": "DIMM",
308*20f38712SPatrick Williams        "is_fru": True,
309*20f38712SPatrick Williams    },
310*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm20": {
311*20f38712SPatrick Williams        "fru_type": "DIMM",
312*20f38712SPatrick Williams        "is_fru": True,
313*20f38712SPatrick Williams    },
314*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm21": {
315*20f38712SPatrick Williams        "fru_type": "DIMM",
316*20f38712SPatrick Williams        "is_fru": True,
317*20f38712SPatrick Williams    },
318*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm22": {
319*20f38712SPatrick Williams        "fru_type": "DIMM",
320*20f38712SPatrick Williams        "is_fru": True,
321*20f38712SPatrick Williams    },
322*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm23": {
323*20f38712SPatrick Williams        "fru_type": "DIMM",
324*20f38712SPatrick Williams        "is_fru": True,
325*20f38712SPatrick Williams    },
326*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm24": {
327*20f38712SPatrick Williams        "fru_type": "DIMM",
328*20f38712SPatrick Williams        "is_fru": True,
329*20f38712SPatrick Williams    },
330*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm25": {
331*20f38712SPatrick Williams        "fru_type": "DIMM",
332*20f38712SPatrick Williams        "is_fru": True,
333*20f38712SPatrick Williams    },
334*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm26": {
335*20f38712SPatrick Williams        "fru_type": "DIMM",
336*20f38712SPatrick Williams        "is_fru": True,
337*20f38712SPatrick Williams    },
338*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm27": {
339*20f38712SPatrick Williams        "fru_type": "DIMM",
340*20f38712SPatrick Williams        "is_fru": True,
341*20f38712SPatrick Williams    },
342*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm28": {
343*20f38712SPatrick Williams        "fru_type": "DIMM",
344*20f38712SPatrick Williams        "is_fru": True,
345*20f38712SPatrick Williams    },
346*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm29": {
347*20f38712SPatrick Williams        "fru_type": "DIMM",
348*20f38712SPatrick Williams        "is_fru": True,
349*20f38712SPatrick Williams    },
350*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm30": {
351*20f38712SPatrick Williams        "fru_type": "DIMM",
352*20f38712SPatrick Williams        "is_fru": True,
353*20f38712SPatrick Williams    },
354*20f38712SPatrick Williams    "<inventory_root>/system/chassis/motherboard/dimm31": {
355*20f38712SPatrick Williams        "fru_type": "DIMM",
356*20f38712SPatrick Williams        "is_fru": True,
357*20f38712SPatrick Williams    },
3583bd8cf2eSGeorge Keishing}
3593bd8cf2eSGeorge Keishing
3603bd8cf2eSGeorge KeishingID_LOOKUP = {
361*20f38712SPatrick Williams    "FRU": {
362*20f38712SPatrick Williams        0x01: "<inventory_root>/system/chassis/motherboard/cpu0",
363*20f38712SPatrick Williams        0x02: "<inventory_root>/system/chassis/motherboard/cpu1",
364*20f38712SPatrick Williams        0x03: "<inventory_root>/system/chassis/motherboard",
365*20f38712SPatrick Williams        0x04: "<inventory_root>/system/chassis/motherboard/membuf0",
366*20f38712SPatrick Williams        0x05: "<inventory_root>/system/chassis/motherboard/membuf1",
367*20f38712SPatrick Williams        0x06: "<inventory_root>/system/chassis/motherboard/membuf2",
368*20f38712SPatrick Williams        0x07: "<inventory_root>/system/chassis/motherboard/membuf3",
369*20f38712SPatrick Williams        0x08: "<inventory_root>/system/chassis/motherboard/membuf4",
370*20f38712SPatrick Williams        0x09: "<inventory_root>/system/chassis/motherboard/membuf5",
371*20f38712SPatrick Williams        0x0C: "<inventory_root>/system/chassis/motherboard/dimm0",
372*20f38712SPatrick Williams        0x0D: "<inventory_root>/system/chassis/motherboard/dimm1",
373*20f38712SPatrick Williams        0x0E: "<inventory_root>/system/chassis/motherboard/dimm2",
374*20f38712SPatrick Williams        0x0F: "<inventory_root>/system/chassis/motherboard/dimm3",
375*20f38712SPatrick Williams        0x10: "<inventory_root>/system/chassis/motherboard/dimm4",
376*20f38712SPatrick Williams        0x11: "<inventory_root>/system/chassis/motherboard/dimm5",
377*20f38712SPatrick Williams        0x12: "<inventory_root>/system/chassis/motherboard/dimm6",
378*20f38712SPatrick Williams        0x13: "<inventory_root>/system/chassis/motherboard/dimm7",
379*20f38712SPatrick Williams        0x14: "<inventory_root>/system/chassis/motherboard/dimm8",
380*20f38712SPatrick Williams        0x15: "<inventory_root>/system/chassis/motherboard/dimm9",
381*20f38712SPatrick Williams        0x16: "<inventory_root>/system/chassis/motherboard/dimm10",
382*20f38712SPatrick Williams        0x17: "<inventory_root>/system/chassis/motherboard/dimm11",
383*20f38712SPatrick Williams        0x18: "<inventory_root>/system/chassis/motherboard/dimm12",
384*20f38712SPatrick Williams        0x19: "<inventory_root>/system/chassis/motherboard/dimm13",
385*20f38712SPatrick Williams        0x1A: "<inventory_root>/system/chassis/motherboard/dimm14",
386*20f38712SPatrick Williams        0x1B: "<inventory_root>/system/chassis/motherboard/dimm15",
387*20f38712SPatrick Williams        0x1C: "<inventory_root>/system/chassis/motherboard/dimm16",
388*20f38712SPatrick Williams        0x1D: "<inventory_root>/system/chassis/motherboard/dimm17",
389*20f38712SPatrick Williams        0x1E: "<inventory_root>/system/chassis/motherboard/dimm18",
390*20f38712SPatrick Williams        0x1F: "<inventory_root>/system/chassis/motherboard/dimm19",
391*20f38712SPatrick Williams        0x20: "<inventory_root>/system/chassis/motherboard/dimm20",
392*20f38712SPatrick Williams        0x21: "<inventory_root>/system/chassis/motherboard/dimm21",
393*20f38712SPatrick Williams        0x22: "<inventory_root>/system/chassis/motherboard/dimm22",
394*20f38712SPatrick Williams        0x23: "<inventory_root>/system/chassis/motherboard/dimm23",
395*20f38712SPatrick Williams        0x24: "<inventory_root>/system/chassis/motherboard/dimm24",
396*20f38712SPatrick Williams        0x25: "<inventory_root>/system/chassis/motherboard/dimm25",
397*20f38712SPatrick Williams        0x26: "<inventory_root>/system/chassis/motherboard/dimm26",
398*20f38712SPatrick Williams        0x27: "<inventory_root>/system/chassis/motherboard/dimm27",
399*20f38712SPatrick Williams        0x28: "<inventory_root>/system/chassis/motherboard/dimm28",
400*20f38712SPatrick Williams        0x29: "<inventory_root>/system/chassis/motherboard/dimm29",
401*20f38712SPatrick Williams        0x2A: "<inventory_root>/system/chassis/motherboard/dimm30",
402*20f38712SPatrick Williams        0x2B: "<inventory_root>/system/chassis/motherboard/dimm31",
4033bd8cf2eSGeorge Keishing    },
404*20f38712SPatrick Williams    "FRU_STR": {
405*20f38712SPatrick Williams        "PRODUCT_0": "<inventory_root>/system/bios",
406*20f38712SPatrick Williams        "BOARD_1": "<inventory_root>/system/chassis/motherboard/cpu0",
407*20f38712SPatrick Williams        "BOARD_2": "<inventory_root>/system/chassis/motherboard/cpu1",
408*20f38712SPatrick Williams        "CHASSIS_3": "<inventory_root>/system/chassis/motherboard",
409*20f38712SPatrick Williams        "BOARD_3": "<inventory_root>/system/misc",
410*20f38712SPatrick Williams        "BOARD_4": "<inventory_root>/system/chassis/motherboard/membuf0",
411*20f38712SPatrick Williams        "BOARD_5": "<inventory_root>/system/chassis/motherboard/membuf1",
412*20f38712SPatrick Williams        "BOARD_6": "<inventory_root>/system/chassis/motherboard/membuf2",
413*20f38712SPatrick Williams        "BOARD_7": "<inventory_root>/system/chassis/motherboard/membuf3",
414*20f38712SPatrick Williams        "BOARD_8": "<inventory_root>/system/chassis/motherboard/membuf4",
415*20f38712SPatrick Williams        "BOARD_9": "<inventory_root>/system/chassis/motherboard/membuf5",
416*20f38712SPatrick Williams        "BOARD_10": "<inventory_root>/system/chassis/motherboard/membuf6",
417*20f38712SPatrick Williams        "BOARD_11": "<inventory_root>/system/chassis/motherboard/membuf7",
418*20f38712SPatrick Williams        "PRODUCT_12": "<inventory_root>/system/chassis/motherboard/dimm0",
419*20f38712SPatrick Williams        "PRODUCT_13": "<inventory_root>/system/chassis/motherboard/dimm1",
420*20f38712SPatrick Williams        "PRODUCT_14": "<inventory_root>/system/chassis/motherboard/dimm2",
421*20f38712SPatrick Williams        "PRODUCT_15": "<inventory_root>/system/chassis/motherboard/dimm3",
422*20f38712SPatrick Williams        "PRODUCT_16": "<inventory_root>/system/chassis/motherboard/dimm4",
423*20f38712SPatrick Williams        "PRODUCT_17": "<inventory_root>/system/chassis/motherboard/dimm5",
424*20f38712SPatrick Williams        "PRODUCT_18": "<inventory_root>/system/chassis/motherboard/dimm6",
425*20f38712SPatrick Williams        "PRODUCT_19": "<inventory_root>/system/chassis/motherboard/dimm7",
426*20f38712SPatrick Williams        "PRODUCT_20": "<inventory_root>/system/chassis/motherboard/dimm8",
427*20f38712SPatrick Williams        "PRODUCT_21": "<inventory_root>/system/chassis/motherboard/dimm9",
428*20f38712SPatrick Williams        "PRODUCT_22": "<inventory_root>/system/chassis/motherboard/dimm10",
429*20f38712SPatrick Williams        "PRODUCT_23": "<inventory_root>/system/chassis/motherboard/dimm11",
430*20f38712SPatrick Williams        "PRODUCT_24": "<inventory_root>/system/chassis/motherboard/dimm12",
431*20f38712SPatrick Williams        "PRODUCT_25": "<inventory_root>/system/chassis/motherboard/dimm13",
432*20f38712SPatrick Williams        "PRODUCT_26": "<inventory_root>/system/chassis/motherboard/dimm14",
433*20f38712SPatrick Williams        "PRODUCT_27": "<inventory_root>/system/chassis/motherboard/dimm15",
434*20f38712SPatrick Williams        "PRODUCT_28": "<inventory_root>/system/chassis/motherboard/dimm16",
435*20f38712SPatrick Williams        "PRODUCT_29": "<inventory_root>/system/chassis/motherboard/dimm17",
436*20f38712SPatrick Williams        "PRODUCT_30": "<inventory_root>/system/chassis/motherboard/dimm18",
437*20f38712SPatrick Williams        "PRODUCT_31": "<inventory_root>/system/chassis/motherboard/dimm19",
438*20f38712SPatrick Williams        "PRODUCT_32": "<inventory_root>/system/chassis/motherboard/dimm20",
439*20f38712SPatrick Williams        "PRODUCT_33": "<inventory_root>/system/chassis/motherboard/dimm21",
440*20f38712SPatrick Williams        "PRODUCT_34": "<inventory_root>/system/chassis/motherboard/dimm22",
441*20f38712SPatrick Williams        "PRODUCT_35": "<inventory_root>/system/chassis/motherboard/dimm23",
442*20f38712SPatrick Williams        "PRODUCT_36": "<inventory_root>/system/chassis/motherboard/dimm24",
443*20f38712SPatrick Williams        "PRODUCT_37": "<inventory_root>/system/chassis/motherboard/dimm25",
444*20f38712SPatrick Williams        "PRODUCT_38": "<inventory_root>/system/chassis/motherboard/dimm26",
445*20f38712SPatrick Williams        "PRODUCT_39": "<inventory_root>/system/chassis/motherboard/dimm27",
446*20f38712SPatrick Williams        "PRODUCT_40": "<inventory_root>/system/chassis/motherboard/dimm28",
447*20f38712SPatrick Williams        "PRODUCT_41": "<inventory_root>/system/chassis/motherboard/dimm29",
448*20f38712SPatrick Williams        "PRODUCT_42": "<inventory_root>/system/chassis/motherboard/dimm30",
449*20f38712SPatrick Williams        "PRODUCT_43": "<inventory_root>/system/chassis/motherboard/dimm31",
450*20f38712SPatrick Williams        "PRODUCT_47": "<inventory_root>/system/misc",
4513bd8cf2eSGeorge Keishing    },
452*20f38712SPatrick Williams    "SENSOR": {
453*20f38712SPatrick Williams        0x02: "/org/openbmc/sensors/host/HostStatus",
454*20f38712SPatrick Williams        0x03: "/org/openbmc/sensors/host/BootProgress",
455*20f38712SPatrick Williams        0x5A: "<inventory_root>/system/chassis/motherboard/cpu0",
456*20f38712SPatrick Williams        0xA4: "<inventory_root>/system/chassis/motherboard/cpu1",
457*20f38712SPatrick Williams        0x1E: "<inventory_root>/system/chassis/motherboard/dimm3",
458*20f38712SPatrick Williams        0x1F: "<inventory_root>/system/chassis/motherboard/dimm2",
459*20f38712SPatrick Williams        0x20: "<inventory_root>/system/chassis/motherboard/dimm1",
460*20f38712SPatrick Williams        0x21: "<inventory_root>/system/chassis/motherboard/dimm0",
461*20f38712SPatrick Williams        0x22: "<inventory_root>/system/chassis/motherboard/dimm7",
462*20f38712SPatrick Williams        0x23: "<inventory_root>/system/chassis/motherboard/dimm6",
463*20f38712SPatrick Williams        0x24: "<inventory_root>/system/chassis/motherboard/dimm5",
464*20f38712SPatrick Williams        0x25: "<inventory_root>/system/chassis/motherboard/dimm4",
465*20f38712SPatrick Williams        0x26: "<inventory_root>/system/chassis/motherboard/dimm11",
466*20f38712SPatrick Williams        0x27: "<inventory_root>/system/chassis/motherboard/dimm10",
467*20f38712SPatrick Williams        0x28: "<inventory_root>/system/chassis/motherboard/dimm9",
468*20f38712SPatrick Williams        0x29: "<inventory_root>/system/chassis/motherboard/dimm8",
469*20f38712SPatrick Williams        0x2A: "<inventory_root>/system/chassis/motherboard/dimm15",
470*20f38712SPatrick Williams        0x2B: "<inventory_root>/system/chassis/motherboard/dimm14",
471*20f38712SPatrick Williams        0x2C: "<inventory_root>/system/chassis/motherboard/dimm13",
472*20f38712SPatrick Williams        0x2D: "<inventory_root>/system/chassis/motherboard/dimm12",
473*20f38712SPatrick Williams        0x2E: "<inventory_root>/system/chassis/motherboard/dimm19",
474*20f38712SPatrick Williams        0x2F: "<inventory_root>/system/chassis/motherboard/dimm18",
475*20f38712SPatrick Williams        0x30: "<inventory_root>/system/chassis/motherboard/dimm17",
476*20f38712SPatrick Williams        0x31: "<inventory_root>/system/chassis/motherboard/dimm16",
477*20f38712SPatrick Williams        0x32: "<inventory_root>/system/chassis/motherboard/dimm23",
478*20f38712SPatrick Williams        0x33: "<inventory_root>/system/chassis/motherboard/dimm22",
479*20f38712SPatrick Williams        0x34: "<inventory_root>/system/chassis/motherboard/dimm21",
480*20f38712SPatrick Williams        0x35: "<inventory_root>/system/chassis/motherboard/dimm20",
481*20f38712SPatrick Williams        0x36: "<inventory_root>/system/chassis/motherboard/dimm27",
482*20f38712SPatrick Williams        0x37: "<inventory_root>/system/chassis/motherboard/dimm26",
483*20f38712SPatrick Williams        0x38: "<inventory_root>/system/chassis/motherboard/dimm25",
484*20f38712SPatrick Williams        0x39: "<inventory_root>/system/chassis/motherboard/dimm24",
485*20f38712SPatrick Williams        0x3A: "<inventory_root>/system/chassis/motherboard/dimm31",
486*20f38712SPatrick Williams        0x3B: "<inventory_root>/system/chassis/motherboard/dimm30",
487*20f38712SPatrick Williams        0x3C: "<inventory_root>/system/chassis/motherboard/dimm29",
488*20f38712SPatrick Williams        0x3D: "<inventory_root>/system/chassis/motherboard/dimm28",
489*20f38712SPatrick Williams        0x3E: "<inventory_root>/system/chassis/motherboard/cpu0/core0",
490*20f38712SPatrick Williams        0x3F: "<inventory_root>/system/chassis/motherboard/cpu0/core1",
491*20f38712SPatrick Williams        0x40: "<inventory_root>/system/chassis/motherboard/cpu0/core2",
492*20f38712SPatrick Williams        0x41: "<inventory_root>/system/chassis/motherboard/cpu0/core3",
493*20f38712SPatrick Williams        0x42: "<inventory_root>/system/chassis/motherboard/cpu0/core4",
494*20f38712SPatrick Williams        0x43: "<inventory_root>/system/chassis/motherboard/cpu0/core5",
495*20f38712SPatrick Williams        0x44: "<inventory_root>/system/chassis/motherboard/cpu0/core6",
496*20f38712SPatrick Williams        0x45: "<inventory_root>/system/chassis/motherboard/cpu0/core7",
497*20f38712SPatrick Williams        0x46: "<inventory_root>/system/chassis/motherboard/cpu0/core8",
498*20f38712SPatrick Williams        0x47: "<inventory_root>/system/chassis/motherboard/cpu0/core9",
499*20f38712SPatrick Williams        0x48: "<inventory_root>/system/chassis/motherboard/cpu0/core10",
500*20f38712SPatrick Williams        0x49: "<inventory_root>/system/chassis/motherboard/cpu0/core11",
501*20f38712SPatrick Williams        0x4A: "<inventory_root>/system/chassis/motherboard/cpu1/core0",
502*20f38712SPatrick Williams        0x4B: "<inventory_root>/system/chassis/motherboard/cpu1/core1",
503*20f38712SPatrick Williams        0x4C: "<inventory_root>/system/chassis/motherboard/cpu1/core2",
504*20f38712SPatrick Williams        0x4D: "<inventory_root>/system/chassis/motherboard/cpu1/core3",
505*20f38712SPatrick Williams        0x4E: "<inventory_root>/system/chassis/motherboard/cpu1/core4",
506*20f38712SPatrick Williams        0x4F: "<inventory_root>/system/chassis/motherboard/cpu1/core5",
507*20f38712SPatrick Williams        0x50: "<inventory_root>/system/chassis/motherboard/cpu1/core6",
508*20f38712SPatrick Williams        0x51: "<inventory_root>/system/chassis/motherboard/cpu1/core7",
509*20f38712SPatrick Williams        0x52: "<inventory_root>/system/chassis/motherboard/cpu1/core8",
510*20f38712SPatrick Williams        0x53: "<inventory_root>/system/chassis/motherboard/cpu1/core9",
511*20f38712SPatrick Williams        0x54: "<inventory_root>/system/chassis/motherboard/cpu1/core10",
512*20f38712SPatrick Williams        0x55: "<inventory_root>/system/chassis/motherboard/cpu1/core11",
513*20f38712SPatrick Williams        0x56: "<inventory_root>/system/chassis/motherboard/membuf0",
514*20f38712SPatrick Williams        0x57: "<inventory_root>/system/chassis/motherboard/membuf1",
515*20f38712SPatrick Williams        0x58: "<inventory_root>/system/chassis/motherboard/membuf2",
516*20f38712SPatrick Williams        0x59: "<inventory_root>/system/chassis/motherboard/membuf3",
517*20f38712SPatrick Williams        0x5A: "<inventory_root>/system/chassis/motherboard/membuf4",
518*20f38712SPatrick Williams        0x5B: "<inventory_root>/system/chassis/motherboard/membuf5",
519*20f38712SPatrick Williams        0x5C: "<inventory_root>/system/chassis/motherboard/membuf6",
520*20f38712SPatrick Williams        0x5D: "<inventory_root>/system/chassis/motherboard/membuf7",
521*20f38712SPatrick Williams        0x07: "/org/openbmc/sensors/host/BootCount",
522*20f38712SPatrick Williams        0x0C: "<inventory_root>/system/chassis/motherboard",
523*20f38712SPatrick Williams        0x01: "<inventory_root>/system/systemevent",
524*20f38712SPatrick Williams        0x08: "<inventory_root>/system/powerlimit",
525*20f38712SPatrick Williams        0x0D: "<inventory_root>/system/chassis/motherboard/refclock",
526*20f38712SPatrick Williams        0x0E: "<inventory_root>/system/chassis/motherboard/pcieclock",
527*20f38712SPatrick Williams        0x0F: "<inventory_root>/system/chassis/motherboard/todclock",
528*20f38712SPatrick Williams        0x10: "<inventory_root>/system/chassis/motherboard/apss",
529*20f38712SPatrick Williams        0x02: "/org/openbmc/sensors/host/OperatingSystemStatus",
530*20f38712SPatrick Williams        0x04: "<inventory_root>/system/chassis/motherboard/pcielink",
531*20f38712SPatrick Williams        0x0B: "/xyz/openbmc_project/sensors/chassis/PowerSupplyRedundancy",
532*20f38712SPatrick Williams        0xDA: "/org/openbmc/sensors/host/TurboAllowed",
533*20f38712SPatrick Williams        0xD8: "/org/openbmc/sensors/host/PowerSupplyDerating",
5343bd8cf2eSGeorge Keishing    },
535*20f38712SPatrick Williams    "GPIO_PRESENT": {},
5363bd8cf2eSGeorge Keishing}
5373bd8cf2eSGeorge Keishing
5383bd8cf2eSGeorge KeishingGPIO_CONFIG = {}
539*20f38712SPatrick WilliamsGPIO_CONFIG["BMC_POWER_UP"] = {"gpio_pin": "D1", "direction": "out"}
540*20f38712SPatrick WilliamsGPIO_CONFIG["SOFTWARE_PGOOD"] = {"gpio_pin": "R1", "direction": "out"}
541*20f38712SPatrick WilliamsGPIO_CONFIG["SYS_PWROK_BUFF"] = {"gpio_pin": "D2", "direction": "in"}
542301e7acdSGeorge Keishing
543301e7acdSGeorge Keishing# PV_CP_MD_JTAG_ATTENTION_N
544*20f38712SPatrick WilliamsGPIO_CONFIG["CHECKSTOP"] = {"gpio_pin": "J2", "direction": "falling"}
5453bd8cf2eSGeorge Keishing
546*20f38712SPatrick WilliamsGPIO_CONFIG["BMC_CP0_RESET_N"] = {"gpio_pin": "A1", "direction": "out"}
547301e7acdSGeorge Keishing# pcie switch reset
548*20f38712SPatrick WilliamsGPIO_CONFIG["BMC_VS1_PERST_N"] = {"gpio_pin": "B7", "direction": "out"}
549301e7acdSGeorge Keishing# pcie slots reset - not connected?
550*20f38712SPatrick WilliamsGPIO_CONFIG["BMC_CP0_PERST_ENABLE_R"] = {"gpio_pin": "A3", "direction": "out"}
5513bd8cf2eSGeorge Keishing
552301e7acdSGeorge Keishing# SOFT_FSI_DAT
553*20f38712SPatrick WilliamsGPIO_CONFIG["FSI_DATA"] = {"gpio_pin": "E0", "direction": "out"}
554301e7acdSGeorge Keishing# SOFT_FSI_CLK
555*20f38712SPatrick WilliamsGPIO_CONFIG["FSI_CLK"] = {"gpio_pin": "AA0", "direction": "out"}
556301e7acdSGeorge Keishing# BMC_FSI_IN_ENA
557*20f38712SPatrick WilliamsGPIO_CONFIG["FSI_ENABLE"] = {"gpio_pin": "D0", "direction": "out"}
558301e7acdSGeorge Keishing# FSI_JMFG0_PRSNT_N
559*20f38712SPatrick WilliamsGPIO_CONFIG["CRONUS_SEL"] = {"gpio_pin": "A6", "direction": "out"}
5603bd8cf2eSGeorge Keishing
561301e7acdSGeorge Keishing# FP_PWR_BTN_N
562*20f38712SPatrick WilliamsGPIO_CONFIG["POWER_BUTTON"] = {"gpio_pin": "I3", "direction": "both"}
563301e7acdSGeorge Keishing# BMC_NMIBTN_IN_N
564*20f38712SPatrick WilliamsGPIO_CONFIG["RESET_BUTTON"] = {"gpio_pin": "J1", "direction": "both"}
5653bd8cf2eSGeorge Keishing
566301e7acdSGeorge Keishing# FP_ID_BTN_N
567*20f38712SPatrick WilliamsGPIO_CONFIG["IDBTN"] = {"gpio_pin": "Q7", "direction": "out"}
5683bd8cf2eSGeorge Keishing
569301e7acdSGeorge KeishingGPIO_CONFIGS = {
570*20f38712SPatrick Williams    "power_config": {
571*20f38712SPatrick Williams        "power_good_in": "SYS_PWROK_BUFF",
572*20f38712SPatrick Williams        "power_up_outs": [
573*20f38712SPatrick Williams            ("SOFTWARE_PGOOD", True),
574*20f38712SPatrick Williams            ("BMC_POWER_UP", True),
575301e7acdSGeorge Keishing        ],
576*20f38712SPatrick Williams        "reset_outs": [
577*20f38712SPatrick Williams            ("BMC_CP0_RESET_N", False),
578301e7acdSGeorge Keishing        ],
5793bd8cf2eSGeorge Keishing    },
580*20f38712SPatrick Williams    "hostctl_config": {
581*20f38712SPatrick Williams        "fsi_data": "FSI_DATA",
582*20f38712SPatrick Williams        "fsi_clk": "FSI_CLK",
583*20f38712SPatrick Williams        "fsi_enable": "FSI_ENABLE",
584*20f38712SPatrick Williams        "cronus_sel": "CRONUS_SEL",
585*20f38712SPatrick Williams        "optionals": [],
5863bd8cf2eSGeorge Keishing    },
5873bd8cf2eSGeorge Keishing}
5883bd8cf2eSGeorge Keishing
589301e7acdSGeorge Keishing
5903bd8cf2eSGeorge Keishing# Miscellaneous non-poll sensor with system specific properties.
5913bd8cf2eSGeorge Keishing# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
5923bd8cf2eSGeorge KeishingMISC_SENSORS = {
593*20f38712SPatrick Williams    0x07: {"class": "BootCountSensor"},
594*20f38712SPatrick Williams    0x03: {"class": "BootProgressSensor"},
595*20f38712SPatrick Williams    0x02: {"class": "OperatingSystemStatusSensor"},
596301e7acdSGeorge Keishing    # Garrison value is used, Not in P9 XML yet.
597*20f38712SPatrick Williams    0x0B: {"class": "PowerSupplyRedundancySensor"},
598*20f38712SPatrick Williams    0xDA: {"class": "TurboAllowedSensor"},
599*20f38712SPatrick Williams    0xD8: {"class": "PowerSupplyDeratingSensor"},
6003bd8cf2eSGeorge Keishing}
601301e7acdSGeorge Keishing
602301e7acdSGeorge Keishing# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
603