blob: b1b5a69350e7e2183b14bc12766e84807e306229 [file] [log] [blame]
Matthew Barth23dcffd2021-10-19 13:36:51 -05001[
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002 {
3 // Hold fans at the given target when a number of fans are missing.
4 "name": "fan(s) missing",
5 "groups": [
6 {
7 "name": "fan inventory",
8 "interface": "xyz.openbmc_project.Inventory.Item",
9 "property": { "name": "Present" }
10 }
11 ],
12 "triggers": [
13 {
14 "class": "init",
15 "method": "get_properties"
16 },
17 {
18 "class": "signal",
19 "signal": "properties_changed"
20 }
21 ],
22 "actions": [
23 {
24 "name": "count_state_before_target",
25 "count": 1,
26 "state": false,
27 "target": 10400
28 }
Matthew Barth59031d42022-01-21 15:31:36 -060029 ]
Patrick Williamsa49e3f12022-12-08 06:12:40 -060030 },
31 {
32 // Hold fans at the given target when a number of rotors are nonfunctional.
33 "name": "fan rotor(s) faulted",
34 "groups": [
35 {
36 "name": "fan0 rotor inventory",
37 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
38 "property": { "name": "Functional" }
39 },
40 {
41 "name": "fan1 rotor inventory",
42 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
43 "property": { "name": "Functional" }
44 },
45 {
46 "name": "fan2 rotor inventory",
47 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
48 "property": { "name": "Functional" }
49 },
50 {
51 "name": "fan3 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 },
55 {
56 "name": "fan4 rotor inventory",
57 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
58 "property": { "name": "Functional" }
59 },
60 {
61 "name": "fan5 rotor inventory",
62 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
63 "property": { "name": "Functional" }
64 }
65 ],
66 "triggers": [
67 {
68 "class": "init",
69 "method": "get_properties"
70 },
71 {
72 "class": "signal",
73 "signal": "properties_changed"
74 }
75 ],
76 "actions": [
77 {
78 "name": "count_state_before_target",
79 "count": 1,
80 "state": false,
81 "target": 10400
82 }
83 ]
84 },
85 {
86 // Hold fans at the given target when any critical service
87 // is not running for 5 seconds.
88 "name": "service(s) missing",
89 "groups": [
90 {
91 "name": "fan inventory",
92 "interface": "xyz.openbmc_project.Inventory.Item",
93 "property": { "name": "Present" }
94 },
95 {
96 "name": "occ objects",
97 "interface": "org.open_power.OCC.Status",
98 "property": { "name": "OccActive" }
99 },
100 {
101 "name": "nvme temps",
102 "interface": "xyz.openbmc_project.Sensor.Value",
103 "property": { "name": "Value" }
104 },
105 {
106 "name": "planar temps",
107 "interface": "xyz.openbmc_project.Sensor.Value",
108 "property": { "name": "Value" }
109 },
110 {
111 "name": "flett temps",
112 "interface": "xyz.openbmc_project.Sensor.Value",
113 "property": { "name": "Value" }
114 },
115 {
116 "name": "pcie cable card temps",
117 "interface": "xyz.openbmc_project.Sensor.Value",
118 "property": { "name": "Value" }
119 },
120 {
121 "name": "ambient temp",
122 "interface": "xyz.openbmc_project.Sensor.Value",
123 "property": { "name": "Value" }
124 }
125 ],
126 "triggers": [
127 {
Patrick Williamsa49e3f12022-12-08 06:12:40 -0600128 "class": "signal",
129 "signal": "name_owner_changed"
Matt Spinler6ef0d512025-03-07 13:15:17 -0600130 },
131 {
132 "class": "init",
133 "method": "name_has_owner"
Patrick Williamsa49e3f12022-12-08 06:12:40 -0600134 }
135 ],
136 "actions": [
137 {
138 "name": "call_actions_based_on_timer",
139 "timer": {
140 "interval": 5000000,
141 "type": "oneshot"
142 },
143 "actions": [
144 {
145 "name": "set_target_on_missing_owner",
146 "groups": [
147 {
148 "name": "fan inventory",
149 "interface": "xyz.openbmc_project.Inventory.Item",
150 "property": { "name": "Present" }
151 },
152 {
153 "name": "occ objects",
154 "interface": "org.open_power.OCC.Status",
155 "property": { "name": "OccActive" }
156 },
157 {
158 "name": "nvme temps",
159 "interface": "xyz.openbmc_project.Sensor.Value",
160 "property": { "name": "Value" }
161 },
162 {
163 "name": "planar temps",
164 "interface": "xyz.openbmc_project.Sensor.Value",
165 "property": { "name": "Value" }
166 },
167 {
168 "name": "flett temps",
169 "interface": "xyz.openbmc_project.Sensor.Value",
170 "property": { "name": "Value" }
171 },
172 {
173 "name": "pcie cable card temps",
174 "interface": "xyz.openbmc_project.Sensor.Value",
175 "property": { "name": "Value" }
176 },
177 {
178 "name": "ambient temp",
179 "interface": "xyz.openbmc_project.Sensor.Value",
180 "property": { "name": "Value" }
181 }
182 ],
183 "target": 10400
184 }
185 ]
186 }
187 ]
188 },
189 {
Matt Spinler6ef0d512025-03-07 13:15:17 -0600190 "name": "Force retry on the OCC status objects",
191 "groups": [
192 {
193 "name": "occ objects",
194 "interface": "org.open_power.OCC.Status",
195 "property": { "name": "OccActive" }
196 }
197 ],
198 "triggers": [
199 {
200 "class": "timer",
201 "type": "oneshot",
202 "interval": 30000000,
203 "preload_groups": true
204 }
205 ],
206 "actions": [
207 {
208 "name": "set_target_on_missing_owner",
209 "groups": [
210 {
211 "name": "occ objects",
212 "interface": "org.open_power.OCC.Status",
213 "property": { "name": "OccActive" }
214 }
215 ],
216 "target": 10400
217 }
218 ]
219 },
220 {
Patrick Williamsa49e3f12022-12-08 06:12:40 -0600221 // Set a fan floor if an OCC isn't active
222 "name": "Non-active OCCs",
223 "groups": [
224 {
225 "name": "occ objects",
226 "interface": "org.open_power.OCC.Status",
227 "property": {
228 "name": "OccActive"
229 }
230 }
231 ],
232 "triggers": [
233 {
234 "class": "signal",
235 "signal": "properties_changed"
236 },
237 {
238 "class": "signal",
239 "signal": "interfaces_added"
240 },
241 {
242 "class": "init",
243 "method": "get_properties"
244 }
245 ],
246 "actions": [
247 {
248 "name": "count_state_floor",
249 "count": 1,
250 "state": false,
251 "floor": 10400
252 }
253 ]
254 },
255 {
256 // Set a raised fan floor when any temperature sensor is nonfunctional
257 "name": "Nonfunctional temperature sensors",
258 "groups": [
259 {
260 "name": "proc0 core temps",
261 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
262 "property": { "name": "Functional" }
263 },
264 {
265 "name": "proc1 core temps",
266 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
267 "property": { "name": "Functional" }
268 },
269 {
270 "name": "proc2 core temps",
271 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
272 "property": { "name": "Functional" }
273 },
274 {
275 "name": "proc3 core temps",
276 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
277 "property": { "name": "Functional" }
278 },
279 {
280 "name": "proc0 ioring temp",
281 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
282 "property": { "name": "Functional" }
283 },
284 {
285 "name": "proc1 ioring temp",
286 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
287 "property": { "name": "Functional" }
288 },
289 {
290 "name": "proc2 ioring temp",
291 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
292 "property": { "name": "Functional" }
293 },
294 {
295 "name": "proc3 ioring temp",
296 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
297 "property": { "name": "Functional" }
298 },
299 {
300 "name": "dram temps",
301 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
302 "property": { "name": "Functional" }
303 },
304 {
305 "name": "pmic temps",
306 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
307 "property": { "name": "Functional" }
308 },
309 {
310 "name": "internal memory buffer temps",
311 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
312 "property": { "name": "Functional" }
313 },
314 {
315 "name": "dram and external memory buffer temps",
316 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
317 "property": { "name": "Functional" }
318 },
319 {
320 "name": "external memory buffer temps",
321 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
322 "property": { "name": "Functional" }
323 },
324 {
325 "name": "vdd vrm temps",
326 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
327 "property": { "name": "Functional" }
328 },
329 {
330 "name": "nvme temps",
331 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
332 "property": { "name": "Functional" }
333 },
334 {
335 "name": "planar temps",
336 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
337 "property": { "name": "Functional" }
338 },
339 {
340 "name": "flett temps",
341 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
342 "property": { "name": "Functional" }
343 },
344 {
345 "name": "pcie cable card temps",
346 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
347 "property": { "name": "Functional" }
348 },
349 {
350 "name": "ambient temp",
351 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
352 "property": { "name": "Functional" }
353 }
354 ],
355 "triggers": [
356 {
357 "class": "signal",
358 "signal": "properties_changed"
359 },
360 {
361 "class": "signal",
362 "signal": "interfaces_added"
363 },
364 {
365 "class": "signal",
366 "signal": "interfaces_removed"
367 },
368 {
369 "class": "init",
370 "method": "get_properties"
371 }
372 ],
373 "actions": [
374 {
375 "name": "count_state_floor",
376 "count": 1,
377 "state": false,
Matt Spinlera8c1cf52024-01-04 16:47:30 -0600378 "delay": 5,
Patrick Williamsa49e3f12022-12-08 06:12:40 -0600379 "floor": 10400
380 }
381 ]
382 },
383 {
384 "name": "Set Proc 0 Core DVFS parameter",
385 "groups": [
386 {
387 "name": "proc 0 core dvfs temp",
388 "interface": "xyz.openbmc_project.Sensor.Value",
389 "property": { "name": "Value" }
390 }
391 ],
392 "triggers": [
393 {
394 "class": "init",
395 "method": "get_properties"
396 },
397 {
398 "class": "signal",
399 "signal": "interfaces_added"
400 },
401 {
402 "class": "signal",
403 "signal": "properties_changed"
404 }
405 ],
406 "actions": [
407 {
408 "name": "set_parameter_from_group_max",
409 "parameter_name": "proc_0_core_dvfs_increase_temp",
410 "modifier": {
411 "operator": "minus",
412 "value": 10
413 }
414 },
415 {
416 "name": "set_parameter_from_group_max",
417 "parameter_name": "proc_0_core_dvfs_decrease_temp",
418 "modifier": {
419 "operator": "minus",
420 "value": 13
421 }
422 }
423 ]
424 },
425 {
426 "name": "Set Proc 1 Core DVFS parameter",
427 "groups": [
428 {
429 "name": "proc 1 core dvfs temp",
430 "interface": "xyz.openbmc_project.Sensor.Value",
431 "property": { "name": "Value" }
432 }
433 ],
434 "triggers": [
435 {
436 "class": "init",
437 "method": "get_properties"
438 },
439 {
440 "class": "signal",
441 "signal": "interfaces_added"
442 },
443 {
444 "class": "signal",
445 "signal": "properties_changed"
446 }
447 ],
448 "actions": [
449 {
450 "name": "set_parameter_from_group_max",
451 "parameter_name": "proc_1_core_dvfs_increase_temp",
452 "modifier": {
453 "operator": "minus",
454 "value": 10
455 }
456 },
457 {
458 "name": "set_parameter_from_group_max",
459 "parameter_name": "proc_1_core_dvfs_decrease_temp",
460 "modifier": {
461 "operator": "minus",
462 "value": 13
463 }
464 }
465 ]
466 },
467 {
468 "name": "Set Proc 2 Core DVFS parameter",
469 "groups": [
470 {
471 "name": "proc 2 core dvfs temp",
472 "interface": "xyz.openbmc_project.Sensor.Value",
473 "property": { "name": "Value" }
474 }
475 ],
476 "triggers": [
477 {
478 "class": "init",
479 "method": "get_properties"
480 },
481 {
482 "class": "signal",
483 "signal": "interfaces_added"
484 },
485 {
486 "class": "signal",
487 "signal": "properties_changed"
488 }
489 ],
490 "actions": [
491 {
492 "name": "set_parameter_from_group_max",
493 "parameter_name": "proc_2_core_dvfs_increase_temp",
494 "modifier": {
495 "operator": "minus",
496 "value": 10
497 }
498 },
499 {
500 "name": "set_parameter_from_group_max",
501 "parameter_name": "proc_2_core_dvfs_decrease_temp",
502 "modifier": {
503 "operator": "minus",
504 "value": 13
505 }
506 }
507 ]
508 },
509 {
510 "name": "Set Proc 3 Core DVFS parameter",
511 "groups": [
512 {
513 "name": "proc 3 core dvfs temp",
514 "interface": "xyz.openbmc_project.Sensor.Value",
515 "property": { "name": "Value" }
516 }
517 ],
518 "triggers": [
519 {
520 "class": "init",
521 "method": "get_properties"
522 },
523 {
524 "class": "signal",
525 "signal": "interfaces_added"
526 },
527 {
528 "class": "signal",
529 "signal": "properties_changed"
530 }
531 ],
532 "actions": [
533 {
534 "name": "set_parameter_from_group_max",
535 "parameter_name": "proc_3_core_dvfs_increase_temp",
536 "modifier": {
537 "operator": "minus",
538 "value": 10
539 }
540 },
541 {
542 "name": "set_parameter_from_group_max",
543 "parameter_name": "proc_3_core_dvfs_decrease_temp",
544 "modifier": {
545 "operator": "minus",
546 "value": 13
547 }
548 }
549 ]
550 },
551 {
552 "name": "Set Proc 0 IO Ring DVFS parameter",
553 "groups": [
554 {
555 "name": "proc 0 ioring dvfs temp",
556 "interface": "xyz.openbmc_project.Sensor.Value",
557 "property": { "name": "Value" }
558 }
559 ],
560 "triggers": [
561 {
562 "class": "init",
563 "method": "get_properties"
564 },
565 {
566 "class": "signal",
567 "signal": "interfaces_added"
568 },
569 {
570 "class": "signal",
571 "signal": "properties_changed"
572 }
573 ],
574 "actions": [
575 {
576 "name": "set_parameter_from_group_max",
577 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
578 "modifier": {
579 "operator": "minus",
580 "value": 10
581 }
582 },
583 {
584 "name": "set_parameter_from_group_max",
585 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
586 "modifier": {
587 "operator": "minus",
588 "value": 13
589 }
590 }
591 ]
592 },
593
594 {
595 "name": "Set Proc 1 IO Ring DVFS parameter",
596 "groups": [
597 {
598 "name": "proc 1 ioring dvfs temp",
599 "interface": "xyz.openbmc_project.Sensor.Value",
600 "property": { "name": "Value" }
601 }
602 ],
603 "triggers": [
604 {
605 "class": "init",
606 "method": "get_properties"
607 },
608 {
609 "class": "signal",
610 "signal": "interfaces_added"
611 },
612 {
613 "class": "signal",
614 "signal": "properties_changed"
615 }
616 ],
617 "actions": [
618 {
619 "name": "set_parameter_from_group_max",
620 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
621 "modifier": {
622 "operator": "minus",
623 "value": 10
624 }
625 },
626 {
627 "name": "set_parameter_from_group_max",
628 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
629 "modifier": {
630 "operator": "minus",
631 "value": 13
632 }
633 }
634 ]
635 },
636 {
637 "name": "Set Proc 2 IO Ring DVFS parameter",
638 "groups": [
639 {
640 "name": "proc 2 ioring dvfs temp",
641 "interface": "xyz.openbmc_project.Sensor.Value",
642 "property": { "name": "Value" }
643 }
644 ],
645 "triggers": [
646 {
647 "class": "init",
648 "method": "get_properties"
649 },
650 {
651 "class": "signal",
652 "signal": "interfaces_added"
653 },
654 {
655 "class": "signal",
656 "signal": "properties_changed"
657 }
658 ],
659 "actions": [
660 {
661 "name": "set_parameter_from_group_max",
662 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
663 "modifier": {
664 "operator": "minus",
665 "value": 10
666 }
667 },
668 {
669 "name": "set_parameter_from_group_max",
670 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
671 "modifier": {
672 "operator": "minus",
673 "value": 13
674 }
675 }
676 ]
677 },
678 {
679 "name": "Set Proc 3 IO Ring DVFS parameter",
680 "groups": [
681 {
682 "name": "proc 3 ioring dvfs temp",
683 "interface": "xyz.openbmc_project.Sensor.Value",
684 "property": { "name": "Value" }
685 }
686 ],
687 "triggers": [
688 {
689 "class": "init",
690 "method": "get_properties"
691 },
692 {
693 "class": "signal",
694 "signal": "interfaces_added"
695 },
696 {
697 "class": "signal",
698 "signal": "properties_changed"
699 }
700 ],
701 "actions": [
702 {
703 "name": "set_parameter_from_group_max",
704 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
705 "modifier": {
706 "operator": "minus",
707 "value": 10
708 }
709 },
710 {
711 "name": "set_parameter_from_group_max",
712 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
713 "modifier": {
714 "operator": "minus",
715 "value": 13
716 }
717 }
718 ]
719 },
720 {
Matt Spinler1d6b4452023-11-09 13:29:31 -0600721 "name": "Set DRAM DVFS parameter",
722 "groups": [
723 {
724 "name": "dram dvfs temp",
725 "interface": "xyz.openbmc_project.Sensor.Value",
726 "property": { "name": "Value" }
727 }
728 ],
729 "triggers": [
730 {
731 "class": "init",
732 "method": "get_properties"
733 },
734 {
735 "class": "signal",
736 "signal": "properties_changed"
737 },
738 {
739 "class": "signal",
740 "signal": "interfaces_added"
741 }
742 ],
743 "actions": [
744 {
745 "name": "set_parameter_from_group_max",
746 "parameter_name": "dram_dvfs_increase_temp",
747 "modifier": {
748 "operator": "minus",
749 "value": 10
750 }
751 },
752 {
753 "name": "set_parameter_from_group_max",
754 "parameter_name": "dram_dvfs_decrease_temp",
755 "modifier": {
756 "operator": "minus",
757 "value": 13
758 }
759 }
760 ]
761 },
762 {
763 "name": "Set PMIC DVFS parameter",
764 "groups": [
765 {
766 "name": "pmic dvfs temp",
767 "interface": "xyz.openbmc_project.Sensor.Value",
768 "property": { "name": "Value" }
769 }
770 ],
771 "triggers": [
772 {
773 "class": "init",
774 "method": "get_properties"
775 },
776 {
777 "class": "signal",
778 "signal": "properties_changed"
779 },
780 {
781 "class": "signal",
782 "signal": "interfaces_added"
783 }
784 ],
785 "actions": [
786 {
787 "name": "set_parameter_from_group_max",
788 "parameter_name": "pmic_dvfs_increase_temp",
789 "modifier": {
790 "operator": "minus",
791 "value": 10
792 }
793 },
794 {
795 "name": "set_parameter_from_group_max",
796 "parameter_name": "pmic_dvfs_decrease_temp",
797 "modifier": {
798 "operator": "minus",
799 "value": 13
800 }
801 }
802 ]
803 },
804 {
805 "name": "Set internal memory buffer DVFS parameter",
806 "groups": [
807 {
808 "name": "internal memory buffer dvfs temp",
809 "interface": "xyz.openbmc_project.Sensor.Value",
810 "property": { "name": "Value" }
811 }
812 ],
813 "triggers": [
814 {
815 "class": "init",
816 "method": "get_properties"
817 },
818 {
819 "class": "signal",
820 "signal": "properties_changed"
821 },
822 {
823 "class": "signal",
824 "signal": "interfaces_added"
825 }
826 ],
827 "actions": [
828 {
829 "name": "set_parameter_from_group_max",
830 "parameter_name": "intmb_dvfs_increase_temp",
831 "modifier": {
832 "operator": "minus",
833 "value": 10
834 }
835 },
836 {
837 "name": "set_parameter_from_group_max",
838 "parameter_name": "intmb_dvfs_decrease_temp",
839 "modifier": {
840 "operator": "minus",
841 "value": 13
842 }
843 }
844 ]
845 },
846 {
847 "name": "Set DRAM and external memory buffer DVFS parameter",
848 "groups": [
849 {
850 "name": "dram and external memory buffer dvfs temp",
851 "interface": "xyz.openbmc_project.Sensor.Value",
852 "property": { "name": "Value" }
853 }
854 ],
855 "triggers": [
856 {
857 "class": "init",
858 "method": "get_properties"
859 },
860 {
861 "class": "signal",
862 "signal": "properties_changed"
863 },
864 {
865 "class": "signal",
866 "signal": "interfaces_added"
867 }
868 ],
869 "actions": [
870 {
871 "name": "set_parameter_from_group_max",
872 "parameter_name": "dram_extmb_dvfs_increase_temp",
873 "modifier": {
874 "operator": "minus",
875 "value": 10
876 }
877 },
878 {
879 "name": "set_parameter_from_group_max",
880 "parameter_name": "dram_extmb_dvfs_decrease_temp",
881 "modifier": {
882 "operator": "minus",
883 "value": 13
884 }
885 }
886 ]
887 },
888 {
889 "name": "Set external memory buffer DVFS parameter",
890 "groups": [
891 {
892 "name": "external memory buffer dvfs temp",
893 "interface": "xyz.openbmc_project.Sensor.Value",
894 "property": { "name": "Value" }
895 }
896 ],
897 "triggers": [
898 {
899 "class": "init",
900 "method": "get_properties"
901 },
902 {
903 "class": "signal",
904 "signal": "properties_changed"
905 },
906 {
907 "class": "signal",
908 "signal": "interfaces_added"
909 }
910 ],
911 "actions": [
912 {
913 "name": "set_parameter_from_group_max",
914 "parameter_name": "extmb_dvfs_increase_temp",
915 "modifier": {
916 "operator": "minus",
917 "value": 7
918 }
919 },
920 {
921 "name": "set_parameter_from_group_max",
922 "parameter_name": "extmb_dvfs_decrease_temp",
923 "modifier": {
924 "operator": "minus",
925 "value": 10
926 }
927 }
928 ]
929 },
930 {
Patrick Williamsa49e3f12022-12-08 06:12:40 -0600931 // Collect group temperatures each iteration the repeating timer expires
932 "name": "Fan control timer loop",
933 "groups": [
934 {
935 "name": "proc0 core temps",
936 "interface": "xyz.openbmc_project.Sensor.Value",
937 "property": { "name": "Value" }
938 },
939 {
940 "name": "proc1 core temps",
941 "interface": "xyz.openbmc_project.Sensor.Value",
942 "property": { "name": "Value" }
943 },
944 {
945 "name": "proc2 core temps",
946 "interface": "xyz.openbmc_project.Sensor.Value",
947 "property": { "name": "Value" }
948 },
949 {
950 "name": "proc3 core temps",
951 "interface": "xyz.openbmc_project.Sensor.Value",
952 "property": { "name": "Value" }
953 },
954 {
955 "name": "proc0 ioring temp",
956 "interface": "xyz.openbmc_project.Sensor.Value",
957 "property": { "name": "Value" }
958 },
959 {
960 "name": "proc1 ioring temp",
961 "interface": "xyz.openbmc_project.Sensor.Value",
962 "property": { "name": "Value" }
963 },
964 {
965 "name": "proc2 ioring temp",
966 "interface": "xyz.openbmc_project.Sensor.Value",
967 "property": { "name": "Value" }
968 },
969 {
970 "name": "proc3 ioring temp",
971 "interface": "xyz.openbmc_project.Sensor.Value",
972 "property": { "name": "Value" }
973 },
974 {
975 "name": "dram temps",
976 "interface": "xyz.openbmc_project.Sensor.Value",
977 "property": { "name": "Value" }
978 },
979 {
980 "name": "pmic temps",
981 "interface": "xyz.openbmc_project.Sensor.Value",
982 "property": { "name": "Value" }
983 },
984 {
985 "name": "internal memory buffer temps",
986 "interface": "xyz.openbmc_project.Sensor.Value",
987 "property": { "name": "Value" }
988 },
989 {
990 "name": "dram and external memory buffer temps",
991 "interface": "xyz.openbmc_project.Sensor.Value",
992 "property": { "name": "Value" }
993 },
994 {
995 "name": "external memory buffer temps",
996 "interface": "xyz.openbmc_project.Sensor.Value",
997 "property": { "name": "Value" }
998 },
999 {
1000 "name": "vdd vrm temps",
1001 "interface": "xyz.openbmc_project.Sensor.Value",
1002 "property": { "name": "Value" }
1003 },
1004 {
1005 "name": "nvme temps",
1006 "interface": "xyz.openbmc_project.Sensor.Value",
1007 "property": { "name": "Value" }
1008 },
1009 {
1010 "name": "planar temps",
1011 "interface": "xyz.openbmc_project.Sensor.Value",
1012 "property": { "name": "Value" }
1013 },
1014 {
1015 "name": "flett temps",
1016 "interface": "xyz.openbmc_project.Sensor.Value",
1017 "property": { "name": "Value" }
1018 },
1019 {
1020 "name": "pcie cable card temps",
1021 "interface": "xyz.openbmc_project.Sensor.Value",
1022 "property": { "name": "Value" }
1023 }
1024 ],
1025 "triggers": [
1026 {
1027 "class": "timer",
1028 "type": "repeating",
1029 "interval": 2000000,
1030 "preload_groups": true
1031 }
1032 ],
1033 "actions": [
1034 {
1035 "name": "set_net_increase_target",
1036 "groups": [
1037 {
1038 "name": "proc0 core temps",
1039 "interface": "xyz.openbmc_project.Sensor.Value",
1040 "property": { "name": "Value" }
1041 }
1042 ],
1043 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
1044 "delta": 300
1045 },
1046 {
1047 "name": "set_net_increase_target",
1048 "groups": [
1049 {
1050 "name": "proc1 core temps",
1051 "interface": "xyz.openbmc_project.Sensor.Value",
1052 "property": { "name": "Value" }
1053 }
1054 ],
1055 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
1056 "delta": 300
1057 },
1058 {
1059 "name": "set_net_increase_target",
1060 "groups": [
1061 {
1062 "name": "proc2 core temps",
1063 "interface": "xyz.openbmc_project.Sensor.Value",
1064 "property": { "name": "Value" }
1065 }
1066 ],
1067 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
1068 "delta": 300
1069 },
1070 {
1071 "name": "set_net_increase_target",
1072 "groups": [
1073 {
1074 "name": "proc3 core temps",
1075 "interface": "xyz.openbmc_project.Sensor.Value",
1076 "property": { "name": "Value" }
1077 }
1078 ],
1079 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
1080 "delta": 300
1081 },
1082 {
1083 "name": "set_net_increase_target",
1084 "groups": [
1085 {
1086 "name": "proc0 ioring temp",
1087 "interface": "xyz.openbmc_project.Sensor.Value",
1088 "property": { "name": "Value" }
1089 }
1090 ],
1091 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
1092 "delta": 300
1093 },
1094 {
1095 "name": "set_net_increase_target",
1096 "groups": [
1097 {
1098 "name": "proc1 ioring temp",
1099 "interface": "xyz.openbmc_project.Sensor.Value",
1100 "property": { "name": "Value" }
1101 }
1102 ],
1103 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
1104 "delta": 300
1105 },
1106 {
1107 "name": "set_net_increase_target",
1108 "groups": [
1109 {
1110 "name": "proc2 ioring temp",
1111 "interface": "xyz.openbmc_project.Sensor.Value",
1112 "property": { "name": "Value" }
1113 }
1114 ],
1115 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
1116 "delta": 300
1117 },
1118 {
1119 "name": "set_net_increase_target",
1120 "groups": [
1121 {
1122 "name": "proc3 ioring temp",
1123 "interface": "xyz.openbmc_project.Sensor.Value",
1124 "property": { "name": "Value" }
1125 }
1126 ],
1127 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
1128 "delta": 300
1129 },
1130 {
1131 "name": "set_net_increase_target",
1132 "groups": [
1133 {
1134 "name": "dram temps",
1135 "interface": "xyz.openbmc_project.Sensor.Value",
1136 "property": { "name": "Value" }
1137 }
1138 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001139 "state_parameter_name": "dram_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001140 "delta": 200
1141 },
1142 {
1143 "name": "set_net_increase_target",
1144 "groups": [
1145 {
1146 "name": "pmic temps",
1147 "interface": "xyz.openbmc_project.Sensor.Value",
1148 "property": { "name": "Value" }
1149 }
1150 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001151 "state_parameter_name": "pmic_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001152 "delta": 200
1153 },
1154 {
1155 "name": "set_net_increase_target",
1156 "groups": [
1157 {
1158 "name": "internal memory buffer temps",
1159 "interface": "xyz.openbmc_project.Sensor.Value",
1160 "property": { "name": "Value" }
1161 }
1162 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001163 "state_parameter_name": "intmb_dvfs_increase_temp",
1164 "delta": 100
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001165 },
1166 {
1167 "name": "set_net_increase_target",
1168 "groups": [
1169 {
1170 "name": "dram and external memory buffer temps",
1171 "interface": "xyz.openbmc_project.Sensor.Value",
1172 "property": { "name": "Value" }
1173 }
1174 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001175 "state_parameter_name": "dram_extmb_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001176 "delta": 200
1177 },
1178 {
1179 "name": "set_net_increase_target",
1180 "groups": [
1181 {
1182 "name": "external memory buffer temps",
1183 "interface": "xyz.openbmc_project.Sensor.Value",
1184 "property": { "name": "Value" }
1185 }
1186 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001187 "state_parameter_name": "extmb_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001188 "delta": 200
1189 },
1190 {
1191 "name": "set_net_increase_target",
1192 "groups": [
1193 {
1194 "name": "vdd vrm temps",
1195 "interface": "xyz.openbmc_project.Sensor.Value",
1196 "property": { "name": "Value" }
1197 }
1198 ],
1199 "state": 82.0,
1200 "delta": 300
1201 },
1202 {
1203 "name": "set_net_increase_target",
1204 "groups": [
1205 {
1206 "name": "nvme temps",
1207 "interface": "xyz.openbmc_project.Sensor.Value",
1208 "property": { "name": "Value" }
1209 }
1210 ],
1211 "state": 58.0,
1212 "delta": 200
1213 },
1214 {
1215 "name": "set_net_increase_target",
1216 "groups": [
1217 {
1218 "name": "planar temps",
1219 "interface": "xyz.openbmc_project.Sensor.Value",
1220 "property": { "name": "Value" }
1221 }
1222 ],
1223 "state": 65.0,
1224 "delta": 255
1225 },
1226 {
1227 "name": "set_net_increase_target",
1228 "groups": [
1229 {
1230 "name": "flett temps",
1231 "interface": "xyz.openbmc_project.Sensor.Value",
1232 "property": { "name": "Value" }
1233 }
1234 ],
1235 "state": 80.0,
1236 "delta": 200
1237 },
1238 {
1239 "name": "set_net_increase_target",
1240 "groups": [
1241 {
1242 "name": "pcie cable card temps",
1243 "interface": "xyz.openbmc_project.Sensor.Value",
1244 "property": { "name": "Value" }
1245 }
1246 ],
1247 "state": 70.0,
1248 "delta": 255
1249 },
1250 {
1251 "name": "set_net_decrease_target",
1252 "groups": [
1253 {
1254 "name": "proc0 core temps",
1255 "interface": "xyz.openbmc_project.Sensor.Value",
1256 "property": { "name": "Value" }
1257 }
1258 ],
1259 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1260 "delta": 50
1261 },
1262 {
1263 "name": "set_net_decrease_target",
1264 "groups": [
1265 {
1266 "name": "proc1 core temps",
1267 "interface": "xyz.openbmc_project.Sensor.Value",
1268 "property": { "name": "Value" }
1269 }
1270 ],
1271 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1272 "delta": 50
1273 },
1274 {
1275 "name": "set_net_decrease_target",
1276 "groups": [
1277 {
1278 "name": "proc2 core temps",
1279 "interface": "xyz.openbmc_project.Sensor.Value",
1280 "property": { "name": "Value" }
1281 }
1282 ],
1283 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1284 "delta": 50
1285 },
1286 {
1287 "name": "set_net_decrease_target",
1288 "groups": [
1289 {
1290 "name": "proc3 core temps",
1291 "interface": "xyz.openbmc_project.Sensor.Value",
1292 "property": { "name": "Value" }
1293 }
1294 ],
1295 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1296 "delta": 50
1297 },
1298 {
1299 "name": "set_net_decrease_target",
1300 "groups": [
1301 {
1302 "name": "proc0 ioring temp",
1303 "interface": "xyz.openbmc_project.Sensor.Value",
1304 "property": { "name": "Value" }
1305 }
1306 ],
1307 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1308 "delta": 50
1309 },
1310 {
1311 "name": "set_net_decrease_target",
1312 "groups": [
1313 {
1314 "name": "proc1 ioring temp",
1315 "interface": "xyz.openbmc_project.Sensor.Value",
1316 "property": { "name": "Value" }
1317 }
1318 ],
1319 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1320 "delta": 50
1321 },
1322 {
1323 "name": "set_net_decrease_target",
1324 "groups": [
1325 {
1326 "name": "proc2 ioring temp",
1327 "interface": "xyz.openbmc_project.Sensor.Value",
1328 "property": { "name": "Value" }
1329 }
1330 ],
1331 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1332 "delta": 50
1333 },
1334 {
1335 "name": "set_net_decrease_target",
1336 "groups": [
1337 {
1338 "name": "proc3 ioring temp",
1339 "interface": "xyz.openbmc_project.Sensor.Value",
1340 "property": { "name": "Value" }
1341 }
1342 ],
1343 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1344 "delta": 50
1345 },
1346 {
1347 "name": "set_net_decrease_target",
1348 "groups": [
1349 {
1350 "name": "dram temps",
1351 "interface": "xyz.openbmc_project.Sensor.Value",
1352 "property": { "name": "Value" }
1353 }
1354 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001355 "state_parameter_name": "dram_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001356 "delta": 50
1357 },
1358 {
1359 "name": "set_net_decrease_target",
1360 "groups": [
1361 {
1362 "name": "pmic temps",
1363 "interface": "xyz.openbmc_project.Sensor.Value",
1364 "property": { "name": "Value" }
1365 }
1366 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001367 "state_parameter_name": "pmic_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001368 "delta": 50
1369 },
1370 {
1371 "name": "set_net_decrease_target",
1372 "groups": [
1373 {
1374 "name": "internal memory buffer temps",
1375 "interface": "xyz.openbmc_project.Sensor.Value",
1376 "property": { "name": "Value" }
1377 }
1378 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001379 "state_parameter_name": "intmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001380 "delta": 50
1381 },
1382 {
1383 "name": "set_net_decrease_target",
1384 "groups": [
1385 {
1386 "name": "dram and external memory buffer temps",
1387 "interface": "xyz.openbmc_project.Sensor.Value",
1388 "property": { "name": "Value" }
1389 }
1390 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001391 "state_parameter_name": "dram_extmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001392 "delta": 50
1393 },
1394 {
1395 "name": "set_net_decrease_target",
1396 "groups": [
1397 {
1398 "name": "external memory buffer temps",
1399 "interface": "xyz.openbmc_project.Sensor.Value",
1400 "property": { "name": "Value" }
1401 }
1402 ],
Matt Spinler1d6b4452023-11-09 13:29:31 -06001403 "state_parameter_name": "extmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001404 "delta": 50
1405 },
1406 {
1407 "name": "set_net_decrease_target",
1408 "groups": [
1409 {
1410 "name": "vdd vrm temps",
1411 "interface": "xyz.openbmc_project.Sensor.Value",
1412 "property": { "name": "Value" }
1413 }
1414 ],
1415 "state": 79.0,
1416 "delta": 50
1417 },
1418 {
1419 "name": "set_net_decrease_target",
1420 "groups": [
1421 {
1422 "name": "nvme temps",
1423 "interface": "xyz.openbmc_project.Sensor.Value",
1424 "property": { "name": "Value" }
1425 }
1426 ],
1427 "state": 55.0,
1428 "delta": 50
1429 },
1430 {
1431 "name": "set_net_decrease_target",
1432 "groups": [
1433 {
1434 "name": "planar temps",
1435 "interface": "xyz.openbmc_project.Sensor.Value",
1436 "property": { "name": "Value" }
1437 }
1438 ],
1439 "state": 60.0,
1440 "delta": 50
1441 },
1442 {
1443 "name": "set_net_decrease_target",
1444 "groups": [
1445 {
1446 "name": "flett temps",
1447 "interface": "xyz.openbmc_project.Sensor.Value",
1448 "property": { "name": "Value" }
1449 }
1450 ],
1451 "state": 75.0,
1452 "delta": 40
1453 },
1454 {
1455 "name": "set_net_decrease_target",
1456 "groups": [
1457 {
1458 "name": "pcie cable card temps",
1459 "interface": "xyz.openbmc_project.Sensor.Value",
1460 "property": { "name": "Value" }
1461 }
1462 ],
1463 "state": 65.0,
1464 "delta": 50
1465 }
1466 ]
1467 },
1468 {
1469 // Remove NVMe temperature objects from cache when they are removed from
1470 // dbus. There's no need to react to their removal.
1471 "name": "remove nvme objects",
1472 "groups": [
1473 {
1474 "name": "nvme temps",
1475 "interface": "xyz.openbmc_project.Sensor.Value",
1476 "property": { "name": "Value" }
1477 },
1478 {
1479 "name": "nvme temps",
1480 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1481 "property": { "name": "Functional" }
1482 }
1483 ],
1484 "triggers": [
1485 {
1486 "class": "signal",
1487 "signal": "interfaces_removed"
1488 }
1489 ]
1490 },
1491 {
1492 "name": "set pcie floor index",
1493 "groups": [
1494 {
1495 "name": "pcie slots",
1496 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1497 "property": {
1498 "name": "PowerState"
1499 }
1500 },
1501 {
1502 "name": "pcie cards",
1503 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1504 "property": {
1505 "name": "Function0DeviceId"
1506 }
1507 },
1508 {
1509 "name": "pcie cards",
1510 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1511 "property": {
1512 "name": "Function0VendorId"
1513 }
1514 },
1515 {
1516 "name": "pcie cards",
1517 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1518 "property": {
1519 "name": "Function0SubsystemId"
1520 }
1521 },
1522 {
1523 "name": "pcie cards",
1524 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1525 "property": {
1526 "name": "Function0SubsystemVendorId"
1527 }
1528 }
1529 ],
1530 "triggers": [
1531 {
1532 "class": "init",
1533 "method": "get_properties"
1534 },
1535 {
1536 "class": "signal",
1537 "signal": "properties_changed"
1538 },
1539 {
1540 "class": "signal",
1541 "signal": "interfaces_added"
1542 }
1543 ],
1544 "actions": [
1545 {
1546 "name": "pcie_card_floors",
1547 "use_config_specific_files": true,
1548 "settle_time": 2
1549 }
1550 ]
1551 },
1552 {
1553 "name": "Set altitude offset parameter",
1554 "groups": [
1555 {
1556 "name": "altitude",
1557 "interface": "xyz.openbmc_project.Sensor.Value",
1558 "property": { "name": "Value" }
1559 }
1560 ],
1561 "triggers": [
1562 {
1563 "class": "init",
1564 "method": "get_properties"
1565 },
1566 {
1567 "class": "signal",
1568 "signal": "interfaces_added"
1569 },
1570 {
1571 // Refresh altitude every 24hrs
1572 "class": "timer",
1573 "type": "repeating",
1574 "interval": 86400000000,
1575 "preload_groups": true
1576 }
1577 ],
1578 "actions": [
1579 {
1580 "name": "set_parameter_from_group_max",
1581 "parameter_name": "altitude_offset",
1582 "modifier": {
1583 "operator": "less_than",
1584 "default_value": 3000,
1585 "value": [
1586 { "arg_value": 1000, "parameter_value": 0 },
1587 { "arg_value": 1900, "parameter_value": 1000 },
1588 { "arg_value": 2800, "parameter_value": 2000 }
1589 ]
1590 }
1591 }
1592 ]
1593 },
1594 {
1595 "name": "Fan floors",
1596 "groups": [
1597 {
1598 "name": "ambient temp",
1599 "interface": "xyz.openbmc_project.Sensor.Value",
1600 "property": { "name": "Value" }
1601 },
1602 {
1603 "name": "power mode",
1604 "interface": "xyz.openbmc_project.Control.Power.Mode",
1605 "property": { "name": "PowerMode" }
1606 }
1607 ],
1608 "triggers": [
1609 {
1610 "class": "init",
1611 "method": "get_properties"
1612 },
1613 {
1614 "class": "signal",
1615 "signal": "properties_changed"
1616 },
1617 {
1618 "class": "signal",
1619 "signal": "interfaces_added"
1620 },
1621 {
1622 "class": "parameter",
1623 "parameter": "pcie_floor_index"
1624 },
1625 {
1626 "class": "parameter",
1627 "parameter": "altitude_offset"
1628 }
1629 ],
1630 "actions": [
1631 {
1632 "name": "mapped_floor",
1633 "key_group": "ambient temp",
1634 "fan_floors": [
1635 {
1636 // Entry valid for ambient temp < 27
1637 "key": 27,
1638 "default_floor": 5000,
1639 "floor_offset_parameter": "altitude_offset",
1640 "floors": [
1641 {
1642 "parameter": "pcie_floor_index",
1643 "floors": [
1644 { "value": 1, "floor": 7000 },
1645 { "value": 2, "floor": 8000 },
1646 { "value": 3, "floor": 9000 }
1647 ]
1648 }
1649 ]
1650 },
1651 {
1652 // Entry valid for ambient temp < 32
1653 "key": 32,
1654 "default_floor": 6000,
1655 "floor_offset_parameter": "altitude_offset",
1656 "floors": [
1657 {
1658 "parameter": "pcie_floor_index",
1659 "floors": [
1660 { "value": 1, "floor": 8000 },
1661 { "value": 2, "floor": 9000 },
1662 { "value": 3, "floor": 9500 }
1663 ]
1664 }
1665 ]
1666 },
1667 {
1668 // Entry valid for ambient temp < 37
1669 "key": 37,
1670 "default_floor": 7000,
1671 "floor_offset_parameter": "altitude_offset",
1672 "floors": [
1673 {
1674 "parameter": "pcie_floor_index",
1675 "floors": [
1676 { "value": 1, "floor": 9000 },
1677 { "value": 2, "floor": 9500 },
1678 { "value": 3, "floor": 10400 }
1679 ]
1680 }
1681 ]
1682 },
1683 {
1684 // Entry valid for ambient temp < 42
1685 "key": 42,
1686 "default_floor": 8000,
1687 "floor_offset_parameter": "altitude_offset",
1688 "floors": [
1689 {
1690 "parameter": "pcie_floor_index",
1691 "floors": [
1692 { "value": 1, "floor": 9500 },
1693 { "value": 2, "floor": 10400 },
1694 { "value": 3, "floor": 10400 }
1695 ]
1696 }
1697 ]
1698 }
1699 ]
1700 }
1701 ]
1702 }
Matthew Barth23dcffd2021-10-19 13:36:51 -05001703]