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