blob: 2213ba3212071dbe00d697ee554e99341cfd7e71 [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 {
Matt Spinler22fa6e32023-11-09 13:20:50 -06001169 "name": "Set DRAM DVFS parameter",
1170 "groups": [
1171 {
1172 "name": "dram dvfs temp",
1173 "interface": "xyz.openbmc_project.Sensor.Value",
1174 "property": { "name": "Value" }
1175 }
1176 ],
1177 "triggers": [
1178 {
1179 "class": "init",
1180 "method": "get_properties"
1181 },
1182 {
1183 "class": "signal",
1184 "signal": "properties_changed"
1185 },
1186 {
1187 "class": "signal",
1188 "signal": "interfaces_added"
1189 }
1190 ],
1191 "actions": [
1192 {
1193 "name": "set_parameter_from_group_max",
1194 "parameter_name": "dram_dvfs_increase_temp",
1195 "modifier": {
1196 "operator": "minus",
1197 "value": 8
1198 }
1199 },
1200 {
1201 "name": "set_parameter_from_group_max",
1202 "parameter_name": "dram_dvfs_decrease_temp",
1203 "modifier": {
1204 "operator": "minus",
1205 "value": 11
1206 }
1207 }
1208 ]
1209 },
1210 {
1211 "name": "Set PMIC DVFS parameter",
1212 "groups": [
1213 {
1214 "name": "pmic dvfs temp",
1215 "interface": "xyz.openbmc_project.Sensor.Value",
1216 "property": { "name": "Value" }
1217 }
1218 ],
1219 "triggers": [
1220 {
1221 "class": "init",
1222 "method": "get_properties"
1223 },
1224 {
1225 "class": "signal",
1226 "signal": "properties_changed"
1227 },
1228 {
1229 "class": "signal",
1230 "signal": "interfaces_added"
1231 }
1232 ],
1233 "actions": [
1234 {
1235 "name": "set_parameter_from_group_max",
1236 "parameter_name": "pmic_dvfs_increase_temp",
1237 "modifier": {
1238 "operator": "minus",
1239 "value": 10
1240 }
1241 },
1242 {
1243 "name": "set_parameter_from_group_max",
1244 "parameter_name": "pmic_dvfs_decrease_temp",
1245 "modifier": {
1246 "operator": "minus",
1247 "value": 13
1248 }
1249 }
1250 ]
1251 },
1252 {
1253 "name": "Set internal memory buffer DVFS parameter",
1254 "groups": [
1255 {
1256 "name": "internal memory buffer dvfs temp",
1257 "interface": "xyz.openbmc_project.Sensor.Value",
1258 "property": { "name": "Value" }
1259 }
1260 ],
1261 "triggers": [
1262 {
1263 "class": "init",
1264 "method": "get_properties"
1265 },
1266 {
1267 "class": "signal",
1268 "signal": "properties_changed"
1269 },
1270 {
1271 "class": "signal",
1272 "signal": "interfaces_added"
1273 }
1274 ],
1275 "actions": [
1276 {
1277 "name": "set_parameter_from_group_max",
1278 "parameter_name": "intmb_dvfs_increase_temp",
1279 "modifier": {
1280 "operator": "minus",
1281 "value": 9
1282 }
1283 },
1284 {
1285 "name": "set_parameter_from_group_max",
1286 "parameter_name": "intmb_dvfs_decrease_temp",
1287 "modifier": {
1288 "operator": "minus",
1289 "value": 12
1290 }
1291 }
1292 ]
1293 },
1294 {
1295 "name": "Set DRAM and external memory buffer DVFS parameter",
1296 "groups": [
1297 {
1298 "name": "dram and external memory buffer dvfs temp",
1299 "interface": "xyz.openbmc_project.Sensor.Value",
1300 "property": { "name": "Value" }
1301 }
1302 ],
1303 "triggers": [
1304 {
1305 "class": "init",
1306 "method": "get_properties"
1307 },
1308 {
1309 "class": "signal",
1310 "signal": "properties_changed"
1311 },
1312 {
1313 "class": "signal",
1314 "signal": "interfaces_added"
1315 }
1316 ],
1317 "actions": [
1318 {
1319 "name": "set_parameter_from_group_max",
1320 "parameter_name": "dram_extmb_dvfs_increase_temp",
1321 "modifier": {
1322 "operator": "minus",
1323 "value": 10
1324 }
1325 },
1326 {
1327 "name": "set_parameter_from_group_max",
1328 "parameter_name": "dram_extmb_dvfs_decrease_temp",
1329 "modifier": {
1330 "operator": "minus",
1331 "value": 13
1332 }
1333 }
1334 ]
1335 },
1336 {
1337 "name": "Set external memory buffer DVFS parameter",
1338 "groups": [
1339 {
1340 "name": "external memory buffer dvfs temp",
1341 "interface": "xyz.openbmc_project.Sensor.Value",
1342 "property": { "name": "Value" }
1343 }
1344 ],
1345 "triggers": [
1346 {
1347 "class": "init",
1348 "method": "get_properties"
1349 },
1350 {
1351 "class": "signal",
1352 "signal": "properties_changed"
1353 },
1354 {
1355 "class": "signal",
1356 "signal": "interfaces_added"
1357 }
1358 ],
1359 "actions": [
1360 {
1361 "name": "set_parameter_from_group_max",
1362 "parameter_name": "extmb_dvfs_increase_temp",
1363 "modifier": {
1364 "operator": "minus",
1365 "value": 10
1366 }
1367 },
1368 {
1369 "name": "set_parameter_from_group_max",
1370 "parameter_name": "extmb_dvfs_decrease_temp",
1371 "modifier": {
1372 "operator": "minus",
1373 "value": 13
1374 }
1375 }
1376 ]
1377 },
1378 {
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001379 // Collect group temperatures each iteration the repeating timer expires
1380 "name": "Fan control timer loop",
1381 "groups": [
1382 {
1383 "name": "proc0 core temps",
1384 "interface": "xyz.openbmc_project.Sensor.Value",
1385 "property": { "name": "Value" }
1386 },
1387 {
1388 "name": "proc1 core temps",
1389 "interface": "xyz.openbmc_project.Sensor.Value",
1390 "property": { "name": "Value" }
1391 },
1392 {
1393 "name": "proc2 core temps",
1394 "interface": "xyz.openbmc_project.Sensor.Value",
1395 "property": { "name": "Value" }
1396 },
1397 {
1398 "name": "proc3 core temps",
1399 "interface": "xyz.openbmc_project.Sensor.Value",
1400 "property": { "name": "Value" }
1401 },
1402 {
1403 "name": "proc4 core temps",
1404 "interface": "xyz.openbmc_project.Sensor.Value",
1405 "property": { "name": "Value" }
1406 },
1407 {
1408 "name": "proc5 core temps",
1409 "interface": "xyz.openbmc_project.Sensor.Value",
1410 "property": { "name": "Value" }
1411 },
1412 {
1413 "name": "proc6 core temps",
1414 "interface": "xyz.openbmc_project.Sensor.Value",
1415 "property": { "name": "Value" }
1416 },
1417 {
1418 "name": "proc7 core temps",
1419 "interface": "xyz.openbmc_project.Sensor.Value",
1420 "property": { "name": "Value" }
1421 },
1422 {
1423 "name": "proc0 ioring temp",
1424 "interface": "xyz.openbmc_project.Sensor.Value",
1425 "property": { "name": "Value" }
1426 },
1427 {
1428 "name": "proc1 ioring temp",
1429 "interface": "xyz.openbmc_project.Sensor.Value",
1430 "property": { "name": "Value" }
1431 },
1432 {
1433 "name": "proc2 ioring temp",
1434 "interface": "xyz.openbmc_project.Sensor.Value",
1435 "property": { "name": "Value" }
1436 },
1437 {
1438 "name": "proc3 ioring temp",
1439 "interface": "xyz.openbmc_project.Sensor.Value",
1440 "property": { "name": "Value" }
1441 },
1442 {
1443 "name": "proc4 ioring temp",
1444 "interface": "xyz.openbmc_project.Sensor.Value",
1445 "property": { "name": "Value" }
1446 },
1447 {
1448 "name": "proc5 ioring temp",
1449 "interface": "xyz.openbmc_project.Sensor.Value",
1450 "property": { "name": "Value" }
1451 },
1452 {
1453 "name": "proc6 ioring temp",
1454 "interface": "xyz.openbmc_project.Sensor.Value",
1455 "property": { "name": "Value" }
1456 },
1457 {
1458 "name": "proc7 ioring temp",
1459 "interface": "xyz.openbmc_project.Sensor.Value",
1460 "property": { "name": "Value" }
1461 },
1462 {
1463 "name": "dram temps",
1464 "interface": "xyz.openbmc_project.Sensor.Value",
1465 "property": { "name": "Value" }
1466 },
1467 {
1468 "name": "pmic temps",
1469 "interface": "xyz.openbmc_project.Sensor.Value",
1470 "property": { "name": "Value" }
1471 },
1472 {
1473 "name": "internal memory buffer temps",
1474 "interface": "xyz.openbmc_project.Sensor.Value",
1475 "property": { "name": "Value" }
1476 },
1477 {
1478 "name": "dram and external memory buffer temps",
1479 "interface": "xyz.openbmc_project.Sensor.Value",
1480 "property": { "name": "Value" }
1481 },
1482 {
1483 "name": "external memory buffer temps",
1484 "interface": "xyz.openbmc_project.Sensor.Value",
1485 "property": { "name": "Value" }
1486 },
1487 {
1488 "name": "vdd vrm temps",
1489 "interface": "xyz.openbmc_project.Sensor.Value",
1490 "property": { "name": "Value" }
1491 },
1492 {
1493 "name": "nvme temps",
1494 "interface": "xyz.openbmc_project.Sensor.Value",
1495 "property": { "name": "Value" }
1496 },
1497 {
1498 "name": "planar temps",
1499 "interface": "xyz.openbmc_project.Sensor.Value",
1500 "property": { "name": "Value" }
1501 },
1502 {
1503 "name": "pcie cable card temps",
1504 "interface": "xyz.openbmc_project.Sensor.Value",
1505 "property": { "name": "Value" }
1506 }
1507 ],
1508 "triggers": [
1509 {
1510 "class": "timer",
1511 "type": "repeating",
1512 "interval": 2000000,
1513 "preload_groups": true
1514 }
1515 ],
1516 "actions": [
1517 {
1518 "name": "set_net_increase_target",
1519 "groups": [
1520 {
1521 "name": "proc0 core temps",
1522 "interface": "xyz.openbmc_project.Sensor.Value",
1523 "property": { "name": "Value" }
1524 }
1525 ],
1526 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
1527 "delta": 255
1528 },
1529 {
1530 "name": "set_net_increase_target",
1531 "groups": [
1532 {
1533 "name": "proc1 core temps",
1534 "interface": "xyz.openbmc_project.Sensor.Value",
1535 "property": { "name": "Value" }
1536 }
1537 ],
1538 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
1539 "delta": 255
1540 },
1541 {
1542 "name": "set_net_increase_target",
1543 "groups": [
1544 {
1545 "name": "proc2 core temps",
1546 "interface": "xyz.openbmc_project.Sensor.Value",
1547 "property": { "name": "Value" }
1548 }
1549 ],
1550 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
1551 "delta": 255
1552 },
1553 {
1554 "name": "set_net_increase_target",
1555 "groups": [
1556 {
1557 "name": "proc3 core temps",
1558 "interface": "xyz.openbmc_project.Sensor.Value",
1559 "property": { "name": "Value" }
1560 }
1561 ],
1562 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
1563 "delta": 255
1564 },
1565 {
1566 "name": "set_net_increase_target",
1567 "groups": [
1568 {
1569 "name": "proc4 core temps",
1570 "interface": "xyz.openbmc_project.Sensor.Value",
1571 "property": { "name": "Value" }
1572 }
1573 ],
1574 "state_parameter_name": "proc_4_core_dvfs_increase_temp",
1575 "delta": 255
1576 },
1577 {
1578 "name": "set_net_increase_target",
1579 "groups": [
1580 {
1581 "name": "proc5 core temps",
1582 "interface": "xyz.openbmc_project.Sensor.Value",
1583 "property": { "name": "Value" }
1584 }
1585 ],
1586 "state_parameter_name": "proc_5_core_dvfs_increase_temp",
1587 "delta": 255
1588 },
1589 {
1590 "name": "set_net_increase_target",
1591 "groups": [
1592 {
1593 "name": "proc6 core temps",
1594 "interface": "xyz.openbmc_project.Sensor.Value",
1595 "property": { "name": "Value" }
1596 }
1597 ],
1598 "state_parameter_name": "proc_6_core_dvfs_increase_temp",
1599 "delta": 255
1600 },
1601 {
1602 "name": "set_net_increase_target",
1603 "groups": [
1604 {
1605 "name": "proc7 core temps",
1606 "interface": "xyz.openbmc_project.Sensor.Value",
1607 "property": { "name": "Value" }
1608 }
1609 ],
1610 "state_parameter_name": "proc_7_core_dvfs_increase_temp",
1611 "delta": 255
1612 },
1613 {
1614 "name": "set_net_increase_target",
1615 "groups": [
1616 {
1617 "name": "proc0 ioring temp",
1618 "interface": "xyz.openbmc_project.Sensor.Value",
1619 "property": { "name": "Value" }
1620 }
1621 ],
1622 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
1623 "delta": 255
1624 },
1625 {
1626 "name": "set_net_increase_target",
1627 "groups": [
1628 {
1629 "name": "proc1 ioring temp",
1630 "interface": "xyz.openbmc_project.Sensor.Value",
1631 "property": { "name": "Value" }
1632 }
1633 ],
1634 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
1635 "delta": 255
1636 },
1637 {
1638 "name": "set_net_increase_target",
1639 "groups": [
1640 {
1641 "name": "proc2 ioring temp",
1642 "interface": "xyz.openbmc_project.Sensor.Value",
1643 "property": { "name": "Value" }
1644 }
1645 ],
1646 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
1647 "delta": 255
1648 },
1649 {
1650 "name": "set_net_increase_target",
1651 "groups": [
1652 {
1653 "name": "proc3 ioring temp",
1654 "interface": "xyz.openbmc_project.Sensor.Value",
1655 "property": { "name": "Value" }
1656 }
1657 ],
1658 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
1659 "delta": 255
1660 },
1661 {
1662 "name": "set_net_increase_target",
1663 "groups": [
1664 {
1665 "name": "proc4 ioring temp",
1666 "interface": "xyz.openbmc_project.Sensor.Value",
1667 "property": { "name": "Value" }
1668 }
1669 ],
1670 "state_parameter_name": "proc_4_ioring_dvfs_increase_temp",
1671 "delta": 255
1672 },
1673 {
1674 "name": "set_net_increase_target",
1675 "groups": [
1676 {
1677 "name": "proc5 ioring temp",
1678 "interface": "xyz.openbmc_project.Sensor.Value",
1679 "property": { "name": "Value" }
1680 }
1681 ],
1682 "state_parameter_name": "proc_5_ioring_dvfs_increase_temp",
1683 "delta": 255
1684 },
1685 {
1686 "name": "set_net_increase_target",
1687 "groups": [
1688 {
1689 "name": "proc6 ioring temp",
1690 "interface": "xyz.openbmc_project.Sensor.Value",
1691 "property": { "name": "Value" }
1692 }
1693 ],
1694 "state_parameter_name": "proc_6_ioring_dvfs_increase_temp",
1695 "delta": 255
1696 },
1697 {
1698 "name": "set_net_increase_target",
1699 "groups": [
1700 {
1701 "name": "proc7 ioring temp",
1702 "interface": "xyz.openbmc_project.Sensor.Value",
1703 "property": { "name": "Value" }
1704 }
1705 ],
1706 "state_parameter_name": "proc_7_ioring_dvfs_increase_temp",
1707 "delta": 255
1708 },
1709 {
1710 "name": "set_net_increase_target",
1711 "groups": [
1712 {
1713 "name": "dram temps",
1714 "interface": "xyz.openbmc_project.Sensor.Value",
1715 "property": { "name": "Value" }
1716 }
1717 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06001718 "state_parameter_name": "dram_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001719 "delta": 175
1720 },
1721 {
1722 "name": "set_net_increase_target",
1723 "groups": [
1724 {
1725 "name": "pmic temps",
1726 "interface": "xyz.openbmc_project.Sensor.Value",
1727 "property": { "name": "Value" }
1728 }
1729 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06001730 "state_parameter_name": "pmic_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001731 "delta": 200
1732 },
1733 {
1734 "name": "set_net_increase_target",
1735 "groups": [
1736 {
1737 "name": "internal memory buffer temps",
1738 "interface": "xyz.openbmc_project.Sensor.Value",
1739 "property": { "name": "Value" }
1740 }
1741 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06001742 "state_parameter_name": "intmb_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001743 "delta": 150
1744 },
1745 {
1746 "name": "set_net_increase_target",
1747 "groups": [
1748 {
1749 "name": "dram and external memory buffer temps",
1750 "interface": "xyz.openbmc_project.Sensor.Value",
1751 "property": { "name": "Value" }
1752 }
1753 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06001754 "state_parameter_name": "dram_extmb_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001755 "delta": 200
1756 },
1757 {
1758 "name": "set_net_increase_target",
1759 "groups": [
1760 {
1761 "name": "external memory buffer temps",
1762 "interface": "xyz.openbmc_project.Sensor.Value",
1763 "property": { "name": "Value" }
1764 }
1765 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06001766 "state_parameter_name": "extmb_dvfs_increase_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06001767 "delta": 200
1768 },
1769 {
1770 "name": "set_net_increase_target",
1771 "groups": [
1772 {
1773 "name": "vdd vrm temps",
1774 "interface": "xyz.openbmc_project.Sensor.Value",
1775 "property": { "name": "Value" }
1776 }
1777 ],
1778 "state": 85.0,
1779 "delta": 255
1780 },
1781 {
1782 "name": "set_net_increase_target",
1783 "groups": [
1784 {
1785 "name": "nvme temps",
1786 "interface": "xyz.openbmc_project.Sensor.Value",
1787 "property": { "name": "Value" }
1788 }
1789 ],
1790 "state": 58.0,
1791 "delta": 200
1792 },
1793 {
1794 "name": "set_net_increase_target",
1795 "groups": [
1796 {
1797 "name": "planar temps",
1798 "interface": "xyz.openbmc_project.Sensor.Value",
1799 "property": { "name": "Value" }
1800 }
1801 ],
1802 "state": 50.0,
1803 "delta": 255
1804 },
1805 {
1806 "name": "set_net_increase_target",
1807 "groups": [
1808 {
1809 "name": "pcie cable card temps",
1810 "interface": "xyz.openbmc_project.Sensor.Value",
1811 "property": { "name": "Value" }
1812 }
1813 ],
1814 "state": 70.0,
1815 "delta": 255
1816 },
1817 {
1818 "name": "set_net_decrease_target",
1819 "groups": [
1820 {
1821 "name": "proc0 core temps",
1822 "interface": "xyz.openbmc_project.Sensor.Value",
1823 "property": { "name": "Value" }
1824 }
1825 ],
1826 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
1827 "delta": 50
1828 },
1829 {
1830 "name": "set_net_decrease_target",
1831 "groups": [
1832 {
1833 "name": "proc1 core temps",
1834 "interface": "xyz.openbmc_project.Sensor.Value",
1835 "property": { "name": "Value" }
1836 }
1837 ],
1838 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
1839 "delta": 50
1840 },
1841 {
1842 "name": "set_net_decrease_target",
1843 "groups": [
1844 {
1845 "name": "proc2 core temps",
1846 "interface": "xyz.openbmc_project.Sensor.Value",
1847 "property": { "name": "Value" }
1848 }
1849 ],
1850 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
1851 "delta": 50
1852 },
1853 {
1854 "name": "set_net_decrease_target",
1855 "groups": [
1856 {
1857 "name": "proc3 core temps",
1858 "interface": "xyz.openbmc_project.Sensor.Value",
1859 "property": { "name": "Value" }
1860 }
1861 ],
1862 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
1863 "delta": 50
1864 },
1865 {
1866 "name": "set_net_decrease_target",
1867 "groups": [
1868 {
1869 "name": "proc4 core temps",
1870 "interface": "xyz.openbmc_project.Sensor.Value",
1871 "property": { "name": "Value" }
1872 }
1873 ],
1874 "state_parameter_name": "proc_4_core_dvfs_decrease_temp",
1875 "delta": 50
1876 },
1877 {
1878 "name": "set_net_decrease_target",
1879 "groups": [
1880 {
1881 "name": "proc5 core temps",
1882 "interface": "xyz.openbmc_project.Sensor.Value",
1883 "property": { "name": "Value" }
1884 }
1885 ],
1886 "state_parameter_name": "proc_5_core_dvfs_decrease_temp",
1887 "delta": 50
1888 },
1889 {
1890 "name": "set_net_decrease_target",
1891 "groups": [
1892 {
1893 "name": "proc6 core temps",
1894 "interface": "xyz.openbmc_project.Sensor.Value",
1895 "property": { "name": "Value" }
1896 }
1897 ],
1898 "state_parameter_name": "proc_6_core_dvfs_decrease_temp",
1899 "delta": 50
1900 },
1901 {
1902 "name": "set_net_decrease_target",
1903 "groups": [
1904 {
1905 "name": "proc7 core temps",
1906 "interface": "xyz.openbmc_project.Sensor.Value",
1907 "property": { "name": "Value" }
1908 }
1909 ],
1910 "state_parameter_name": "proc_7_core_dvfs_decrease_temp",
1911 "delta": 50
1912 },
1913 {
1914 "name": "set_net_decrease_target",
1915 "groups": [
1916 {
1917 "name": "proc0 ioring temp",
1918 "interface": "xyz.openbmc_project.Sensor.Value",
1919 "property": { "name": "Value" }
1920 }
1921 ],
1922 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
1923 "delta": 50
1924 },
1925 {
1926 "name": "set_net_decrease_target",
1927 "groups": [
1928 {
1929 "name": "proc1 ioring temp",
1930 "interface": "xyz.openbmc_project.Sensor.Value",
1931 "property": { "name": "Value" }
1932 }
1933 ],
1934 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
1935 "delta": 50
1936 },
1937 {
1938 "name": "set_net_decrease_target",
1939 "groups": [
1940 {
1941 "name": "proc2 ioring temp",
1942 "interface": "xyz.openbmc_project.Sensor.Value",
1943 "property": { "name": "Value" }
1944 }
1945 ],
1946 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
1947 "delta": 50
1948 },
1949 {
1950 "name": "set_net_decrease_target",
1951 "groups": [
1952 {
1953 "name": "proc3 ioring temp",
1954 "interface": "xyz.openbmc_project.Sensor.Value",
1955 "property": { "name": "Value" }
1956 }
1957 ],
1958 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
1959 "delta": 50
1960 },
1961 {
1962 "name": "set_net_decrease_target",
1963 "groups": [
1964 {
1965 "name": "proc4 ioring temp",
1966 "interface": "xyz.openbmc_project.Sensor.Value",
1967 "property": { "name": "Value" }
1968 }
1969 ],
1970 "state_parameter_name": "proc_4_ioring_dvfs_decrease_temp",
1971 "delta": 50
1972 },
1973 {
1974 "name": "set_net_decrease_target",
1975 "groups": [
1976 {
1977 "name": "proc5 ioring temp",
1978 "interface": "xyz.openbmc_project.Sensor.Value",
1979 "property": { "name": "Value" }
1980 }
1981 ],
1982 "state_parameter_name": "proc_5_ioring_dvfs_decrease_temp",
1983 "delta": 50
1984 },
1985 {
1986 "name": "set_net_decrease_target",
1987 "groups": [
1988 {
1989 "name": "proc6 ioring temp",
1990 "interface": "xyz.openbmc_project.Sensor.Value",
1991 "property": { "name": "Value" }
1992 }
1993 ],
1994 "state_parameter_name": "proc_6_ioring_dvfs_decrease_temp",
1995 "delta": 50
1996 },
1997 {
1998 "name": "set_net_decrease_target",
1999 "groups": [
2000 {
2001 "name": "proc7 ioring temp",
2002 "interface": "xyz.openbmc_project.Sensor.Value",
2003 "property": { "name": "Value" }
2004 }
2005 ],
2006 "state_parameter_name": "proc_7_ioring_dvfs_decrease_temp",
2007 "delta": 50
2008 },
2009 {
2010 "name": "set_net_decrease_target",
2011 "groups": [
2012 {
2013 "name": "dram temps",
2014 "interface": "xyz.openbmc_project.Sensor.Value",
2015 "property": { "name": "Value" }
2016 }
2017 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06002018 "state_parameter_name": "dram_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002019 "delta": 40
2020 },
2021 {
2022 "name": "set_net_decrease_target",
2023 "groups": [
2024 {
2025 "name": "pmic temps",
2026 "interface": "xyz.openbmc_project.Sensor.Value",
2027 "property": { "name": "Value" }
2028 }
2029 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06002030 "state_parameter_name": "pmic_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002031 "delta": 40
2032 },
2033 {
2034 "name": "set_net_decrease_target",
2035 "groups": [
2036 {
2037 "name": "internal memory buffer temps",
2038 "interface": "xyz.openbmc_project.Sensor.Value",
2039 "property": { "name": "Value" }
2040 }
2041 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06002042 "state_parameter_name": "intmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002043 "delta": 40
2044 },
2045 {
2046 "name": "set_net_decrease_target",
2047 "groups": [
2048 {
2049 "name": "dram and external memory buffer temps",
2050 "interface": "xyz.openbmc_project.Sensor.Value",
2051 "property": { "name": "Value" }
2052 }
2053 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06002054 "state_parameter_name": "dram_extmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002055 "delta": 40
2056 },
2057 {
2058 "name": "set_net_decrease_target",
2059 "groups": [
2060 {
2061 "name": "external memory buffer temps",
2062 "interface": "xyz.openbmc_project.Sensor.Value",
2063 "property": { "name": "Value" }
2064 }
2065 ],
Matt Spinler22fa6e32023-11-09 13:20:50 -06002066 "state_parameter_name": "extmb_dvfs_decrease_temp",
Patrick Williamsa49e3f12022-12-08 06:12:40 -06002067 "delta": 40
2068 },
2069 {
2070 "name": "set_net_decrease_target",
2071 "groups": [
2072 {
2073 "name": "vdd vrm temps",
2074 "interface": "xyz.openbmc_project.Sensor.Value",
2075 "property": { "name": "Value" }
2076 }
2077 ],
2078 "state": 80.0,
2079 "delta": 30
2080 },
2081 {
2082 "name": "set_net_decrease_target",
2083 "groups": [
2084 {
2085 "name": "nvme temps",
2086 "interface": "xyz.openbmc_project.Sensor.Value",
2087 "property": { "name": "Value" }
2088 }
2089 ],
2090 "state": 55.0,
2091 "delta": 40
2092 },
2093 {
2094 "name": "set_net_decrease_target",
2095 "groups": [
2096 {
2097 "name": "planar temps",
2098 "interface": "xyz.openbmc_project.Sensor.Value",
2099 "property": { "name": "Value" }
2100 }
2101 ],
2102 "state": 48.0,
2103 "delta": 80
2104 },
2105 {
2106 "name": "set_net_decrease_target",
2107 "groups": [
2108 {
2109 "name": "pcie cable card temps",
2110 "interface": "xyz.openbmc_project.Sensor.Value",
2111 "property": { "name": "Value" }
2112 }
2113 ],
2114 "state": 65.0,
2115 "delta": 80
2116 }
2117 ]
2118 },
2119 {
2120 // Remove NVMe temperature objects from cache when they are removed from
2121 // dbus. There's no need to react to their removal.
2122 "name": "remove nvme objects",
2123 "groups": [
2124 {
2125 "name": "nvme temps",
2126 "interface": "xyz.openbmc_project.Sensor.Value",
2127 "property": { "name": "Value" }
2128 },
2129 {
2130 "name": "nvme temps",
2131 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
2132 "property": { "name": "Functional" }
2133 }
2134 ],
2135 "triggers": [
2136 {
2137 "class": "signal",
2138 "signal": "interfaces_removed"
2139 }
2140 ]
2141 },
2142 {
2143 "name": "set pcie floor index",
2144 "groups": [
2145 {
2146 "name": "pcie slots",
2147 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
2148 "property": {
2149 "name": "PowerState"
2150 }
2151 },
2152 {
2153 "name": "pcie cards",
2154 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
2155 "property": {
2156 "name": "Function0DeviceId"
2157 }
2158 },
2159 {
2160 "name": "pcie cards",
2161 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
2162 "property": {
2163 "name": "Function0VendorId"
2164 }
2165 },
2166 {
2167 "name": "pcie cards",
2168 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
2169 "property": {
2170 "name": "Function0SubsystemId"
2171 }
2172 },
2173 {
2174 "name": "pcie cards",
2175 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
2176 "property": {
2177 "name": "Function0SubsystemVendorId"
2178 }
2179 }
2180 ],
2181 "triggers": [
2182 {
2183 "class": "init",
2184 "method": "get_properties"
2185 },
2186 {
2187 "class": "signal",
2188 "signal": "properties_changed"
2189 },
2190 {
2191 "class": "signal",
2192 "signal": "interfaces_added"
2193 }
2194 ],
2195 "actions": [
2196 {
2197 "name": "pcie_card_floors",
2198 "use_config_specific_files": true,
2199 "settle_time": 2
2200 }
2201 ]
2202 },
2203 {
2204 "name": "Set altitude offset parameter",
2205 "groups": [
2206 {
2207 "name": "altitude",
2208 "interface": "xyz.openbmc_project.Sensor.Value",
2209 "property": { "name": "Value" }
2210 }
2211 ],
2212 "triggers": [
2213 {
2214 "class": "init",
2215 "method": "get_properties"
2216 },
2217 {
2218 "class": "signal",
2219 "signal": "interfaces_added"
2220 },
2221 {
2222 // Refresh altitude every 24hrs
2223 "class": "timer",
2224 "type": "repeating",
2225 "interval": 86400000000,
2226 "preload_groups": true
2227 }
2228 ],
2229 "actions": [
2230 {
2231 "name": "set_parameter_from_group_max",
2232 "parameter_name": "ambient_20_altitude_offset",
2233 "modifier": {
2234 "operator": "less_than",
2235 "default_value": 1500,
2236 "value": [
2237 { "arg_value": 500, "parameter_value": 0 },
2238 { "arg_value": 1000, "parameter_value": 375 },
2239 { "arg_value": 1500, "parameter_value": 550 },
2240 { "arg_value": 2000, "parameter_value": 775 },
2241 { "arg_value": 2500, "parameter_value": 1000 },
2242 { "arg_value": 3050, "parameter_value": 1275 }
2243 ]
2244 }
2245 },
2246 {
2247 "name": "set_parameter_from_group_max",
2248 "parameter_name": "ambient_25_altitude_offset",
2249 "modifier": {
2250 "operator": "less_than",
2251 "default_value": 2000,
2252 "value": [
2253 { "arg_value": 500, "parameter_value": 0 },
2254 { "arg_value": 1000, "parameter_value": 450 },
2255 { "arg_value": 1500, "parameter_value": 700 },
2256 { "arg_value": 2000, "parameter_value": 975 },
2257 { "arg_value": 2500, "parameter_value": 1275 },
2258 { "arg_value": 3050, "parameter_value": 1625 }
2259 ]
2260 }
2261 },
2262 {
2263 "name": "set_parameter_from_group_max",
2264 "parameter_name": "ambient_30_altitude_offset",
2265 "modifier": {
2266 "operator": "less_than",
2267 "default_value": 2500,
2268 "value": [
2269 { "arg_value": 500, "parameter_value": 0 },
2270 { "arg_value": 1000, "parameter_value": 600 },
2271 { "arg_value": 1500, "parameter_value": 900 },
2272 { "arg_value": 2000, "parameter_value": 1275 },
2273 { "arg_value": 2500, "parameter_value": 1650 },
2274 { "arg_value": 3050, "parameter_value": 2100 }
2275 ]
2276 }
2277 },
2278 {
2279 "name": "set_parameter_from_group_max",
2280 "parameter_name": "ambient_35_altitude_offset",
2281 "modifier": {
2282 "operator": "less_than",
2283 "default_value": 3000,
2284 "value": [
2285 { "arg_value": 500, "parameter_value": 0 },
2286 { "arg_value": 1000, "parameter_value": 750 },
2287 { "arg_value": 1500, "parameter_value": 1175 },
2288 { "arg_value": 2000, "parameter_value": 1625 },
2289 { "arg_value": 2500, "parameter_value": 2125 },
2290 { "arg_value": 3050, "parameter_value": 2725 }
2291 ]
2292 }
2293 },
2294 {
2295 "name": "set_parameter_from_group_max",
2296 "parameter_name": "ambient_40_altitude_offset",
2297 "modifier": {
2298 "operator": "less_than",
2299 "default_value": 3500,
2300 "value": [
2301 { "arg_value": 500, "parameter_value": 0 },
2302 { "arg_value": 1000, "parameter_value": 975 },
2303 { "arg_value": 1500, "parameter_value": 1500 },
2304 { "arg_value": 2000, "parameter_value": 2100 },
2305 { "arg_value": 2500, "parameter_value": 2750 },
2306 { "arg_value": 3050, "parameter_value": 3500 }
2307 ]
2308 }
2309 }
2310 ]
2311 },
2312 {
2313 "name": "Fan floors",
2314 "groups": [
2315 {
2316 "name": "ambient temp",
2317 "interface": "xyz.openbmc_project.Sensor.Value",
2318 "property": { "name": "Value" }
2319 }
2320 ],
2321 "triggers": [
2322 {
2323 "class": "init",
2324 "method": "get_properties"
2325 },
2326 {
2327 "class": "signal",
2328 "signal": "properties_changed"
2329 },
2330 {
2331 "class": "signal",
2332 "signal": "interfaces_added"
2333 },
2334 {
2335 "class": "parameter",
2336 "parameter": "pcie_floor_index"
2337 },
2338 {
2339 "class": "parameter",
2340 "parameter": "ambient_20_altitude_offset"
2341 },
2342 {
2343 "class": "parameter",
2344 "parameter": "ambient_25_altitude_offset"
2345 },
2346 {
2347 "class": "parameter",
2348 "parameter": "ambient_30_altitude_offset"
2349 },
2350 {
2351 "class": "parameter",
2352 "parameter": "ambient_35_altitude_offset"
2353 },
2354 {
2355 "class": "parameter",
2356 "parameter": "ambient_40_altitude_offset"
2357 }
2358 ],
2359 "actions": [
2360 {
2361 "name": "mapped_floor",
2362 "key_group": "ambient temp",
2363 "fan_floors": [
2364 {
2365 // Entry valid for temps < 20
2366 "key": 20,
2367 "default_floor": 3800,
2368 "floor_offset_parameter": "ambient_20_altitude_offset",
2369 "floors": [
2370 {
2371 "parameter": "pcie_floor_index",
2372 "floors": [
2373 { "value": 1, "floor": 3800 },
2374 { "value": 2, "floor": 4200 },
2375 { "value": 3, "floor": 4600 }
2376 ]
2377 }
2378 ]
2379 },
2380 {
2381 // Entry valid for temps < 25
2382 "key": 25,
2383 "default_floor": 4400,
2384 "floor_offset_parameter": "ambient_25_altitude_offset",
2385 "floors": [
2386 {
2387 "parameter": "pcie_floor_index",
2388 "floors": [
2389 { "value": 1, "floor": 4400 },
2390 { "value": 2, "floor": 4800 },
2391 { "value": 3, "floor": 5400 }
2392 ]
2393 }
2394 ]
2395 },
2396 {
2397 // Entry valid for temps < 30
2398 "key": 30,
2399 "default_floor": 5000,
2400 "floor_offset_parameter": "ambient_30_altitude_offset",
2401 "floors": [
2402 {
2403 "parameter": "pcie_floor_index",
2404 "floors": [
2405 { "value": 1, "floor": 5000 },
2406 { "value": 2, "floor": 5600 },
2407 { "value": 3, "floor": 6500 }
2408 ]
2409 }
2410 ]
2411 },
2412 {
2413 // Entry valid for temps < 35
2414 "key": 35,
2415 "default_floor": 5800,
2416 "floor_offset_parameter": "ambient_35_altitude_offset",
2417 "floors": [
2418 {
2419 "parameter": "pcie_floor_index",
2420 "floors": [
2421 { "value": 1, "floor": 5800 },
2422 { "value": 2, "floor": 6700 },
2423 { "value": 3, "floor": 7700 }
2424 ]
2425 }
2426 ]
2427 },
2428 {
2429 // Entry valid for temps < 40
2430 "key": 40,
2431 "default_floor": 6900,
2432 "floor_offset_parameter": "ambient_40_altitude_offset",
2433 "floors": [
2434 {
2435 "parameter": "pcie_floor_index",
2436 "floors": [
2437 { "value": 1, "floor": 6900 },
2438 { "value": 2, "floor": 7900 },
2439 { "value": 3, "floor": 9200 }
2440 ]
2441 }
2442 ]
2443 }
2444 ]
2445 }
2446 ]
2447 }
Matt Spinlera75f61e2022-05-11 13:26:52 -05002448]