blob: 45e4c4413797b3aa5ea3406df3fe11352793857e [file] [log] [blame]
Matt Spinlera75f61e2022-05-11 13:26:52 -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": 11300
28 }
Matt Spinlera75f61e2022-05-11 13:26:52 -050029 ]
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 "triggers": [
57 {
58 "class": "init",
59 "method": "get_properties"
60 },
61 {
62 "class": "signal",
63 "signal": "properties_changed"
64 }
65 ],
66 "actions": [
67 {
68 "name": "count_state_before_target",
69 "count": 2,
70 "state": false,
71 "target": 11300
72 }
73 ]
74 },
75 {
76 // (for the following 4 rules)
77 // if a dual-rotor fan becomes non-functional, lock its speed to
78 // poweron_target to lock the other rotor to full_speed
79 "name": "nonfunc rotor override-0",
80 "groups": [
81 {
82 "name": "fan0 rotor inventory",
83 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
84 "property": { "name": "Functional" }
85 }
86 ],
87 "triggers": [
88 {
89 "class": "init",
90 "method": "get_properties"
91 },
92 {
93 "class": "signal",
94 "signal": "properties_changed"
95 }
96 ],
97 "actions": [
98 {
99 "name": "override_fan_target",
100 "count": 1,
101 "state": false,
102 "fans": ["fan0"],
103 "target": 11300
104 }
105 ]
106 },
107 {
108 "name": "nonfunc rotor override-1",
109 "groups": [
110 {
111 "name": "fan1 rotor inventory",
112 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
113 "property": { "name": "Functional" }
114 }
115 ],
116 "triggers": [
117 {
118 "class": "init",
119 "method": "get_properties"
120 },
121 {
122 "class": "signal",
123 "signal": "properties_changed"
124 }
125 ],
126 "actions": [
127 {
128 "name": "override_fan_target",
129 "count": 1,
130 "state": false,
131 "fans": ["fan1"],
132 "target": 11300
133 }
134 ]
135 },
136 {
137 "name": "nonfunc rotor override-2",
138 "groups": [
139 {
140 "name": "fan2 rotor inventory",
141 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
142 "property": { "name": "Functional" }
143 }
144 ],
145 "triggers": [
146 {
147 "class": "init",
148 "method": "get_properties"
149 },
150 {
151 "class": "signal",
152 "signal": "properties_changed"
153 }
154 ],
155 "actions": [
156 {
157 "name": "override_fan_target",
158 "count": 1,
159 "state": false,
160 "fans": ["fan2"],
161 "target": 11300
162 }
163 ]
164 },
165 {
166 "name": "nonfunc rotor override-3",
167 "groups": [
168 {
169 "name": "fan3 rotor inventory",
170 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
171 "property": { "name": "Functional" }
172 }
173 ],
174 "triggers": [
175 {
176 "class": "init",
177 "method": "get_properties"
178 },
179 {
180 "class": "signal",
181 "signal": "properties_changed"
182 }
183 ],
184 "actions": [
185 {
186 "name": "override_fan_target",
187 "count": 1,
188 "state": false,
189 "fans": ["fan3"],
190 "target": 11300
191 }
192 ]
193 },
194 {
195 // Hold fans at the given target when any critical service
196 // is not running for 5 seconds.
197 "name": "service(s) missing",
198 "groups": [
199 {
200 "name": "fan inventory",
201 "interface": "xyz.openbmc_project.Inventory.Item",
202 "property": { "name": "Present" }
203 },
204 {
205 "name": "occ objects",
206 "interface": "org.open_power.OCC.Status",
207 "property": { "name": "OccActive" }
208 },
209 {
210 "name": "nvme temps",
211 "interface": "xyz.openbmc_project.Sensor.Value",
212 "property": { "name": "Value" }
213 },
214 {
215 "name": "planar temps",
216 "interface": "xyz.openbmc_project.Sensor.Value",
217 "property": { "name": "Value" }
218 },
219 {
220 "name": "pcie cable card temps",
221 "interface": "xyz.openbmc_project.Sensor.Value",
222 "property": { "name": "Value" }
223 },
224 {
225 "name": "ambient temp",
226 "interface": "xyz.openbmc_project.Sensor.Value",
227 "property": { "name": "Value" }
228 },
229 {
230 "name": "altitude",
231 "interface": "xyz.openbmc_project.Sensor.Value",
232 "property": { "name": "Value" }
233 }
234 ],
235 "triggers": [
236 {
237 "class": "init",
238 "method": "name_has_owner"
239 },
240 {
241 "class": "signal",
242 "signal": "name_owner_changed"
243 }
244 ],
245 "actions": [
246 {
247 "name": "call_actions_based_on_timer",
248 "timer": {
249 "interval": 5000000,
250 "type": "oneshot"
251 },
252 "actions": [
253 {
254 "name": "set_target_on_missing_owner",
255 "groups": [
256 {
257 "name": "fan inventory",
258 "interface": "xyz.openbmc_project.Inventory.Item",
259 "property": { "name": "Present" }
260 },
261 {
262 "name": "occ objects",
263 "interface": "org.open_power.OCC.Status",
264 "property": { "name": "OccActive" }
265 },
266 {
267 "name": "nvme temps",
268 "interface": "xyz.openbmc_project.Sensor.Value",
269 "property": { "name": "Value" }
270 },
271 {
272 "name": "planar temps",
273 "interface": "xyz.openbmc_project.Sensor.Value",
274 "property": { "name": "Value" }
275 },
276 {
277 "name": "pcie cable card temps",
278 "interface": "xyz.openbmc_project.Sensor.Value",
279 "property": { "name": "Value" }
280 },
281 {
282 "name": "ambient temp",
283 "interface": "xyz.openbmc_project.Sensor.Value",
284 "property": { "name": "Value" }
285 }
286 ],
287 "target": 9700
288 }
289 ]
290 }
291 ]
292 },
293 {
294 // Set a fan floor if an OCC isn't active
295 "name": "Non-active OCC(s)",
296 "groups": [
297 {
298 "name": "occ objects",
299 "interface": "org.open_power.OCC.Status",
300 "property": {
301 "name": "OccActive"
302 }
303 }
304 ],
305 "triggers": [
306 {
307 "class": "signal",
308 "signal": "properties_changed"
309 },
310 {
311 "class": "signal",
312 "signal": "interfaces_added"
313 },
314 {
315 "class": "init",
316 "method": "get_properties"
317 }
318 ],
319 "actions": [
320 {
321 "name": "count_state_floor",
322 "count": 1,
323 "state": false,
324 "floor": 11300
325 }
326 ]
327 },
328 {
329 // Set a raised fan floor when any temperature or altitude sensor is
330 // nonfunctional
331 "name": "Nonfunctional temperature sensors",
332 "groups": [
333 {
334 "name": "proc0 core temps",
335 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
336 "property": { "name": "Functional" }
337 },
338 {
339 "name": "proc1 core temps",
340 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
341 "property": { "name": "Functional" }
342 },
343 {
344 "name": "proc2 core temps",
345 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
346 "property": { "name": "Functional" }
347 },
348 {
349 "name": "proc3 core temps",
350 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
351 "property": { "name": "Functional" }
352 },
353 {
354 "name": "proc4 core temps",
355 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
356 "property": { "name": "Functional" }
357 },
358 {
359 "name": "proc5 core temps",
360 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
361 "property": { "name": "Functional" }
362 },
363 {
364 "name": "proc6 core temps",
365 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
366 "property": { "name": "Functional" }
367 },
368 {
369 "name": "proc7 core temps",
370 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
371 "property": { "name": "Functional" }
372 },
373 {
374 "name": "proc0 ioring temp",
375 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
376 "property": { "name": "Functional" }
377 },
378 {
379 "name": "proc1 ioring temp",
380 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
381 "property": { "name": "Functional" }
382 },
383 {
384 "name": "proc2 ioring temp",
385 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
386 "property": { "name": "Functional" }
387 },
388 {
389 "name": "proc3 ioring temp",
390 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
391 "property": { "name": "Functional" }
392 },
393 {
394 "name": "proc4 ioring temp",
395 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
396 "property": { "name": "Functional" }
397 },
398 {
399 "name": "proc5 ioring temp",
400 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
401 "property": { "name": "Functional" }
402 },
403 {
404 "name": "proc6 ioring temp",
405 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
406 "property": { "name": "Functional" }
407 },
408 {
409 "name": "proc7 ioring temp",
410 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
411 "property": { "name": "Functional" }
412 },
413 {
414 "name": "dram temps",
415 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
416 "property": { "name": "Functional" }
417 },
418 {
419 "name": "pmic temps",
420 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
421 "property": { "name": "Functional" }
422 },
423 {
424 "name": "internal memory buffer temps",
425 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
426 "property": { "name": "Functional" }
427 },
428 {
429 "name": "dram and external memory buffer temps",
430 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
431 "property": { "name": "Functional" }
432 },
433 {
434 "name": "external memory buffer temps",
435 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
436 "property": { "name": "Functional" }
437 },
438 {
439 "name": "vdd vrm temps",
440 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
441 "property": { "name": "Functional" }
442 },
443 {
444 "name": "nvme temps",
445 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
446 "property": { "name": "Functional" }
447 },
448 {
449 "name": "planar temps",
450 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
451 "property": { "name": "Functional" }
452 },
453 {
454 "name": "pcie cable card temps",
455 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
456 "property": { "name": "Functional" }
457 },
458 {
459 "name": "ambient temp",
460 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
461 "property": { "name": "Functional" }
462 },
463 {
464 "name": "altitude",
465 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
466 "property": { "name": "Functional" }
467 }
468 ],
469 "triggers": [
470 {
471 "class": "signal",
472 "signal": "properties_changed"
473 },
474 {
475 "class": "signal",
476 "signal": "interfaces_added"
477 },
478 {
479 "class": "signal",
480 "signal": "interfaces_removed"
481 },
482 {
483 "class": "init",
484 "method": "get_properties"
485 }
486 ],
487 "actions": [
488 {
489 "name": "count_state_floor",
490 "count": 1,
491 "state": false,
492 "floor": 11300
493 }
494 ]
495 },
496 {
497 "name": "Set Proc 0 Core DVFS parameter",
498 "groups": [
499 {
500 "name": "proc 0 core dvfs temp",
501 "interface": "xyz.openbmc_project.Sensor.Value",
502 "property": { "name": "Value" }
503 }
504 ],
505 "triggers": [
506 {
507 "class": "init",
508 "method": "get_properties"
509 },
510 {
511 "class": "signal",
512 "signal": "interfaces_added"
513 },
514 {
515 "class": "signal",
516 "signal": "properties_changed"
517 }
518 ],
519 "actions": [
520 {
521 "name": "set_parameter_from_group_max",
522 "parameter_name": "proc_0_core_dvfs_increase_temp",
523 "modifier": {
524 "operator": "minus",
525 "value": 7
526 }
527 },
528 {
529 "name": "set_parameter_from_group_max",
530 "parameter_name": "proc_0_core_dvfs_decrease_temp",
531 "modifier": {
532 "operator": "minus",
533 "value": 9
534 }
535 }
536 ]
537 },
538 {
539 "name": "Set Proc 1 Core DVFS parameter",
540 "groups": [
541 {
542 "name": "proc 1 core dvfs temp",
543 "interface": "xyz.openbmc_project.Sensor.Value",
544 "property": { "name": "Value" }
545 }
546 ],
547 "triggers": [
548 {
549 "class": "init",
550 "method": "get_properties"
551 },
552 {
553 "class": "signal",
554 "signal": "interfaces_added"
555 },
556 {
557 "class": "signal",
558 "signal": "properties_changed"
559 }
560 ],
561 "actions": [
562 {
563 "name": "set_parameter_from_group_max",
564 "parameter_name": "proc_1_core_dvfs_increase_temp",
565 "modifier": {
566 "operator": "minus",
567 "value": 7
568 }
569 },
570 {
571 "name": "set_parameter_from_group_max",
572 "parameter_name": "proc_1_core_dvfs_decrease_temp",
573 "modifier": {
574 "operator": "minus",
575 "value": 9
576 }
577 }
578 ]
579 },
580 {
581 "name": "Set Proc 2 Core DVFS parameter",
582 "groups": [
583 {
584 "name": "proc 2 core dvfs temp",
585 "interface": "xyz.openbmc_project.Sensor.Value",
586 "property": { "name": "Value" }
587 }
588 ],
589 "triggers": [
590 {
591 "class": "init",
592 "method": "get_properties"
593 },
594 {
595 "class": "signal",
596 "signal": "interfaces_added"
597 },
598 {
599 "class": "signal",
600 "signal": "properties_changed"
601 }
602 ],
603 "actions": [
604 {
605 "name": "set_parameter_from_group_max",
606 "parameter_name": "proc_2_core_dvfs_increase_temp",
607 "modifier": {
608 "operator": "minus",
609 "value": 7
610 }
611 },
612 {
613 "name": "set_parameter_from_group_max",
614 "parameter_name": "proc_2_core_dvfs_decrease_temp",
615 "modifier": {
616 "operator": "minus",
617 "value": 9
618 }
619 }
620 ]
621 },
622 {
623 "name": "Set Proc 3 Core DVFS parameter",
624 "groups": [
625 {
626 "name": "proc 3 core dvfs temp",
627 "interface": "xyz.openbmc_project.Sensor.Value",
628 "property": { "name": "Value" }
629 }
630 ],
631 "triggers": [
632 {
633 "class": "init",
634 "method": "get_properties"
635 },
636 {
637 "class": "signal",
638 "signal": "interfaces_added"
639 },
640 {
641 "class": "signal",
642 "signal": "properties_changed"
643 }
644 ],
645 "actions": [
646 {
647 "name": "set_parameter_from_group_max",
648 "parameter_name": "proc_3_core_dvfs_increase_temp",
649 "modifier": {
650 "operator": "minus",
651 "value": 7
652 }
653 },
654 {
655 "name": "set_parameter_from_group_max",
656 "parameter_name": "proc_3_core_dvfs_decrease_temp",
657 "modifier": {
658 "operator": "minus",
659 "value": 9
660 }
661 }
662 ]
663 },
664 {
665 "name": "Set Proc 4 Core DVFS parameter",
666 "groups": [
667 {
668 "name": "proc 4 core dvfs temp",
669 "interface": "xyz.openbmc_project.Sensor.Value",
670 "property": { "name": "Value" }
671 }
672 ],
673 "triggers": [
674 {
675 "class": "init",
676 "method": "get_properties"
677 },
678 {
679 "class": "signal",
680 "signal": "interfaces_added"
681 },
682 {
683 "class": "signal",
684 "signal": "properties_changed"
685 }
686 ],
687 "actions": [
688 {
689 "name": "set_parameter_from_group_max",
690 "parameter_name": "proc_4_core_dvfs_increase_temp",
691 "modifier": {
692 "operator": "minus",
693 "value": 7
694 }
695 },
696 {
697 "name": "set_parameter_from_group_max",
698 "parameter_name": "proc_4_core_dvfs_decrease_temp",
699 "modifier": {
700 "operator": "minus",
701 "value": 9
702 }
703 }
704 ]
705 },
706 {
707 "name": "Set Proc 5 Core DVFS parameter",
708 "groups": [
709 {
710 "name": "proc 5 core dvfs temp",
711 "interface": "xyz.openbmc_project.Sensor.Value",
712 "property": { "name": "Value" }
713 }
714 ],
715 "triggers": [
716 {
717 "class": "init",
718 "method": "get_properties"
719 },
720 {
721 "class": "signal",
722 "signal": "interfaces_added"
723 },
724 {
725 "class": "signal",
726 "signal": "properties_changed"
727 }
728 ],
729 "actions": [
730 {
731 "name": "set_parameter_from_group_max",
732 "parameter_name": "proc_5_core_dvfs_increase_temp",
733 "modifier": {
734 "operator": "minus",
735 "value": 7
736 }
737 },
738 {
739 "name": "set_parameter_from_group_max",
740 "parameter_name": "proc_5_core_dvfs_decrease_temp",
741 "modifier": {
742 "operator": "minus",
743 "value": 9
744 }
745 }
746 ]
747 },
748 {
749 "name": "Set Proc 6 Core DVFS parameter",
750 "groups": [
751 {
752 "name": "proc 6 core dvfs temp",
753 "interface": "xyz.openbmc_project.Sensor.Value",
754 "property": { "name": "Value" }
755 }
756 ],
757 "triggers": [
758 {
759 "class": "init",
760 "method": "get_properties"
761 },
762 {
763 "class": "signal",
764 "signal": "interfaces_added"
765 },
766 {
767 "class": "signal",
768 "signal": "properties_changed"
769 }
770 ],
771 "actions": [
772 {
773 "name": "set_parameter_from_group_max",
774 "parameter_name": "proc_6_core_dvfs_increase_temp",
775 "modifier": {
776 "operator": "minus",
777 "value": 7
778 }
779 },
780 {
781 "name": "set_parameter_from_group_max",
782 "parameter_name": "proc_6_core_dvfs_decrease_temp",
783 "modifier": {
784 "operator": "minus",
785 "value": 9
786 }
787 }
788 ]
789 },
790 {
791 "name": "Set Proc 7 Core DVFS parameter",
792 "groups": [
793 {
794 "name": "proc 7 core dvfs temp",
795 "interface": "xyz.openbmc_project.Sensor.Value",
796 "property": { "name": "Value" }
797 }
798 ],
799 "triggers": [
800 {
801 "class": "init",
802 "method": "get_properties"
803 },
804 {
805 "class": "signal",
806 "signal": "interfaces_added"
807 },
808 {
809 "class": "signal",
810 "signal": "properties_changed"
811 }
812 ],
813 "actions": [
814 {
815 "name": "set_parameter_from_group_max",
816 "parameter_name": "proc_7_core_dvfs_increase_temp",
817 "modifier": {
818 "operator": "minus",
819 "value": 7
820 }
821 },
822 {
823 "name": "set_parameter_from_group_max",
824 "parameter_name": "proc_7_core_dvfs_decrease_temp",
825 "modifier": {
826 "operator": "minus",
827 "value": 9
828 }
829 }
830 ]
831 },
832 {
833 "name": "Set Proc 0 IO Ring DVFS parameter",
834 "groups": [
835 {
836 "name": "proc 0 ioring dvfs temp",
837 "interface": "xyz.openbmc_project.Sensor.Value",
838 "property": { "name": "Value" }
839 }
840 ],
841 "triggers": [
842 {
843 "class": "init",
844 "method": "get_properties"
845 },
846 {
847 "class": "signal",
848 "signal": "interfaces_added"
849 },
850 {
851 "class": "signal",
852 "signal": "properties_changed"
853 }
854 ],
855 "actions": [
856 {
857 "name": "set_parameter_from_group_max",
858 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
859 "modifier": {
860 "operator": "minus",
861 "value": 10
862 }
863 },
864 {
865 "name": "set_parameter_from_group_max",
866 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
867 "modifier": {
868 "operator": "minus",
869 "value": 13
870 }
871 }
872 ]
873 },
874 {
875 "name": "Set Proc 1 IO Ring DVFS parameter",
876 "groups": [
877 {
878 "name": "proc 1 ioring dvfs temp",
879 "interface": "xyz.openbmc_project.Sensor.Value",
880 "property": { "name": "Value" }
881 }
882 ],
883 "triggers": [
884 {
885 "class": "init",
886 "method": "get_properties"
887 },
888 {
889 "class": "signal",
890 "signal": "interfaces_added"
891 },
892 {
893 "class": "signal",
894 "signal": "properties_changed"
895 }
896 ],
897 "actions": [
898 {
899 "name": "set_parameter_from_group_max",
900 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
901 "modifier": {
902 "operator": "minus",
903 "value": 10
904 }
905 },
906 {
907 "name": "set_parameter_from_group_max",
908 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
909 "modifier": {
910 "operator": "minus",
911 "value": 13
912 }
913 }
914 ]
915 },
916 {
917 "name": "Set Proc 2 IO Ring DVFS parameter",
918 "groups": [
919 {
920 "name": "proc 2 ioring dvfs temp",
921 "interface": "xyz.openbmc_project.Sensor.Value",
922 "property": { "name": "Value" }
923 }
924 ],
925 "triggers": [
926 {
927 "class": "init",
928 "method": "get_properties"
929 },
930 {
931 "class": "signal",
932 "signal": "interfaces_added"
933 },
934 {
935 "class": "signal",
936 "signal": "properties_changed"
937 }
938 ],
939 "actions": [
940 {
941 "name": "set_parameter_from_group_max",
942 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
943 "modifier": {
944 "operator": "minus",
945 "value": 10
946 }
947 },
948 {
949 "name": "set_parameter_from_group_max",
950 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
951 "modifier": {
952 "operator": "minus",
953 "value": 13
954 }
955 }
956 ]
957 },
958 {
959 "name": "Set Proc 3 IO Ring DVFS parameter",
960 "groups": [
961 {
962 "name": "proc 3 ioring dvfs temp",
963 "interface": "xyz.openbmc_project.Sensor.Value",
964 "property": { "name": "Value" }
965 }
966 ],
967 "triggers": [
968 {
969 "class": "init",
970 "method": "get_properties"
971 },
972 {
973 "class": "signal",
974 "signal": "properties_changed"
975 },
976 {
977 "class": "signal",
978 "signal": "interfaces_added"
979 }
980 ],
981 "actions": [
982 {
983 "name": "set_parameter_from_group_max",
984 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
985 "modifier": {
986 "operator": "minus",
987 "value": 10
988 }
989 },
990 {
991 "name": "set_parameter_from_group_max",
992 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
993 "modifier": {
994 "operator": "minus",
995 "value": 13
996 }
997 }
998 ]
999 },
1000 {
1001 "name": "Set Proc 4 IO Ring DVFS parameter",
1002 "groups": [
1003 {
1004 "name": "proc 4 ioring dvfs temp",
1005 "interface": "xyz.openbmc_project.Sensor.Value",
1006 "property": { "name": "Value" }
1007 }
1008 ],
1009 "triggers": [
1010 {
1011 "class": "init",
1012 "method": "get_properties"
1013 },
1014 {
1015 "class": "signal",
1016 "signal": "interfaces_added"
1017 },
1018 {
1019 "class": "signal",
1020 "signal": "properties_changed"
1021 }
1022 ],
1023 "actions": [
1024 {
1025 "name": "set_parameter_from_group_max",
1026 "parameter_name": "proc_4_ioring_dvfs_increase_temp",
1027 "modifier": {
1028 "operator": "minus",
1029 "value": 10
1030 }
1031 },
1032 {
1033 "name": "set_parameter_from_group_max",
1034 "parameter_name": "proc_4_ioring_dvfs_decrease_temp",
1035 "modifier": {
1036 "operator": "minus",
1037 "value": 13
1038 }
1039 }
1040 ]
1041 },
1042 {
1043 "name": "Set Proc 5 IO Ring DVFS parameter",
1044 "groups": [
1045 {
1046 "name": "proc 5 ioring dvfs temp",
1047 "interface": "xyz.openbmc_project.Sensor.Value",
1048 "property": { "name": "Value" }
1049 }
1050 ],
1051 "triggers": [
1052 {
1053 "class": "init",
1054 "method": "get_properties"
1055 },
1056 {
1057 "class": "signal",
1058 "signal": "interfaces_added"
1059 },
1060 {
1061 "class": "signal",
1062 "signal": "properties_changed"
1063 }
1064 ],
1065 "actions": [
1066 {
1067 "name": "set_parameter_from_group_max",
1068 "parameter_name": "proc_5_ioring_dvfs_increase_temp",
1069 "modifier": {
1070 "operator": "minus",
1071 "value": 10
1072 }
1073 },
1074 {
1075 "name": "set_parameter_from_group_max",
1076 "parameter_name": "proc_5_ioring_dvfs_decrease_temp",
1077 "modifier": {
1078 "operator": "minus",
1079 "value": 13
1080 }
1081 }
1082 ]
1083 },
1084 {
1085 "name": "Set Proc 6 IO Ring DVFS parameter",
1086 "groups": [
1087 {
1088 "name": "proc 6 ioring dvfs temp",
1089 "interface": "xyz.openbmc_project.Sensor.Value",
1090 "property": { "name": "Value" }
1091 }
1092 ],
1093 "triggers": [
1094 {
1095 "class": "init",
1096 "method": "get_properties"
1097 },
1098 {
1099 "class": "signal",
1100 "signal": "interfaces_added"
1101 },
1102 {
1103 "class": "signal",
1104 "signal": "properties_changed"
1105 }
1106 ],
1107 "actions": [
1108 {
1109 "name": "set_parameter_from_group_max",
1110 "parameter_name": "proc_6_ioring_dvfs_increase_temp",
1111 "modifier": {
1112 "operator": "minus",
1113 "value": 10
1114 }
1115 },
1116 {
1117 "name": "set_parameter_from_group_max",
1118 "parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1119 "modifier": {
1120 "operator": "minus",
1121 "value": 13
1122 }
1123 }
1124 ]
1125 },
1126 {
1127 "name": "Set Proc 7 IO Ring DVFS parameter",
1128 "groups": [
1129 {
1130 "name": "proc 7 ioring dvfs temp",
1131 "interface": "xyz.openbmc_project.Sensor.Value",
1132 "property": { "name": "Value" }
1133 }
1134 ],
1135 "triggers": [
1136 {
1137 "class": "init",
1138 "method": "get_properties"
1139 },
1140 {
1141 "class": "signal",
1142 "signal": "interfaces_added"
1143 },
1144 {
1145 "class": "signal",
1146 "signal": "properties_changed"
1147 }
1148 ],
1149 "actions": [
1150 {
1151 "name": "set_parameter_from_group_max",
1152 "parameter_name": "proc_7_ioring_dvfs_increase_temp",
1153 "modifier": {
1154 "operator": "minus",
1155 "value": 10
1156 }
1157 },
1158 {
1159 "name": "set_parameter_from_group_max",
1160 "parameter_name": "proc_7_ioring_dvfs_decrease_temp",
1161 "modifier": {
1162 "operator": "minus",
1163 "value": 13
1164 }
1165 }
1166 ]
1167 },
1168 {
1169 // Collect group temperatures each iteration the repeating timer expires
1170 "name": "Fan control timer loop",
1171 "groups": [
1172 {
1173 "name": "proc0 core temps",
1174 "interface": "xyz.openbmc_project.Sensor.Value",
1175 "property": { "name": "Value" }
1176 },
1177 {
1178 "name": "proc1 core temps",
1179 "interface": "xyz.openbmc_project.Sensor.Value",
1180 "property": { "name": "Value" }
1181 },
1182 {
1183 "name": "proc2 core temps",
1184 "interface": "xyz.openbmc_project.Sensor.Value",
1185 "property": { "name": "Value" }
1186 },
1187 {
1188 "name": "proc3 core temps",
1189 "interface": "xyz.openbmc_project.Sensor.Value",
1190 "property": { "name": "Value" }
1191 },
1192 {
1193 "name": "proc4 core temps",
1194 "interface": "xyz.openbmc_project.Sensor.Value",
1195 "property": { "name": "Value" }
1196 },
1197 {
1198 "name": "proc5 core temps",
1199 "interface": "xyz.openbmc_project.Sensor.Value",
1200 "property": { "name": "Value" }
1201 },
1202 {
1203 "name": "proc6 core temps",
1204 "interface": "xyz.openbmc_project.Sensor.Value",
1205 "property": { "name": "Value" }
1206 },
1207 {
1208 "name": "proc7 core temps",
1209 "interface": "xyz.openbmc_project.Sensor.Value",
1210 "property": { "name": "Value" }
1211 },
1212 {
1213 "name": "proc0 ioring temp",
1214 "interface": "xyz.openbmc_project.Sensor.Value",
1215 "property": { "name": "Value" }
1216 },
1217 {
1218 "name": "proc1 ioring temp",
1219 "interface": "xyz.openbmc_project.Sensor.Value",
1220 "property": { "name": "Value" }
1221 },
1222 {
1223 "name": "proc2 ioring temp",
1224 "interface": "xyz.openbmc_project.Sensor.Value",
1225 "property": { "name": "Value" }
1226 },
1227 {
1228 "name": "proc3 ioring temp",
1229 "interface": "xyz.openbmc_project.Sensor.Value",
1230 "property": { "name": "Value" }
1231 },
1232 {
1233 "name": "proc4 ioring temp",
1234 "interface": "xyz.openbmc_project.Sensor.Value",
1235 "property": { "name": "Value" }
1236 },
1237 {
1238 "name": "proc5 ioring temp",
1239 "interface": "xyz.openbmc_project.Sensor.Value",
1240 "property": { "name": "Value" }
1241 },
1242 {
1243 "name": "proc6 ioring temp",
1244 "interface": "xyz.openbmc_project.Sensor.Value",
1245 "property": { "name": "Value" }
1246 },
1247 {
1248 "name": "proc7 ioring temp",
1249 "interface": "xyz.openbmc_project.Sensor.Value",
1250 "property": { "name": "Value" }
1251 },
1252 {
1253 "name": "dram temps",
1254 "interface": "xyz.openbmc_project.Sensor.Value",
1255 "property": { "name": "Value" }
1256 },
1257 {
1258 "name": "pmic temps",
1259 "interface": "xyz.openbmc_project.Sensor.Value",
1260 "property": { "name": "Value" }
1261 },
1262 {
1263 "name": "internal memory buffer temps",
1264 "interface": "xyz.openbmc_project.Sensor.Value",
1265 "property": { "name": "Value" }
1266 },
1267 {
1268 "name": "dram and external memory buffer temps",
1269 "interface": "xyz.openbmc_project.Sensor.Value",
1270 "property": { "name": "Value" }
1271 },
1272 {
1273 "name": "external memory buffer temps",
1274 "interface": "xyz.openbmc_project.Sensor.Value",
1275 "property": { "name": "Value" }
1276 },
1277 {
1278 "name": "vdd vrm temps",
1279 "interface": "xyz.openbmc_project.Sensor.Value",
1280 "property": { "name": "Value" }
1281 },
1282 {
1283 "name": "nvme temps",
1284 "interface": "xyz.openbmc_project.Sensor.Value",
1285 "property": { "name": "Value" }
1286 },
1287 {
1288 "name": "planar temps",
1289 "interface": "xyz.openbmc_project.Sensor.Value",
1290 "property": { "name": "Value" }
1291 },
1292 {
1293 "name": "pcie cable card temps",
1294 "interface": "xyz.openbmc_project.Sensor.Value",
1295 "property": { "name": "Value" }
1296 }
1297 ],
1298 "triggers": [
1299 {
1300 "class": "timer",
1301 "type": "repeating",
1302 "interval": 2000000,
1303 "preload_groups": true
1304 }
1305 ],
1306 "actions": [
1307 {
1308 "name": "set_net_increase_target",
1309 "groups": [
1310 {
1311 "name": "proc0 core temps",
1312 "interface": "xyz.openbmc_project.Sensor.Value",
1313 "property": { "name": "Value" }
1314 }
1315 ],
1316 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
1317 "delta": 255
1318 },
1319 {
1320 "name": "set_net_increase_target",
1321 "groups": [
1322 {
1323 "name": "proc1 core temps",
1324 "interface": "xyz.openbmc_project.Sensor.Value",
1325 "property": { "name": "Value" }
1326 }
1327 ],
1328 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
1329 "delta": 255
1330 },
1331 {
1332 "name": "set_net_increase_target",
1333 "groups": [
1334 {
1335 "name": "proc2 core temps",
1336 "interface": "xyz.openbmc_project.Sensor.Value",
1337 "property": { "name": "Value" }
1338 }
1339 ],
1340 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
1341 "delta": 255
1342 },
1343 {
1344 "name": "set_net_increase_target",
1345 "groups": [
1346 {
1347 "name": "proc3 core temps",
1348 "interface": "xyz.openbmc_project.Sensor.Value",
1349 "property": { "name": "Value" }
1350 }
1351 ],
1352 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
1353 "delta": 255
1354 },
1355 {
1356 "name": "set_net_increase_target",
1357 "groups": [
1358 {
1359 "name": "proc4 core temps",
1360 "interface": "xyz.openbmc_project.Sensor.Value",
1361 "property": { "name": "Value" }
1362 }
1363 ],
1364 "state_parameter_name": "proc_4_core_dvfs_increase_temp",
1365 "delta": 255
1366 },
1367 {
1368 "name": "set_net_increase_target",
1369 "groups": [
1370 {
1371 "name": "proc5 core temps",
1372 "interface": "xyz.openbmc_project.Sensor.Value",
1373 "property": { "name": "Value" }
1374 }
1375 ],
1376 "state_parameter_name": "proc_5_core_dvfs_increase_temp",
1377 "delta": 255
1378 },
1379 {
1380 "name": "set_net_increase_target",
1381 "groups": [
1382 {
1383 "name": "proc6 core temps",
1384 "interface": "xyz.openbmc_project.Sensor.Value",
1385 "property": { "name": "Value" }
1386 }
1387 ],
1388 "state_parameter_name": "proc_6_core_dvfs_increase_temp",
1389 "delta": 255
1390 },
1391 {
1392 "name": "set_net_increase_target",
1393 "groups": [
1394 {
1395 "name": "proc7 core temps",
1396 "interface": "xyz.openbmc_project.Sensor.Value",
1397 "property": { "name": "Value" }
1398 }
1399 ],
1400 "state_parameter_name": "proc_7_core_dvfs_increase_temp",
1401 "delta": 255
1402 },
1403 {
1404 "name": "set_net_increase_target",
1405 "groups": [
1406 {
1407 "name": "proc0 ioring temp",
1408 "interface": "xyz.openbmc_project.Sensor.Value",
1409 "property": { "name": "Value" }
1410 }
1411 ],
1412 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
1413 "delta": 255
1414 },
1415 {
1416 "name": "set_net_increase_target",
1417 "groups": [
1418 {
1419 "name": "proc1 ioring temp",
1420 "interface": "xyz.openbmc_project.Sensor.Value",
1421 "property": { "name": "Value" }
1422 }
1423 ],
1424 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
1425 "delta": 255
1426 },
1427 {
1428 "name": "set_net_increase_target",
1429 "groups": [
1430 {
1431 "name": "proc2 ioring temp",
1432 "interface": "xyz.openbmc_project.Sensor.Value",
1433 "property": { "name": "Value" }
1434 }
1435 ],
1436 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
1437 "delta": 255
1438 },
1439 {
1440 "name": "set_net_increase_target",
1441 "groups": [
1442 {
1443 "name": "proc3 ioring temp",
1444 "interface": "xyz.openbmc_project.Sensor.Value",
1445 "property": { "name": "Value" }
1446 }
1447 ],
1448 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
1449 "delta": 255
1450 },
1451 {
1452 "name": "set_net_increase_target",
1453 "groups": [
1454 {
1455 "name": "proc4 ioring temp",
1456 "interface": "xyz.openbmc_project.Sensor.Value",
1457 "property": { "name": "Value" }
1458 }
1459 ],
1460 "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
1461 "delta": 255
1462 },
1463 {
1464 "name": "set_net_increase_target",
1465 "groups": [
1466 {
1467 "name": "proc5 ioring temp",
1468 "interface": "xyz.openbmc_project.Sensor.Value",
1469 "property": { "name": "Value" }
1470 }
1471 ],
1472 "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
1473 "delta": 255
1474 },
1475 {
1476 "name": "set_net_increase_target",
1477 "groups": [
1478 {
1479 "name": "proc6 ioring temp",
1480 "interface": "xyz.openbmc_project.Sensor.Value",
1481 "property": { "name": "Value" }
1482 }
1483 ],
1484 "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
1485 "delta": 255
1486 },
1487 {
1488 "name": "set_net_increase_target",
1489 "groups": [
1490 {
1491 "name": "proc7 ioring temp",
1492 "interface": "xyz.openbmc_project.Sensor.Value",
1493 "property": { "name": "Value" }
1494 }
1495 ],
1496 "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
1497 "delta": 255
1498 },
1499 {
1500 "name": "set_net_increase_target",
1501 "groups": [
1502 {
1503 "name": "dram temps",
1504 "interface": "xyz.openbmc_project.Sensor.Value",
1505 "property": { "name": "Value" }
1506 }
1507 ],
1508 "state": 69.0,
1509 "delta": 175
1510 },
1511 {
1512 "name": "set_net_increase_target",
1513 "groups": [
1514 {
1515 "name": "pmic temps",
1516 "interface": "xyz.openbmc_project.Sensor.Value",
1517 "property": { "name": "Value" }
1518 }
1519 ],
1520 "state": 58.0,
1521 "delta": 200
1522 },
1523 {
1524 "name": "set_net_increase_target",
1525 "groups": [
1526 {
1527 "name": "internal memory buffer temps",
1528 "interface": "xyz.openbmc_project.Sensor.Value",
1529 "property": { "name": "Value" }
1530 }
1531 ],
1532 "state": 75.0,
1533 "delta": 150
1534 },
1535 {
1536 "name": "set_net_increase_target",
1537 "groups": [
1538 {
1539 "name": "dram and external memory buffer temps",
1540 "interface": "xyz.openbmc_project.Sensor.Value",
1541 "property": { "name": "Value" }
1542 }
1543 ],
1544 "state": 55.0,
1545 "delta": 200
1546 },
1547 {
1548 "name": "set_net_increase_target",
1549 "groups": [
1550 {
1551 "name": "external memory buffer temps",
1552 "interface": "xyz.openbmc_project.Sensor.Value",
1553 "property": { "name": "Value" }
1554 }
1555 ],
1556 "state": 55.0,
1557 "delta": 200
1558 },
1559 {
1560 "name": "set_net_increase_target",
1561 "groups": [
1562 {
1563 "name": "vdd vrm temps",
1564 "interface": "xyz.openbmc_project.Sensor.Value",
1565 "property": { "name": "Value" }
1566 }
1567 ],
1568 "state": 85.0,
1569 "delta": 255
1570 },
1571 {
1572 "name": "set_net_increase_target",
1573 "groups": [
1574 {
1575 "name": "nvme temps",
1576 "interface": "xyz.openbmc_project.Sensor.Value",
1577 "property": { "name": "Value" }
1578 }
1579 ],
1580 "state": 58.0,
1581 "delta": 200
1582 },
1583 {
1584 "name": "set_net_increase_target",
1585 "groups": [
1586 {
1587 "name": "planar temps",
1588 "interface": "xyz.openbmc_project.Sensor.Value",
1589 "property": { "name": "Value" }
1590 }
1591 ],
1592 "state": 50.0,
1593 "delta": 255
1594 },
1595 {
1596 "name": "set_net_increase_target",
1597 "groups": [
1598 {
1599 "name": "pcie cable card temps",
1600 "interface": "xyz.openbmc_project.Sensor.Value",
1601 "property": { "name": "Value" }
1602 }
1603 ],
1604 "state": 70.0,
1605 "delta": 255
1606 },
1607 {
1608 "name": "set_net_decrease_target",
1609 "groups": [
1610 {
1611 "name": "proc0 core temps",
1612 "interface": "xyz.openbmc_project.Sensor.Value",
1613 "property": { "name": "Value" }
1614 }
1615 ],
1616 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1617 "delta": 50
1618 },
1619 {
1620 "name": "set_net_decrease_target",
1621 "groups": [
1622 {
1623 "name": "proc1 core temps",
1624 "interface": "xyz.openbmc_project.Sensor.Value",
1625 "property": { "name": "Value" }
1626 }
1627 ],
1628 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1629 "delta": 50
1630 },
1631 {
1632 "name": "set_net_decrease_target",
1633 "groups": [
1634 {
1635 "name": "proc2 core temps",
1636 "interface": "xyz.openbmc_project.Sensor.Value",
1637 "property": { "name": "Value" }
1638 }
1639 ],
1640 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1641 "delta": 50
1642 },
1643 {
1644 "name": "set_net_decrease_target",
1645 "groups": [
1646 {
1647 "name": "proc3 core temps",
1648 "interface": "xyz.openbmc_project.Sensor.Value",
1649 "property": { "name": "Value" }
1650 }
1651 ],
1652 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1653 "delta": 50
1654 },
1655 {
1656 "name": "set_net_decrease_target",
1657 "groups": [
1658 {
1659 "name": "proc4 core temps",
1660 "interface": "xyz.openbmc_project.Sensor.Value",
1661 "property": { "name": "Value" }
1662 }
1663 ],
1664 "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
1665 "delta": 50
1666 },
1667 {
1668 "name": "set_net_decrease_target",
1669 "groups": [
1670 {
1671 "name": "proc5 core temps",
1672 "interface": "xyz.openbmc_project.Sensor.Value",
1673 "property": { "name": "Value" }
1674 }
1675 ],
1676 "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
1677 "delta": 50
1678 },
1679 {
1680 "name": "set_net_decrease_target",
1681 "groups": [
1682 {
1683 "name": "proc6 core temps",
1684 "interface": "xyz.openbmc_project.Sensor.Value",
1685 "property": { "name": "Value" }
1686 }
1687 ],
1688 "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
1689 "delta": 50
1690 },
1691 {
1692 "name": "set_net_decrease_target",
1693 "groups": [
1694 {
1695 "name": "proc7 core temps",
1696 "interface": "xyz.openbmc_project.Sensor.Value",
1697 "property": { "name": "Value" }
1698 }
1699 ],
1700 "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
1701 "delta": 50
1702 },
1703 {
1704 "name": "set_net_decrease_target",
1705 "groups": [
1706 {
1707 "name": "proc0 ioring temp",
1708 "interface": "xyz.openbmc_project.Sensor.Value",
1709 "property": { "name": "Value" }
1710 }
1711 ],
1712 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1713 "delta": 50
1714 },
1715 {
1716 "name": "set_net_decrease_target",
1717 "groups": [
1718 {
1719 "name": "proc1 ioring temp",
1720 "interface": "xyz.openbmc_project.Sensor.Value",
1721 "property": { "name": "Value" }
1722 }
1723 ],
1724 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1725 "delta": 50
1726 },
1727 {
1728 "name": "set_net_decrease_target",
1729 "groups": [
1730 {
1731 "name": "proc2 ioring temp",
1732 "interface": "xyz.openbmc_project.Sensor.Value",
1733 "property": { "name": "Value" }
1734 }
1735 ],
1736 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1737 "delta": 50
1738 },
1739 {
1740 "name": "set_net_decrease_target",
1741 "groups": [
1742 {
1743 "name": "proc3 ioring temp",
1744 "interface": "xyz.openbmc_project.Sensor.Value",
1745 "property": { "name": "Value" }
1746 }
1747 ],
1748 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1749 "delta": 50
1750 },
1751 {
1752 "name": "set_net_decrease_target",
1753 "groups": [
1754 {
1755 "name": "proc4 ioring temp",
1756 "interface": "xyz.openbmc_project.Sensor.Value",
1757 "property": { "name": "Value" }
1758 }
1759 ],
1760 "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
1761 "delta": 50
1762 },
1763 {
1764 "name": "set_net_decrease_target",
1765 "groups": [
1766 {
1767 "name": "proc5 ioring temp",
1768 "interface": "xyz.openbmc_project.Sensor.Value",
1769 "property": { "name": "Value" }
1770 }
1771 ],
1772 "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
1773 "delta": 50
1774 },
1775 {
1776 "name": "set_net_decrease_target",
1777 "groups": [
1778 {
1779 "name": "proc6 ioring temp",
1780 "interface": "xyz.openbmc_project.Sensor.Value",
1781 "property": { "name": "Value" }
1782 }
1783 ],
1784 "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1785 "delta": 50
1786 },
1787 {
1788 "name": "set_net_decrease_target",
1789 "groups": [
1790 {
1791 "name": "proc7 ioring temp",
1792 "interface": "xyz.openbmc_project.Sensor.Value",
1793 "property": { "name": "Value" }
1794 }
1795 ],
1796 "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
1797 "delta": 50
1798 },
1799 {
1800 "name": "set_net_decrease_target",
1801 "groups": [
1802 {
1803 "name": "dram temps",
1804 "interface": "xyz.openbmc_project.Sensor.Value",
1805 "property": { "name": "Value" }
1806 }
1807 ],
1808 "state": 66.0,
1809 "delta": 40
1810 },
1811 {
1812 "name": "set_net_decrease_target",
1813 "groups": [
1814 {
1815 "name": "pmic temps",
1816 "interface": "xyz.openbmc_project.Sensor.Value",
1817 "property": { "name": "Value" }
1818 }
1819 ],
1820 "state": 55.0,
1821 "delta": 40
1822 },
1823 {
1824 "name": "set_net_decrease_target",
1825 "groups": [
1826 {
1827 "name": "internal memory buffer temps",
1828 "interface": "xyz.openbmc_project.Sensor.Value",
1829 "property": { "name": "Value" }
1830 }
1831 ],
1832 "state": 72.0,
1833 "delta": 40
1834 },
1835 {
1836 "name": "set_net_decrease_target",
1837 "groups": [
1838 {
1839 "name": "dram and external memory buffer temps",
1840 "interface": "xyz.openbmc_project.Sensor.Value",
1841 "property": { "name": "Value" }
1842 }
1843 ],
1844 "state": 52.0,
1845 "delta": 40
1846 },
1847 {
1848 "name": "set_net_decrease_target",
1849 "groups": [
1850 {
1851 "name": "external memory buffer temps",
1852 "interface": "xyz.openbmc_project.Sensor.Value",
1853 "property": { "name": "Value" }
1854 }
1855 ],
1856 "state": 52.0,
1857 "delta": 40
1858 },
1859 {
1860 "name": "set_net_decrease_target",
1861 "groups": [
1862 {
1863 "name": "vdd vrm temps",
1864 "interface": "xyz.openbmc_project.Sensor.Value",
1865 "property": { "name": "Value" }
1866 }
1867 ],
1868 "state": 80.0,
1869 "delta": 30
1870 },
1871 {
1872 "name": "set_net_decrease_target",
1873 "groups": [
1874 {
1875 "name": "nvme temps",
1876 "interface": "xyz.openbmc_project.Sensor.Value",
1877 "property": { "name": "Value" }
1878 }
1879 ],
1880 "state": 55.0,
1881 "delta": 40
1882 },
1883 {
1884 "name": "set_net_decrease_target",
1885 "groups": [
1886 {
1887 "name": "planar temps",
1888 "interface": "xyz.openbmc_project.Sensor.Value",
1889 "property": { "name": "Value" }
1890 }
1891 ],
1892 "state": 48.0,
1893 "delta": 80
1894 },
1895 {
1896 "name": "set_net_decrease_target",
1897 "groups": [
1898 {
1899 "name": "pcie cable card temps",
1900 "interface": "xyz.openbmc_project.Sensor.Value",
1901 "property": { "name": "Value" }
1902 }
1903 ],
1904 "state": 65.0,
1905 "delta": 80
1906 }
1907 ]
1908 },
1909 {
1910 // Remove NVMe temperature objects from cache when they are removed from
1911 // dbus. There's no need to react to their removal.
1912 "name": "remove nvme objects",
1913 "groups": [
1914 {
1915 "name": "nvme temps",
1916 "interface": "xyz.openbmc_project.Sensor.Value",
1917 "property": { "name": "Value" }
1918 },
1919 {
1920 "name": "nvme temps",
1921 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1922 "property": { "name": "Functional" }
1923 }
1924 ],
1925 "triggers": [
1926 {
1927 "class": "signal",
1928 "signal": "interfaces_removed"
1929 }
1930 ]
1931 },
1932 {
1933 "name": "set pcie floor index",
1934 "groups": [
1935 {
1936 "name": "pcie slots",
1937 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1938 "property": {
1939 "name": "PowerState"
1940 }
1941 },
1942 {
1943 "name": "pcie cards",
1944 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1945 "property": {
1946 "name": "Function0DeviceId"
1947 }
1948 },
1949 {
1950 "name": "pcie cards",
1951 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1952 "property": {
1953 "name": "Function0VendorId"
1954 }
1955 },
1956 {
1957 "name": "pcie cards",
1958 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1959 "property": {
1960 "name": "Function0SubsystemId"
1961 }
1962 },
1963 {
1964 "name": "pcie cards",
1965 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1966 "property": {
1967 "name": "Function0SubsystemVendorId"
1968 }
1969 }
1970 ],
1971 "triggers": [
1972 {
1973 "class": "init",
1974 "method": "get_properties"
1975 },
1976 {
1977 "class": "signal",
1978 "signal": "properties_changed"
1979 },
1980 {
1981 "class": "signal",
1982 "signal": "interfaces_added"
1983 }
1984 ],
1985 "actions": [
1986 {
1987 "name": "pcie_card_floors",
1988 "use_config_specific_files": true,
1989 "settle_time": 2
1990 }
1991 ]
1992 },
1993 {
1994 "name": "Set altitude offset parameter",
1995 "groups": [
1996 {
1997 "name": "altitude",
1998 "interface": "xyz.openbmc_project.Sensor.Value",
1999 "property": { "name": "Value" }
2000 }
2001 ],
2002 "triggers": [
2003 {
2004 "class": "init",
2005 "method": "get_properties"
2006 },
2007 {
2008 "class": "signal",
2009 "signal": "interfaces_added"
2010 },
2011 {
2012 // Refresh altitude every 24hrs
2013 "class": "timer",
2014 "type": "repeating",
2015 "interval": 86400000000,
2016 "preload_groups": true
2017 }
2018 ],
2019 "actions": [
2020 {
2021 "name": "set_parameter_from_group_max",
2022 "parameter_name": "ambient_20_altitude_offset",
2023 "modifier": {
2024 "operator": "less_than",
2025 "default_value": 1500,
2026 "value": [
2027 { "arg_value": 500, "parameter_value": 0 },
2028 { "arg_value": 1000, "parameter_value": 375 },
2029 { "arg_value": 1500, "parameter_value": 550 },
2030 { "arg_value": 2000, "parameter_value": 775 },
2031 { "arg_value": 2500, "parameter_value": 1000 },
2032 { "arg_value": 3050, "parameter_value": 1275 }
2033 ]
2034 }
2035 },
2036 {
2037 "name": "set_parameter_from_group_max",
2038 "parameter_name": "ambient_25_altitude_offset",
2039 "modifier": {
2040 "operator": "less_than",
2041 "default_value": 2000,
2042 "value": [
2043 { "arg_value": 500, "parameter_value": 0 },
2044 { "arg_value": 1000, "parameter_value": 450 },
2045 { "arg_value": 1500, "parameter_value": 700 },
2046 { "arg_value": 2000, "parameter_value": 975 },
2047 { "arg_value": 2500, "parameter_value": 1275 },
2048 { "arg_value": 3050, "parameter_value": 1625 }
2049 ]
2050 }
2051 },
2052 {
2053 "name": "set_parameter_from_group_max",
2054 "parameter_name": "ambient_30_altitude_offset",
2055 "modifier": {
2056 "operator": "less_than",
2057 "default_value": 2500,
2058 "value": [
2059 { "arg_value": 500, "parameter_value": 0 },
2060 { "arg_value": 1000, "parameter_value": 600 },
2061 { "arg_value": 1500, "parameter_value": 900 },
2062 { "arg_value": 2000, "parameter_value": 1275 },
2063 { "arg_value": 2500, "parameter_value": 1650 },
2064 { "arg_value": 3050, "parameter_value": 2100 }
2065 ]
2066 }
2067 },
2068 {
2069 "name": "set_parameter_from_group_max",
2070 "parameter_name": "ambient_35_altitude_offset",
2071 "modifier": {
2072 "operator": "less_than",
2073 "default_value": 3000,
2074 "value": [
2075 { "arg_value": 500, "parameter_value": 0 },
2076 { "arg_value": 1000, "parameter_value": 750 },
2077 { "arg_value": 1500, "parameter_value": 1175 },
2078 { "arg_value": 2000, "parameter_value": 1625 },
2079 { "arg_value": 2500, "parameter_value": 2125 },
2080 { "arg_value": 3050, "parameter_value": 2725 }
2081 ]
2082 }
2083 },
2084 {
2085 "name": "set_parameter_from_group_max",
2086 "parameter_name": "ambient_40_altitude_offset",
2087 "modifier": {
2088 "operator": "less_than",
2089 "default_value": 3500,
2090 "value": [
2091 { "arg_value": 500, "parameter_value": 0 },
2092 { "arg_value": 1000, "parameter_value": 975 },
2093 { "arg_value": 1500, "parameter_value": 1500 },
2094 { "arg_value": 2000, "parameter_value": 2100 },
2095 { "arg_value": 2500, "parameter_value": 2750 },
2096 { "arg_value": 3050, "parameter_value": 3500 }
2097 ]
2098 }
2099 }
2100 ]
2101 },
2102 {
2103 "name": "Fan floors",
2104 "groups": [
2105 {
2106 "name": "ambient temp",
2107 "interface": "xyz.openbmc_project.Sensor.Value",
2108 "property": { "name": "Value" }
2109 }
2110 ],
2111 "triggers": [
2112 {
2113 "class": "init",
2114 "method": "get_properties"
2115 },
2116 {
2117 "class": "signal",
2118 "signal": "properties_changed"
2119 },
2120 {
2121 "class": "signal",
2122 "signal": "interfaces_added"
2123 },
2124 {
2125 "class": "parameter",
2126 "parameter": "pcie_floor_index"
2127 },
2128 {
2129 "class": "parameter",
2130 "parameter": "ambient_20_altitude_offset"
2131 },
2132 {
2133 "class": "parameter",
2134 "parameter": "ambient_25_altitude_offset"
2135 },
2136 {
2137 "class": "parameter",
2138 "parameter": "ambient_30_altitude_offset"
2139 },
2140 {
2141 "class": "parameter",
2142 "parameter": "ambient_35_altitude_offset"
2143 },
2144 {
2145 "class": "parameter",
2146 "parameter": "ambient_40_altitude_offset"
2147 }
2148 ],
2149 "actions": [
2150 {
2151 "name": "mapped_floor",
2152 "key_group": "ambient temp",
2153 "fan_floors": [
2154 {
2155 // Entry valid for temps < 20
2156 "key": 20,
2157 "default_floor": 3800,
2158 "floor_offset_parameter": "ambient_20_altitude_offset",
2159 "floors": [
2160 {
2161 "parameter": "pcie_floor_index",
2162 "floors": [
2163 { "value": 1, "floor": 3800 },
2164 { "value": 2, "floor": 4200 },
2165 { "value": 3, "floor": 4600 }
2166 ]
2167 }
2168 ]
2169 },
2170 {
2171 // Entry valid for temps < 25
2172 "key": 25,
2173 "default_floor": 4400,
2174 "floor_offset_parameter": "ambient_25_altitude_offset",
2175 "floors": [
2176 {
2177 "parameter": "pcie_floor_index",
2178 "floors": [
2179 { "value": 1, "floor": 4400 },
2180 { "value": 2, "floor": 4800 },
2181 { "value": 3, "floor": 5400 }
2182 ]
2183 }
2184 ]
2185 },
2186 {
2187 // Entry valid for temps < 30
2188 "key": 30,
2189 "default_floor": 5000,
2190 "floor_offset_parameter": "ambient_30_altitude_offset",
2191 "floors": [
2192 {
2193 "parameter": "pcie_floor_index",
2194 "floors": [
2195 { "value": 1, "floor": 5000 },
2196 { "value": 2, "floor": 5600 },
2197 { "value": 3, "floor": 6500 }
2198 ]
2199 }
2200 ]
2201 },
2202 {
2203 // Entry valid for temps < 35
2204 "key": 35,
2205 "default_floor": 5800,
2206 "floor_offset_parameter": "ambient_35_altitude_offset",
2207 "floors": [
2208 {
2209 "parameter": "pcie_floor_index",
2210 "floors": [
2211 { "value": 1, "floor": 5800 },
2212 { "value": 2, "floor": 6700 },
2213 { "value": 3, "floor": 7700 }
2214 ]
2215 }
2216 ]
2217 },
2218 {
2219 // Entry valid for temps < 40
2220 "key": 40,
2221 "default_floor": 6900,
2222 "floor_offset_parameter": "ambient_40_altitude_offset",
2223 "floors": [
2224 {
2225 "parameter": "pcie_floor_index",
2226 "floors": [
2227 { "value": 1, "floor": 6900 },
2228 { "value": 2, "floor": 7900 },
2229 { "value": 3, "floor": 9200 }
2230 ]
2231 }
2232 ]
2233 }
2234 ]
2235 }
2236 ]
2237 }
Matt Spinlera75f61e2022-05-11 13:26:52 -05002238]