blob: 8b372e7d513817906eee1c09fe30cc5058c13aef [file] [log] [blame]
Shawn McCarney46b5e692020-04-30 16:34:39 -05001{
2 "comments": [ "phosphor-regulators configuration file for IBM Rainier systems" ],
3
4
5 "rules": [
6 {
7 "comments": [ "Rule to set PMBus PAGE to 0" ],
8 "id": "set_page0_rule",
9 "actions": [
10 { "i2c_write_byte": { "register": "0x00", "value": "0x00" } }
11 ]
12 },
13
14
15 {
16 "comments": [ "Rule to set PMBus PAGE to 1" ],
17 "id": "set_page1_rule",
18 "actions": [
19 { "i2c_write_byte": { "register": "0x00", "value": "0x01" } }
20 ]
21 },
22
23
24 {
25 "comments": [ "Rule to set output voltage of a PMBus regulator" ],
26 "id": "set_voltage_rule",
27 "actions": [
28 {
29 "comments": [ "Write volts value to VOUT_COMMAND in linear format.",
30 "Get volts value from configuration. Get exponent",
31 "from VOUT_MODE. Verify write was successful." ],
32 "pmbus_write_vout_command": { "format": "linear", "is_verified": true }
33 }
34 ]
35 },
36
37
38 {
39 "comments": [ "Rule to set output voltage of PAGE 0 of a PMBus regulator" ],
40 "id": "set_voltage_page0_rule",
41 "actions": [
42 { "run_rule": "set_page0_rule" },
43 { "run_rule": "set_voltage_rule" }
44 ]
45 },
46
47
48 {
49 "comments": [ "Rule to set output voltage of PAGE 1 of a PMBus regulator" ],
50 "id": "set_voltage_page1_rule",
51 "actions": [
52 { "run_rule": "set_page1_rule" },
53 { "run_rule": "set_voltage_rule" }
54 ]
Shawn McCarneyd97aa512022-03-24 19:02:32 -050055 },
56
57
58 {
59 "comments": [ "Rule to set output voltage of a PMBus regulator using",
60 "PMBus OPERATION and VOUT_COMMAND" ],
61 "id": "set_operation_and_voltage_rule",
62 "actions": [
63 {
64 "comments": [ "Set PMBus OPERATION to 0x80 indicating output voltage",
65 "is set by the PMBus VOUT_COMMAND" ],
66 "i2c_write_byte": { "register": "0x01", "value": "0x80" }
67 },
68
69 {
70 "comments": [ "Set the output voltage using the PMBus VOUT_COMMAND" ],
71 "run_rule": "set_voltage_rule"
72 },
73
74 {
75 "comments": [ "Set PMBus OPERATION to 0xB0 indicating output voltage",
76 "will now be set by AVSBus (AVS_VOUT_COMMAND).",
77 "Hardware settings cause the VOUT_COMMAND value to be",
78 "the initial voltage value for AVSBus." ],
79 "i2c_write_byte": { "register": "0x01", "value": "0xB0" }
80 }
81 ]
82 },
83
84
85 {
86 "comments": [ "Rule to set IOUT_OC_WARN_LIMIT for a PMBus regulator" ],
87 "id": "set_iout_oc_warn_limit_rule",
88 "actions": [
89 {
90 "comments": [ "Set PMBus IOUT_OC_WARN_LIMIT to 326A to ensure OCW",
91 "asserts at the roll-over bug identified in the",
92 "silicon. 326A = 0x08A3. PMBus requires",
93 "the low order byte to be written first." ],
94 "i2c_write_bytes": { "register": "0x4A", "values": [ "0xA3", "0x08" ] }
95 }
96 ]
97 },
98
99
100 {
101 "comments": [ "Rule to configure a VDD rail using the PMBus interface" ],
102 "id": "configure_vdd_rule",
103 "actions": [
104 { "run_rule": "set_page0_rule" },
105 { "run_rule": "set_iout_oc_warn_limit_rule" },
106 {
107 "comments": [ "Set VOUT_MODE to exponent of -9 for VDD regulator",
108 "to support older and newer hardware." ],
109 "i2c_write_byte": { "register": "0x20", "value": "0x17" }
110 },
111 { "run_rule": "set_operation_and_voltage_rule" },
112 {
113 "comments": [ "Set VOUT_MIN to 0V since for VDD the voltage",
114 "can go down to 0.5V so we want to lower this",
115 "limit below 0.5V so the regulator does not trip." ],
116 "i2c_write_bytes": { "register": "0x2B", "values": [ "0x00", "0x00" ] }
117 },
118 {
119 "comments": [ "Set VOUT_MAX to 1.255V since for VDD the voltage",
120 "can go up to 1.1V so we want to raise this",
121 "limit above 1.1V so the regulator does not trip." ],
122 "i2c_write_bytes": { "register": "0x24", "values": [ "0x83", "0x02" ] }
123 },
124 {
125 "comments": [ "Set POWER_GOOD_ON for VDD to a value of 0.5V." ],
126 "i2c_write_bytes": { "register": "0x5E", "values": [ "0x00", "0x01" ] }
127 },
128 {
129 "comments": [ "Set POWER_GOOD_OFF for VDD to a value of 0.4V." ],
130 "i2c_write_bytes": { "register": "0x5F", "values": [ "0xCD", "0x00" ] }
131 },
132 {
133 "comments": [ "Set VOUT_OV_WARN_LIMIT for VDD to a value of 1.30V." ],
134 "i2c_write_bytes": { "register": "0x42", "values": [ "0x9A", "0x02" ] }
135 },
136 {
137 "comments": [ "Set VOUT_UV_WARN_LIMIT for VDD to a value of 0.45V." ],
138 "i2c_write_bytes": { "register": "0x43", "values": [ "0xE6", "0x00" ] }
139 },
140 {
141 "comments": [ "Set TOFF_FALL time for VDD to a value of 10ms." ],
142 "i2c_write_bytes": { "register": "0x65", "values": [ "0x28", "0xF0" ] }
143 },
144 {
145 "comments": [ "Set IOUT_OC_FAULT_RESPONSE for VDD to shutdown." ],
146 "i2c_write_byte": { "register": "0x47", "value": "0xC0" }
147 }
148 ]
149 },
150
151
152 {
153 "comments": [ "Rule to configure a VDN rail using the PMBus interface" ],
154 "id": "configure_vdn_rule",
155 "actions": [
156 { "run_rule": "set_page0_rule" },
157 { "run_rule": "set_operation_and_voltage_rule" },
158 {
159 "comments": [ "Set VOUT_MIN to 0V since for VDN the voltage",
160 "can go down to 0.6V so we want to lower this",
161 "limit below 0.6V so the regulator does not trip." ],
162 "i2c_write_bytes": { "register": "0x2B", "values": [ "0x00", "0x00" ] }
163 },
164 {
165 "comments": [ "Set VOUT_MAX to 1.1V since for VDN the voltage",
166 "can go up to 1.0V so we want to raise this",
167 "limit above 1.0V so the regulator does not trip." ],
168 "i2c_write_bytes": { "register": "0x24", "values": [ "0x33", "0x02" ] }
169 },
170 {
171 "comments": [ "Set POWER_GOOD_ON for VDN to a value of 0.45V." ],
172 "i2c_write_bytes": { "register": "0x5E", "values": [ "0xE6", "0x00" ] }
173 },
174 {
175 "comments": [ "Set POWER_GOOD_OFF for VDN to a value of 0.40V." ],
176 "i2c_write_bytes": { "register": "0x5F", "values": [ "0xCC", "0x00" ] }
177 }
178 ]
179 },
180
181
182 {
183 "comments": [ "Rule to configure a VCS rail using the PMBus interface" ],
184 "id": "configure_vcs_rule",
185 "actions": [
186 { "run_rule": "set_page1_rule" },
187 { "run_rule": "set_operation_and_voltage_rule" },
188 {
189 "comments": [ "Set VOUT_MIN to 0V since for VCS the voltage",
190 "can go down to 0.7V so we want to lower this",
191 "limit below 0.7V so the regulator does not trip." ],
192 "i2c_write_bytes": { "register": "0x2B", "values": [ "0x00", "0x00" ] }
193 },
194 {
195 "comments": [ "Set VOUT_MAX to 1.2V since for VCS the voltage",
196 "can go up to 1.1V so we want to raise this",
197 "limit above 1.1V so the regulator does not trip." ],
198 "i2c_write_bytes": { "register": "0x24", "values": [ "0x66", "0x02" ] }
199 },
200 {
201 "comments": [ "Set POWER_GOOD_ON for VCS to a value of 0.55V." ],
202 "i2c_write_bytes": { "register": "0x5E", "values": [ "0x19", "0x01" ] }
203 },
204 {
205 "comments": [ "Set POWER_GOOD_OFF for VCS to a value of 0.50V." ],
206 "i2c_write_bytes": { "register": "0x5F", "values": [ "0x00", "0x01" ] }
207 }
208 ]
209 },
210
211
212 {
213 "comments": [ "Rule to configure a VIO rail using the PMBus interface" ],
214 "id": "configure_vio_rule",
215 "actions": [
216 { "run_rule": "set_page0_rule" },
217 { "run_rule": "set_operation_and_voltage_rule" },
218 {
219 "comments": [ "Set VOUT_MIN to 0V since for VIO the voltage",
220 "can go down to 0.8V so we want to lower this",
221 "limit below 0.8V so the regulator does not trip." ],
222 "i2c_write_bytes": { "register": "0x2B", "values": [ "0x00", "0x00" ] }
223 },
224 {
225 "comments": [ "Set VOUT_MAX to 1.1V since for VIO the voltage",
226 "can go up to 1.0V so we want to raise this",
227 "limit above 1.0V so the regulator does not trip." ],
228 "i2c_write_bytes": { "register": "0x24", "values": [ "0x33", "0x02" ] }
229 },
230 {
231 "comments": [ "Set POWER_GOOD_ON for VIO to a value of 0.55V." ],
232 "i2c_write_bytes": { "register": "0x5E", "values": [ "0x19", "0x01" ] }
233 },
234 {
235 "comments": [ "Set POWER_GOOD_OFF for VIO to a value of 0.50V." ],
236 "i2c_write_bytes": { "register": "0x5F", "values": [ "0x00", "0x01" ] }
237 }
238 ]
239 },
240
241
242 {
243 "comments": [ "Rule to configure a VPCIE rail using the PMBus interface" ],
244 "id": "configure_vpcie_rule",
245 "actions": [
246 { "run_rule": "set_page0_rule" },
247 { "run_rule": "set_voltage_rule" },
248 {
249 "comments": [ "Set VOUT_MIN to 0V since for VPCIE the voltage",
250 "can go down to 0.81V so we want to lower this",
251 "limit below 0.81V so the regulator does not trip." ],
252 "i2c_write_bytes": { "register": "0x2B", "values": [ "0x00", "0x00" ] }
253 },
254 {
255 "comments": [ "Set VOUT_MAX to 1.0V since for VPCIE the voltage",
256 "can go up to 0.91V so we want to raise this",
257 "limit above 0.91V so the regulator does not trip." ],
258 "i2c_write_bytes": { "register": "0x24", "values": [ "0x00", "0x02" ] }
259 },
260 {
261 "comments": [ "Set POWER_GOOD_ON for VPCIE to a value of 0.65V." ],
262 "i2c_write_bytes": { "register": "0x5E", "values": [ "0x4C", "0x01" ] }
263 },
264 {
265 "comments": [ "Set POWER_GOOD_OFF for VPCIE to a value of 0.60V." ],
266 "i2c_write_bytes": { "register": "0x5F", "values": [ "0x33", "0x01" ] }
267 }
268 ]
269 },
270
271
272 {
273 "comments": [ "Rule to read sensors on IR38064 regulators using the",
274 "PMBus interface" ],
275 "id": "read_sensors_ir38064_rule",
276 "actions": [
277 {
278 "comments": [ "Read output current from READ_IOUT" ],
279 "pmbus_read_sensor": {
280 "type": "iout",
281 "command": "0x8C",
282 "format": "linear_11"
283 }
284 },
285 {
286 "comments": [ "Read highest output current from MFR_IOUT_PEAK" ],
287 "pmbus_read_sensor": {
288 "type": "iout_peak",
289 "command": "0xDC",
290 "format": "linear_11"
291 }
292 },
293 {
294 "comments": [ "Read output power from READ_POUT" ],
295 "pmbus_read_sensor": {
296 "type": "pout",
297 "command": "0x96",
298 "format": "linear_11"
299 }
300 },
301 {
302 "comments": [ "Read temperature from READ_TEMPERATURE" ],
303 "pmbus_read_sensor": {
304 "type": "temperature",
305 "command": "0x8D",
306 "format": "linear_11"
307 }
308 },
309 {
310 "comments": [ "Read highest temperature from MFR_TEMPERATURE_PEAK" ],
311 "pmbus_read_sensor": {
312 "type": "temperature_peak",
313 "command": "0xDD",
314 "format": "linear_11"
315 }
316 },
317 {
318 "comments": [ "Read output voltage from READ_VOUT.",
319 "Note: regulator does not support VOUT_MODE, so the",
320 "exponent must be specified." ],
321 "pmbus_read_sensor": {
322 "type": "vout",
323 "command": "0x8B",
324 "format": "linear_16",
325 "exponent": -8
326 }
327 },
328 {
329 "comments": [ "Read highest output voltage from MFR_VOUT_PEAK.",
330 "Note: regulator does not support VOUT_MODE, so the",
331 "exponent must be specified." ],
332 "pmbus_read_sensor": {
333 "type": "vout_peak",
334 "command": "0xDB",
335 "format": "linear_16",
336 "exponent": -8
337 }
338 }
339 ]
340 },
341
342
343 {
344 "comments": [ "Rule to read sensors on IR35221 regulators using the",
345 "PMBus interface" ],
346 "id": "read_sensors_ir35221_rule",
347 "actions": [
348 {
349 "comments": [ "Read output current from READ_IOUT" ],
350 "pmbus_read_sensor": {
351 "type": "iout",
352 "command": "0x8C",
353 "format": "linear_11"
354 }
355 },
356 {
357 "comments": [ "Read highest output current from MFR_IOUT_PEAK" ],
358 "pmbus_read_sensor": {
359 "type": "iout_peak",
360 "command": "0xC7",
361 "format": "linear_11"
362 }
363 },
364 {
365 "comments": [ "Read lowest output current from MFR_IOUT_VALLEY" ],
366 "pmbus_read_sensor": {
367 "type": "iout_valley",
368 "command": "0xCB",
369 "format": "linear_11"
370 }
371 },
372 {
373 "comments": [ "Read output power from READ_POUT" ],
374 "pmbus_read_sensor": {
375 "type": "pout",
376 "command": "0x96",
377 "format": "linear_11"
378 }
379 },
380 {
381 "comments": [ "Read temperature from READ_TEMPERATURE_1" ],
382 "pmbus_read_sensor": {
383 "type": "temperature",
384 "command": "0x8D",
385 "format": "linear_11"
386 }
387 },
388 {
389 "comments": [ "Read highest temperature from MFR_TEMP_PEAK" ],
390 "pmbus_read_sensor": {
391 "type": "temperature_peak",
392 "command": "0xC8",
393 "format": "linear_11"
394 }
395 },
396 {
397 "comments": [ "Read output voltage from READ_VOUT" ],
398 "pmbus_read_sensor": {
399 "type": "vout",
400 "command": "0x8B",
401 "format": "linear_16"
402 }
403 },
404 {
405 "comments": [ "Read highest output voltage from MFR_VOUT_PEAK" ],
406 "pmbus_read_sensor": {
407 "type": "vout_peak",
408 "command": "0xC6",
409 "format": "linear_16"
410 }
411 },
412 {
413 "comments": [ "Read lowest output voltage from MFR_VOUT_VALLEY" ],
414 "pmbus_read_sensor": {
415 "type": "vout_valley",
416 "command": "0xCA",
417 "format": "linear_16"
418 }
419 }
420 ]
421 },
422
423
424 {
425 "comments": [ "Rule to read sensors on PAGE 0 of IR35221 regulators",
426 "using the PMBus interface" ],
427 "id": "read_sensors_ir35221_page0_rule",
428 "actions": [
429 { "run_rule": "set_page0_rule" },
430 { "run_rule": "read_sensors_ir35221_rule" }
431 ]
432 },
433
434
435 {
436 "comments": [ "Rule to read sensors on PAGE 1 of IR35221 regulators",
437 "using the PMBus interface" ],
438 "id": "read_sensors_ir35221_page1_rule",
439 "actions": [
440 { "run_rule": "set_page1_rule" },
441 { "run_rule": "read_sensors_ir35221_rule" }
442 ]
443 },
444
445
446 {
447 "comments": [ "Rule to read sensors on PAGE 0 of XDPE132G5C regulators",
448 "using the PMBus interface" ],
449 "id": "read_sensors_xdpe132g5c_page0_rule",
450 "actions": [
451 {
452 "comments": [ "Can use same rule as for IR35221 regulators" ],
453 "run_rule": "read_sensors_ir35221_page0_rule"
454 }
455 ]
456 },
457
458
459 {
460 "comments": [ "Rule to determine if the current system is a 2S4U/2S2U.",
461 "2S systems have more regulators on the Nisqually system",
462 "planar than 1S systems. Must return true if system is a",
463 "2S4U/2S2U and false if system is a 1S4U." ],
464 "id": "is_2s_system_rule",
465 "actions": [
466 {
467 "comments": [ "Check whether the CCIN VPD keyword on the Nisqually",
468 "system planar has the value for 2S4U or 2S2U" ],
469 "or": [
470 { "compare_vpd": { "fru": "system/chassis/motherboard", "keyword": "CCIN", "value": "2E2F" } },
471 { "compare_vpd": { "fru": "system/chassis/motherboard", "keyword": "CCIN", "value": "2E2D" } }
472 ]
473 }
474 ]
475 },
476
477
478 {
479 "comments": [ "Rule to determine if pass 2 or higher Nisqually",
480 "backplane is present. Must return true if present and",
481 "false otherwise." ],
482 "id": "is_pass2_nisqually_rule",
483 "actions": [
484 {
485 "comments": [ "Check that the PartNumber VPD keyword on the",
486 "Nisqually system planar is not the value for",
487 "the pass 1 2U or 4U." ],
488 "not":
489 {
490 "or": [
491 { "compare_vpd": { "fru": "system/chassis/motherboard", "keyword": "PartNumber", "value": "02WG656" } },
492 { "compare_vpd": { "fru": "system/chassis/motherboard", "keyword": "PartNumber", "value": "02WG678" } }
493 ]
494 }
495 }
496 ]
497 },
498
499
500 {
501 "comments": [ "Rule to determine if the VRM FRU for DCM-1 is present.",
502 "Must return true if VRM is present and false if VRM is",
503 "missing." ],
504 "id": "is_dcm1_vrm_present_rule",
505 "actions": [
506 {
507 "comments": [ "Check whether the VRM FRU is present OR the DCM-1",
508 "FRU is present. This provides a double check in",
509 "case the VRM presence line is not working. If DCM-1",
510 "is present, the associated VRM should be too." ],
511 "or": [
512 { "compare_presence": { "fru": "system/chassis/motherboard/vdd_vrm1", "value": true } },
513 { "compare_presence": { "fru": "system/chassis/motherboard/dcm1/cpu0", "value": true } }
514 ]
515 }
516 ]
517 },
518
519
520 {
521 "comments": [ "Rule to determine if a Flett card is present in slot C8.",
522 "This requires a Nisqually pass2+ due to I2C bus number",
523 "differences between pass 1 and pass 2.",
524 "Pass 1 and pass 2 Fletts are both supported.",
525 "Must return true if present and false otherwise." ],
526 "id": "is_flett_c8_present_rule",
527 "actions": [
528 {
529 "if": {
530 "condition": {
531 "comments": [ "Check if the Nisqually is pass 2" ],
532 "run_rule": "is_pass2_nisqually_rule"
533 },
534 "then": [
535 {
536 "comments": [ "Check if a card is present in slot C8" ],
537 "if": {
538 "condition": {
539 "compare_presence": {
540 "fru": "system/chassis/motherboard/pcieslot8/pcie_card8",
541 "value": true
542 }
543 },
544 "then": [
545 {
546 "comments": [ "Check if card has Flett CCIN keyword" ],
547 "compare_vpd": {
548 "fru": "system/chassis/motherboard/pcieslot8/pcie_card8",
549 "keyword": "CCIN",
550 "value": "6B87"
551 }
552 }
553 ]
554 }
555 }
556 ]
557 }
558 }
559 ]
560 },
561
562
563 {
564 "comments": [ "Rule to determine if a Flett card is present in slot C9.",
565 "This requires a Nisqually pass2+ due to I2C bus number",
566 "differences between pass 1 and pass 2.",
567 "This also requires the Flett to be pass 2 because the",
568 "pass 1 regulator has a different I2C address.",
569 "Must return true if present and false otherwise." ],
570 "id": "is_flett_c9_present_rule",
571 "actions": [
572 {
573 "if": {
574 "condition": {
575 "comments": [ "Check if the Nisqually is pass 2" ],
576 "run_rule": "is_pass2_nisqually_rule"
577 },
578 "then": [
579 {
580 "comments": [ "Check if a card is present in slot C9" ],
581 "if": {
582 "condition": {
583 "compare_presence": {
584 "fru": "system/chassis/motherboard/pcieslot9/pcie_card9",
585 "value": true
586 }
587 },
588 "then": [
589 {
590 "comments": [ "Check if card has Flett CCIN keyword" ],
591 "if": {
592 "condition": {
593 "compare_vpd": {
594 "fru": "system/chassis/motherboard/pcieslot9/pcie_card9",
595 "keyword": "CCIN",
596 "value": "6B87"
597 }
598 },
599 "then": [
600 {
601 "comments": [
602 "Check that card does not have a pass 1",
603 "part number"
604 ],
605 "not": {
606 "or": [
607 {
608 "compare_vpd": {
609 "fru": "system/chassis/motherboard/pcieslot9/pcie_card9",
610 "keyword": "PartNumber",
611 "value": "03FL194"
612 }
613 },
614 {
615 "compare_vpd": {
616 "fru": "system/chassis/motherboard/pcieslot9/pcie_card9",
617 "keyword": "PartNumber",
618 "value": "03FL204"
619 }
620 }
621 ]
622 }
623 }
624 ]
625 }
626 }
627 ]
628 }
629 }
630 ]
631 }
632 }
633 ]
634 },
635
636
637 {
638 "comments": [ "Rule to determine if a Flett card is present in slot C10.",
639 "This requires a Nisqually pass2+ due to I2C bus number",
640 "differences between pass 1 and pass 2.",
641 "This also requires the Flett to be pass 2 because the",
642 "pass 1 regulator has a different I2C address.",
643 "Must return true if present and false otherwise." ],
644 "id": "is_flett_c10_present_rule",
645 "actions": [
646 {
647 "if": {
648 "condition": {
649 "comments": [ "Check if the Nisqually is pass 2" ],
650 "run_rule": "is_pass2_nisqually_rule"
651 },
652 "then": [
653 {
654 "comments": [ "Check if a card is present in slot C10" ],
655 "if": {
656 "condition": {
657 "compare_presence": {
658 "fru": "system/chassis/motherboard/pcieslot10/pcie_card10",
659 "value": true
660 }
661 },
662 "then": [
663 {
664 "comments": [ "Check if card has Flett CCIN keyword" ],
665 "if": {
666 "condition": {
667 "compare_vpd": {
668 "fru": "system/chassis/motherboard/pcieslot10/pcie_card10",
669 "keyword": "CCIN",
670 "value": "6B87"
671 }
672 },
673 "then": [
674 {
675 "comments": [
676 "Check that card does not have a pass 1",
677 "part number"
678 ],
679 "not": {
680 "or": [
681 {
682 "compare_vpd": {
683 "fru": "system/chassis/motherboard/pcieslot10/pcie_card10",
684 "keyword": "PartNumber",
685 "value": "03FL194"
686 }
687 },
688 {
689 "compare_vpd": {
690 "fru": "system/chassis/motherboard/pcieslot10/pcie_card10",
691 "keyword": "PartNumber",
692 "value": "03FL204"
693 }
694 }
695 ]
696 }
697 }
698 ]
699 }
700 }
701 ]
702 }
703 }
704 ]
705 }
706 }
707 ]
708 },
709
710
711 {
712 "comments": [ "Rule to determine if a Flett card is present in slot C11.",
713 "This requires a Nisqually pass2+ due to I2C bus number",
714 "differences between pass 1 and pass 2.",
715 "Pass 1 and pass 2 Fletts are both supported.",
716 "Must return true if present and false otherwise." ],
717 "id": "is_flett_c11_present_rule",
718 "actions": [
719 {
720 "if": {
721 "condition": {
722 "comments": [ "Check if the Nisqually is pass 2" ],
723 "run_rule": "is_pass2_nisqually_rule"
724 },
725 "then": [
726 {
727 "comments": [ "Check if a card is present in slot C11" ],
728 "if": {
729 "condition": {
730 "compare_presence": {
731 "fru": "system/chassis/motherboard/pcieslot11/pcie_card11",
732 "value": true
733 }
734 },
735 "then": [
736 {
737 "comments": [ "Check if card has Flett CCIN keyword" ],
738 "compare_vpd": {
739 "fru": "system/chassis/motherboard/pcieslot11/pcie_card11",
740 "keyword": "CCIN",
741 "value": "6B87"
742 }
743 }
744 ]
745 }
746 }
747 ]
748 }
749 }
750 ]
Shawn McCarney46b5e692020-04-30 16:34:39 -0500751 }
752 ],
753
754
755 "chassis": [
756 {
Shawn McCarneyd97aa512022-03-24 19:02:32 -0500757 "comments": [ "Chassis (drawer) 1" ],
Shawn McCarneyecbeeea2021-04-29 21:08:18 -0500758 "number": 1,
Shawn McCarneyd97aa512022-03-24 19:02:32 -0500759 "inventory_path": "system/chassis",
760 "devices": [
761 {
762 "comments": [ "AVDD / IR38064: Primary PMBus Interface",
763 "In schematic: bus 4 (1-based), address 0xE2 (8-bit)" ],
764 "id": "avdd_regulator",
765 "is_regulator": true,
766 "fru": "system/chassis/motherboard",
767 "i2c_interface": { "bus": 3, "address": "0x71" },
768 "presence_detection": { "rule_id": "is_pass2_nisqually_rule" },
769 "rails": [
770 {
771 "id": "avdd_rail",
772 "sensor_monitoring": { "rule_id": "read_sensors_ir38064_rule" }
773 }
774 ]
775 },
776
777
778 {
779 "comments": [ "3.3VA / TPS549D22",
780 "In schematic: bus 9 (1-based), address 0x36 (8-bit)",
781 "Does not have power at standby; cannot be configured",
782 "Does not support the PMBus PAGE command" ],
783 "id": "3_3va_regulator",
784 "is_regulator": true,
785 "fru": "system/chassis/motherboard",
786 "i2c_interface": { "bus": 8, "address": "0x1B" },
787 "rails": [
788 {
789 "id": "3_3va_rail"
790 }
791 ]
792 },
793
794
795 {
796 "comments": [ "3.3VB / TPS549D22",
797 "In schematic: bus 4 (1-based), address 0x38 (8-bit)",
798 "Does not have power at standby; cannot be configured",
799 "Does not support the PMBus PAGE command" ],
800 "id": "3_3vb_regulator",
801 "is_regulator": true,
802 "fru": "system/chassis/motherboard",
803 "i2c_interface": { "bus": 3, "address": "0x1C" },
804 "rails": [
805 {
806 "id": "3_3vb_rail"
807 }
808 ]
809 },
810
811
812 {
813 "comments": [ "VDDp0 DCM 0 / XDPE132G5C: Primary PMBus Interface",
814 "In schematic: bus 10 (1-based), address 0xE2 (8-bit)" ],
815 "id": "vdd_p0_dcm0_regulator",
816 "is_regulator": true,
817 "fru": "system/chassis/motherboard/vdd_vrm0",
818 "i2c_interface": { "bus": 9, "address": "0x71" },
819 "rails": [
820 {
821 "id": "vdd_p0_dcm0_rail",
822 "configuration": {
823 "volts": 0.9,
824 "rule_id": "configure_vdd_rule"
825 },
826 "sensor_monitoring": { "rule_id": "read_sensors_xdpe132g5c_page0_rule" }
827 }
828 ]
829 },
830
831
832 {
833 "comments": [ "VDDp1 DCM 0 / XDPE132G5C: Primary PMBus Interface",
834 "In schematic: bus 10 (1-based), address 0xE0 (8-bit)" ],
835 "id": "vdd_p1_dcm0_regulator",
836 "is_regulator": true,
837 "fru": "system/chassis/motherboard/vdd_vrm0",
838 "i2c_interface": { "bus": 9, "address": "0x70" },
839 "rails": [
840 {
841 "id": "vdd_p1_dcm0_rail",
842 "configuration": {
843 "volts": 0.9,
844 "rule_id": "configure_vdd_rule"
845 },
846 "sensor_monitoring": { "rule_id": "read_sensors_xdpe132g5c_page0_rule" }
847 }
848 ]
849 },
850
851
852 {
853 "comments": [ "VDDp0 DCM 1 / XDPE132G5C: Primary PMBus Interface",
854 "In schematic: bus 11 (1-based), address 0xE2 (8-bit)" ],
855 "id": "vdd_p0_dcm1_regulator",
856 "is_regulator": true,
857 "fru": "system/chassis/motherboard/vdd_vrm1",
858 "i2c_interface": { "bus": 10, "address": "0x71" },
859 "presence_detection": { "rule_id": "is_dcm1_vrm_present_rule" },
860 "rails": [
861 {
862 "id": "vdd_p0_dcm1_rail",
863 "configuration": {
864 "volts": 0.9,
865 "rule_id": "configure_vdd_rule"
866 },
867 "sensor_monitoring": { "rule_id": "read_sensors_xdpe132g5c_page0_rule" }
868 }
869 ]
870 },
871
872
873 {
874 "comments": [ "VDDp1 DCM 1 / XDPE132G5C: Primary PMBus Interface",
875 "In schematic: bus 11 (1-based), address 0xE0 (8-bit)" ],
876 "id": "vdd_p1_dcm1_regulator",
877 "is_regulator": true,
878 "fru": "system/chassis/motherboard/vdd_vrm1",
879 "i2c_interface": { "bus": 10, "address": "0x70" },
880 "presence_detection": { "rule_id": "is_dcm1_vrm_present_rule" },
881 "rails": [
882 {
883 "id": "vdd_p1_dcm1_rail",
884 "configuration": {
885 "volts": 0.9,
886 "rule_id": "configure_vdd_rule"
887 },
888 "sensor_monitoring": { "rule_id": "read_sensors_xdpe132g5c_page0_rule" }
889 }
890 ]
891 },
892
893
894 {
895 "comments": [ "VDN & VCSp0 DCM 0 / IR35221: Primary PMBus Interface",
896 "In schematic: bus 10 (1-based), address 0xE4 (8-bit)" ],
897 "id": "vdn_vcs_p0_dcm0_regulator",
898 "is_regulator": true,
899 "fru": "system/chassis/motherboard",
900 "i2c_interface": { "bus": 9, "address": "0x72" },
901 "rails": [
902 {
903 "comments": [ "PMBus PAGE 0 rail" ],
904 "id": "vdn_dcm0_rail",
905 "configuration": {
906 "volts": 0.9,
907 "rule_id": "configure_vdn_rule"
908 },
909 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
910 },
911 {
912 "comments": [ "PMBus PAGE 1 rail" ],
913 "id": "vcs_p0_dcm0_rail",
914 "configuration": {
915 "volts": 1.0,
916 "rule_id": "configure_vcs_rule"
917 },
918 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page1_rule" }
919 }
920 ]
921 },
922
923
924 {
925 "comments": [ "VIO & VCSp1 DCM 0 / IR35221: Primary PMBus Interface",
926 "In schematic: bus 10 (1-based), address 0xE6 (8-bit)" ],
927 "id": "vio_vcs_p1_dcm0_regulator",
928 "is_regulator": true,
929 "fru": "system/chassis/motherboard",
930 "i2c_interface": { "bus": 9, "address": "0x73" },
931 "rails": [
932 {
933 "comments": [ "PMBus PAGE 0 rail" ],
934 "id": "vio_dcm0_rail",
935 "configuration": {
936 "volts": 1.02,
937 "rule_id": "configure_vio_rule"
938 },
939 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
940 },
941 {
942 "comments": [ "PMBus PAGE 1 rail" ],
943 "id": "vcs_p1_dcm0_rail",
944 "configuration": {
945 "volts": 1.0,
946 "rule_id": "configure_vcs_rule"
947 },
948 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page1_rule" }
949 }
950 ]
951 },
952
953
954 {
955 "comments": [ "VDN & VCSp0 DCM 1 / IR35221: Primary PMBus Interface",
956 "In schematic: bus 11 (1-based), address 0xE4 (8-bit)" ],
957 "id": "vdn_vcs_p0_dcm1_regulator",
958 "is_regulator": true,
959 "fru": "system/chassis/motherboard",
960 "i2c_interface": { "bus": 10, "address": "0x72" },
961 "presence_detection": { "rule_id": "is_2s_system_rule" },
962 "rails": [
963 {
964 "comments": [ "PMBus PAGE 0 rail" ],
965 "id": "vdn_dcm1_rail",
966 "configuration": {
967 "volts": 0.9,
968 "rule_id": "configure_vdn_rule"
969 },
970 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
971 },
972 {
973 "comments": [ "PMBus PAGE 1 rail" ],
974 "id": "vcs_p0_dcm1_rail",
975 "configuration": {
976 "volts": 1.0,
977 "rule_id": "configure_vcs_rule"
978 },
979 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page1_rule" }
980 }
981 ]
982 },
983
984
985 {
986 "comments": [ "VIO & VCSp1 DCM 1 / IR35221: Primary PMBus Interface",
987 "In schematic: bus 11 (1-based), address 0xE6 (8-bit)" ],
988 "id": "vio_vcs_p1_dcm1_regulator",
989 "is_regulator": true,
990 "fru": "system/chassis/motherboard",
991 "i2c_interface": { "bus": 10, "address": "0x73" },
992 "presence_detection": { "rule_id": "is_2s_system_rule" },
993 "rails": [
994 {
995 "comments": [ "PMBus PAGE 0 rail" ],
996 "id": "vio_dcm1_rail",
997 "configuration": {
998 "volts": 1.02,
999 "rule_id": "configure_vio_rule"
1000 },
1001 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1002 },
1003 {
1004 "comments": [ "PMBus PAGE 1 rail" ],
1005 "id": "vcs_p1_dcm1_rail",
1006 "configuration": {
1007 "volts": 1.0,
1008 "rule_id": "configure_vcs_rule"
1009 },
1010 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page1_rule" }
1011 }
1012 ]
1013 },
1014
1015
1016 {
1017 "comments": [ "VPCIe DCM 0 / IR35221: Primary PMBus Interface",
1018 "In schematic: bus 10 (1-based), address 0xE8 (8-bit)" ],
1019 "id": "vpcie_dcm0_regulator",
1020 "is_regulator": true,
1021 "fru": "system/chassis/motherboard",
1022 "i2c_interface": { "bus": 9, "address": "0x74" },
1023 "rails": [
1024 {
1025 "id": "vpcie_dcm0_rail",
1026 "configuration": {
1027 "volts": 0.86,
1028 "rule_id": "configure_vpcie_rule"
1029 },
1030 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1031 }
1032 ]
1033 },
1034
1035
1036 {
1037 "comments": [ "VPCIe DCM 1 / IR35221: Primary PMBus Interface",
1038 "In schematic: bus 11 (1-based), address 0xE8 (8-bit)" ],
1039 "id": "vpcie_dcm1_regulator",
1040 "is_regulator": true,
1041 "fru": "system/chassis/motherboard",
1042 "i2c_interface": { "bus": 10, "address": "0x74" },
1043 "presence_detection": { "rule_id": "is_2s_system_rule" },
1044 "rails": [
1045 {
1046 "id": "vpcie_dcm1_rail",
1047 "configuration": {
1048 "volts": 0.86,
1049 "rule_id": "configure_vpcie_rule"
1050 },
1051 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1052 }
1053 ]
1054 },
1055
1056
1057 {
1058 "comments": [ "Flett Slot C8 / IR35221: Primary PMBus Interface",
1059 "In schematic: bus 7 (1-based) mux channel 3,",
1060 "address 0xEC (8-bit).",
1061 "BMC I2C bus alias 28" ],
1062 "id": "flett_slot_c8_regulator",
1063 "is_regulator": true,
1064 "fru": "system/chassis/motherboard/pcieslot8/pcie_card8",
1065 "i2c_interface": { "bus": 28, "address": "0x76" },
1066 "presence_detection": { "rule_id": "is_flett_c8_present_rule" },
1067 "rails": [
1068 {
1069 "id": "flett_slot_c8_rail",
1070 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1071 }
1072 ]
1073 },
1074
1075
1076 {
1077 "comments": [ "Flett Slot C9 / IR35221: Primary PMBus Interface",
1078 "In schematic: bus 7 (1-based) mux channel 2,",
1079 "address 0xEC (8-bit).",
1080 "BMC I2C bus alias 27" ],
1081 "id": "flett_slot_c9_regulator",
1082 "is_regulator": true,
1083 "fru": "system/chassis/motherboard/pcieslot9/pcie_card9",
1084 "i2c_interface": { "bus": 27, "address": "0x76" },
1085 "presence_detection": { "rule_id": "is_flett_c9_present_rule" },
1086 "rails": [
1087 {
1088 "id": "flett_slot_c9_rail",
1089 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1090 }
1091 ]
1092 },
1093
1094
1095 {
1096 "comments": [ "Flett Slot C11 / IR35221: Primary PMBus Interface",
1097 "In schematic: bus 12 (1-based) mux channel 1,",
1098 "address 0xEC (8-bit).",
1099 "BMC I2C bus alias 30" ],
1100 "id": "flett_slot_c11_regulator",
1101 "is_regulator": true,
1102 "fru": "system/chassis/motherboard/pcieslot11/pcie_card11",
1103 "i2c_interface": { "bus": 30, "address": "0x76" },
1104 "presence_detection": { "rule_id": "is_flett_c11_present_rule" },
1105 "rails": [
1106 {
1107 "id": "flett_slot_c11_rail",
1108 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1109 }
1110 ]
1111 },
1112
1113
1114 {
1115 "comments": [ "Flett Slot C10 / IR35221: Primary PMBus Interface",
1116 "In schematic: bus 12 (1-based) mux channel 0,",
1117 "address 0xEC (8-bit).",
1118 "BMC I2C bus alias 29" ],
1119 "id": "flett_slot_c10_regulator",
1120 "is_regulator": true,
1121 "fru": "system/chassis/motherboard/pcieslot10/pcie_card10",
1122 "i2c_interface": { "bus": 29, "address": "0x76" },
1123 "presence_detection": { "rule_id": "is_flett_c10_present_rule" },
1124 "rails": [
1125 {
1126 "id": "flett_slot_c10_rail",
1127 "sensor_monitoring": { "rule_id": "read_sensors_ir35221_page0_rule" }
1128 }
1129 ]
1130 }
1131 ]
Shawn McCarney46b5e692020-04-30 16:34:39 -05001132 }
1133 ]
1134}
Shawn McCarneyd97aa512022-03-24 19:02:32 -05001135