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