blob: b9f5fec18452088dabe4cf7d8e8c98b5fa273a8c [file] [log] [blame]
Matthew Barthf0f213c2021-10-19 13:32:31 -05001[
2 {
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,
Matthew Bartheff46602022-02-11 14:10:58 -060027 "target": 18000
Matthew Barthf0f213c2021-10-19 13:32:31 -050028 }
29 ]
Matthew Barth991020b2021-10-19 13:34:33 -050030 },
31 {
32 // Hold fans at the given target when a number of rotors are nonfunctional.
33 "name": "fan rotor(s) faulted",
34 "groups": [
35 {
36 "name": "fan0 rotor inventory",
37 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
38 "property": { "name": "Functional" }
39 },
40 {
41 "name": "fan1 rotor inventory",
42 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
43 "property": { "name": "Functional" }
44 },
45 {
46 "name": "fan2 rotor inventory",
47 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
48 "property": { "name": "Functional" }
49 },
50 {
51 "name": "fan3 rotor inventory",
52 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
53 "property": { "name": "Functional" }
54 },
55 {
56 "name": "fan4 rotor inventory",
57 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
58 "property": { "name": "Functional" }
59 },
60 {
61 "name": "fan5 rotor inventory",
62 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
63 "property": { "name": "Functional" }
64 }
65 ],
66 "triggers": [
67 {
68 "class": "init",
69 "method": "get_properties"
70 },
71 {
72 "class": "signal",
73 "signal": "properties_changed"
74 }
75 ],
76 "actions": [
77 {
78 "name": "count_state_before_target",
79 "count": 1,
80 "state": false,
Matthew Bartheff46602022-02-11 14:10:58 -060081 "target": 18000
Matthew Barth991020b2021-10-19 13:34:33 -050082 }
83 ]
Matthew Barth09b09e52021-10-28 15:29:13 -050084 },
85 {
86 // Hold fans at the given target when any critical service
87 // is not running for 5 seconds.
88 "name": "service(s) missing",
89 "groups": [
90 {
Matthew Barthf3a6d452021-11-23 14:41:43 -060091 "name": "fan inventory",
92 "interface": "xyz.openbmc_project.Inventory.Item",
93 "property": { "name": "Present" }
94 },
95 {
Matthew Barth09b09e52021-10-28 15:29:13 -050096 "name": "occ objects",
97 "interface": "org.open_power.OCC.Status",
98 "property": { "name": "OccActive" }
Matthew Barth86a484f2022-01-14 13:06:50 -060099 },
100 {
101 "name": "nvme temps",
102 "interface": "xyz.openbmc_project.Sensor.Value",
103 "property": { "name": "Value" }
104 },
105 {
106 "name": "planar temps",
107 "interface": "xyz.openbmc_project.Sensor.Value",
108 "property": { "name": "Value" }
109 },
110 {
111 "name": "flett temps",
112 "interface": "xyz.openbmc_project.Sensor.Value",
113 "property": { "name": "Value" }
114 },
115 {
Matthew Barth48b74802022-01-14 15:25:24 -0600116 "name": "pcie cable card temps",
Matthew Barth86a484f2022-01-14 13:06:50 -0600117 "interface": "xyz.openbmc_project.Sensor.Value",
118 "property": { "name": "Value" }
119 },
120 {
121 "name": "ambient temp",
122 "interface": "xyz.openbmc_project.Sensor.Value",
123 "property": { "name": "Value" }
124 },
125 {
126 "name": "altitude",
127 "interface": "xyz.openbmc_project.Sensor.Value",
128 "property": { "name": "Value" }
Matthew Barth09b09e52021-10-28 15:29:13 -0500129 }
130 ],
131 "triggers": [
132 {
133 "class": "init",
134 "method": "name_has_owner"
135 },
136 {
137 "class": "signal",
138 "signal": "name_owner_changed"
139 }
140 ],
141 "actions": [
142 {
143 "name": "call_actions_based_on_timer",
144 "timer": {
145 "interval": 5000000,
146 "type": "oneshot"
147 },
148 "actions": [
149 {
150 "name": "set_target_on_missing_owner",
151 "groups": [
152 {
153 "name": "fan inventory",
154 "interface": "xyz.openbmc_project.Inventory.Item",
155 "property": { "name": "Present" }
156 },
157 {
158 "name": "occ objects",
159 "interface": "org.open_power.OCC.Status",
160 "property": { "name": "OccActive" }
Matthew Barth86a484f2022-01-14 13:06:50 -0600161 },
162 {
163 "name": "nvme temps",
164 "interface": "xyz.openbmc_project.Sensor.Value",
165 "property": { "name": "Value" }
166 },
167 {
168 "name": "planar temps",
169 "interface": "xyz.openbmc_project.Sensor.Value",
170 "property": { "name": "Value" }
171 },
172 {
173 "name": "flett temps",
174 "interface": "xyz.openbmc_project.Sensor.Value",
175 "property": { "name": "Value" }
176 },
177 {
Matthew Barth48b74802022-01-14 15:25:24 -0600178 "name": "pcie cable card temps",
Matthew Barth86a484f2022-01-14 13:06:50 -0600179 "interface": "xyz.openbmc_project.Sensor.Value",
180 "property": { "name": "Value" }
181 },
182 {
183 "name": "ambient temp",
184 "interface": "xyz.openbmc_project.Sensor.Value",
185 "property": { "name": "Value" }
Matthew Barth09b09e52021-10-28 15:29:13 -0500186 }
187 ],
Matthew Bartheff46602022-02-11 14:10:58 -0600188 "target": 18000
Matthew Barth09b09e52021-10-28 15:29:13 -0500189 }
190 ]
191 }
192 ]
Matt Spinler5934f092021-11-03 14:30:28 -0500193 },
194 {
195 // Set a fan floor if an OCC isn't active
196 "name": "Non-active OCCs",
197 "groups": [
198 {
199 "name": "occ objects",
200 "interface": "org.open_power.OCC.Status",
201 "property": {
202 "name": "OccActive"
203 }
204 }
205 ],
206 "triggers": [
207 {
208 "class": "signal",
209 "signal": "properties_changed"
210 },
211 {
212 "class": "signal",
213 "signal": "interfaces_added"
214 },
215 {
216 "class": "init",
217 "method": "get_properties"
218 }
219 ],
220 "actions": [
221 {
222 "name": "count_state_floor",
223 "count": 1,
224 "state": false,
Matthew Bartheff46602022-02-11 14:10:58 -0600225 "floor": 18000
Matt Spinler5934f092021-11-03 14:30:28 -0500226 }
227 ]
Matt Spinler323694a2021-11-11 16:03:18 -0600228 },
229 {
Matthew Barth8d6cf062022-01-13 14:02:20 -0600230 // Set a raised fan floor when any temperature or altitude sensor is
231 // nonfunctional
Matthew Barth4172d8d2022-01-13 11:31:54 -0600232 "name": "Nonfunctional temperature sensors",
Matthew Barth39925fb2022-01-12 10:45:59 -0600233 "groups": [
234 {
235 "name": "proc0 core temps",
236 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
237 "property": { "name": "Functional" }
238 },
239 {
240 "name": "proc1 core temps",
241 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
242 "property": { "name": "Functional" }
243 },
244 {
245 "name": "proc2 core temps",
246 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
247 "property": { "name": "Functional" }
248 },
249 {
250 "name": "proc3 core temps",
251 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
252 "property": { "name": "Functional" }
253 },
254 {
255 "name": "proc0 ioring temp",
256 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
257 "property": { "name": "Functional" }
258 },
259 {
260 "name": "proc1 ioring temp",
261 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
262 "property": { "name": "Functional" }
263 },
264 {
265 "name": "proc2 ioring temp",
266 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
267 "property": { "name": "Functional" }
268 },
269 {
270 "name": "proc3 ioring temp",
271 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
272 "property": { "name": "Functional" }
273 },
274 {
275 "name": "dram temps",
276 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
277 "property": { "name": "Functional" }
278 },
279 {
280 "name": "pmic temps",
281 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
282 "property": { "name": "Functional" }
283 },
284 {
285 "name": "internal memory buffer temps",
286 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
287 "property": { "name": "Functional" }
288 },
289 {
290 "name": "dram and external memory buffer temps",
291 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
292 "property": { "name": "Functional" }
293 },
294 {
295 "name": "external memory buffer temps",
296 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
297 "property": { "name": "Functional" }
298 },
299 {
300 "name": "vdd vrm temps",
301 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
302 "property": { "name": "Functional" }
Matthew Barth4172d8d2022-01-13 11:31:54 -0600303 },
304 {
305 "name": "nvme temps",
306 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
307 "property": { "name": "Functional" }
308 },
309 {
310 "name": "planar temps",
311 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
312 "property": { "name": "Functional" }
313 },
314 {
315 "name": "flett temps",
316 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
317 "property": { "name": "Functional" }
318 },
319 {
Matthew Barth48b74802022-01-14 15:25:24 -0600320 "name": "pcie cable card temps",
Matthew Barth4172d8d2022-01-13 11:31:54 -0600321 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
322 "property": { "name": "Functional" }
Matthew Barth8d6cf062022-01-13 14:02:20 -0600323 },
324 {
325 "name": "ambient temp",
326 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
327 "property": { "name": "Functional" }
328 },
329 {
330 "name": "altitude",
331 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
332 "property": { "name": "Functional" }
Matthew Barth39925fb2022-01-12 10:45:59 -0600333 }
334 ],
335 "triggers": [
336 {
337 "class": "signal",
338 "signal": "properties_changed"
339 },
340 {
341 "class": "signal",
342 "signal": "interfaces_added"
343 },
344 {
Matt Spinler0461bd22022-04-25 16:24:23 -0500345 "class": "signal",
346 "signal": "interfaces_removed"
347 },
348 {
Matthew Barth39925fb2022-01-12 10:45:59 -0600349 "class": "init",
350 "method": "get_properties"
351 }
352 ],
353 "actions": [
354 {
355 "name": "count_state_floor",
356 "count": 1,
357 "state": false,
Matthew Bartheff46602022-02-11 14:10:58 -0600358 "floor": 18000
Matthew Barth39925fb2022-01-12 10:45:59 -0600359 }
360 ]
361 },
362 {
Matt Spinler323694a2021-11-11 16:03:18 -0600363 "name": "Set Proc 0 Core DVFS parameter",
364 "groups": [
365 {
366 "name": "proc 0 core dvfs temp",
367 "interface": "xyz.openbmc_project.Sensor.Value",
368 "property": { "name": "Value" }
369 }
370 ],
371 "triggers": [
372 {
373 "class": "init",
374 "method": "get_properties"
375 },
376 {
377 "class": "signal",
378 "signal": "interfaces_added"
379 },
380 {
381 "class": "signal",
382 "signal": "properties_changed"
383 }
384 ],
385 "actions": [
386 {
387 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600388 "parameter_name": "proc_0_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600389 "modifier": {
390 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600391 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600392 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600393 },
394 {
395 "name": "set_parameter_from_group_max",
396 "parameter_name": "proc_0_core_dvfs_decrease_temp",
397 "modifier": {
398 "operator": "minus",
399 "value": 13
400 }
Matt Spinler323694a2021-11-11 16:03:18 -0600401 }
402 ]
403 },
404 {
405 "name": "Set Proc 1 Core DVFS parameter",
406 "groups": [
407 {
408 "name": "proc 1 core dvfs temp",
409 "interface": "xyz.openbmc_project.Sensor.Value",
410 "property": { "name": "Value" }
411 }
412 ],
413 "triggers": [
414 {
415 "class": "init",
416 "method": "get_properties"
417 },
418 {
419 "class": "signal",
420 "signal": "interfaces_added"
421 },
422 {
423 "class": "signal",
424 "signal": "properties_changed"
425 }
426 ],
427 "actions": [
428 {
429 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600430 "parameter_name": "proc_1_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600431 "modifier": {
432 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600433 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600434 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600435 },
436 {
437 "name": "set_parameter_from_group_max",
438 "parameter_name": "proc_1_core_dvfs_decrease_temp",
439 "modifier": {
440 "operator": "minus",
441 "value": 13
442 }
Matt Spinler323694a2021-11-11 16:03:18 -0600443 }
444 ]
445 },
446 {
447 "name": "Set Proc 2 Core DVFS parameter",
448 "groups": [
449 {
450 "name": "proc 2 core dvfs temp",
451 "interface": "xyz.openbmc_project.Sensor.Value",
452 "property": { "name": "Value" }
453 }
454 ],
455 "triggers": [
456 {
457 "class": "init",
458 "method": "get_properties"
459 },
460 {
461 "class": "signal",
462 "signal": "interfaces_added"
463 },
464 {
465 "class": "signal",
466 "signal": "properties_changed"
467 }
468 ],
469 "actions": [
470 {
471 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600472 "parameter_name": "proc_2_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600473 "modifier": {
474 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600475 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600476 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600477 },
478 {
479 "name": "set_parameter_from_group_max",
480 "parameter_name": "proc_2_core_dvfs_decrease_temp",
481 "modifier": {
482 "operator": "minus",
483 "value": 13
484 }
Matt Spinler323694a2021-11-11 16:03:18 -0600485 }
486 ]
487 },
488 {
489 "name": "Set Proc 3 Core DVFS parameter",
490 "groups": [
491 {
492 "name": "proc 3 core dvfs temp",
493 "interface": "xyz.openbmc_project.Sensor.Value",
494 "property": { "name": "Value" }
495 }
496 ],
497 "triggers": [
498 {
499 "class": "init",
500 "method": "get_properties"
501 },
502 {
503 "class": "signal",
504 "signal": "interfaces_added"
505 },
506 {
507 "class": "signal",
508 "signal": "properties_changed"
509 }
510 ],
511 "actions": [
512 {
513 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600514 "parameter_name": "proc_3_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600515 "modifier": {
516 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600517 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600518 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600519 },
520 {
521 "name": "set_parameter_from_group_max",
522 "parameter_name": "proc_3_core_dvfs_decrease_temp",
523 "modifier": {
524 "operator": "minus",
525 "value": 13
526 }
Matt Spinler323694a2021-11-11 16:03:18 -0600527 }
528 ]
529 },
530 {
531 "name": "Set Proc 0 IO Ring DVFS parameter",
532 "groups": [
533 {
534 "name": "proc 0 ioring dvfs temp",
535 "interface": "xyz.openbmc_project.Sensor.Value",
536 "property": { "name": "Value" }
537 }
538 ],
539 "triggers": [
540 {
541 "class": "init",
542 "method": "get_properties"
543 },
544 {
545 "class": "signal",
546 "signal": "interfaces_added"
547 },
548 {
549 "class": "signal",
550 "signal": "properties_changed"
551 }
552 ],
553 "actions": [
554 {
555 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600556 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600557 "modifier": {
558 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600559 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600560 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600561 },
562 {
563 "name": "set_parameter_from_group_max",
564 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
565 "modifier": {
566 "operator": "minus",
567 "value": 13
568 }
Matt Spinler323694a2021-11-11 16:03:18 -0600569 }
570 ]
571 },
572 {
573 "name": "Set Proc 1 IO Ring DVFS parameter",
574 "groups": [
575 {
576 "name": "proc 1 ioring dvfs temp",
577 "interface": "xyz.openbmc_project.Sensor.Value",
578 "property": { "name": "Value" }
579 }
580 ],
581 "triggers": [
582 {
583 "class": "init",
584 "method": "get_properties"
585 },
586 {
587 "class": "signal",
588 "signal": "interfaces_added"
589 },
590 {
591 "class": "signal",
592 "signal": "properties_changed"
593 }
594 ],
595 "actions": [
596 {
597 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600598 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600599 "modifier": {
600 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600601 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600602 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600603 },
604 {
605 "name": "set_parameter_from_group_max",
606 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
607 "modifier": {
608 "operator": "minus",
609 "value": 13
610 }
Matt Spinler323694a2021-11-11 16:03:18 -0600611 }
612 ]
613 },
614 {
615 "name": "Set Proc 2 IO Ring DVFS parameter",
616 "groups": [
617 {
618 "name": "proc 2 ioring dvfs temp",
619 "interface": "xyz.openbmc_project.Sensor.Value",
620 "property": { "name": "Value" }
621 }
622 ],
623 "triggers": [
624 {
625 "class": "init",
626 "method": "get_properties"
627 },
628 {
629 "class": "signal",
630 "signal": "interfaces_added"
631 },
632 {
633 "class": "signal",
634 "signal": "properties_changed"
635 }
636 ],
637 "actions": [
638 {
639 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600640 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600641 "modifier": {
642 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600643 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600644 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600645 },
646 {
647 "name": "set_parameter_from_group_max",
648 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
649 "modifier": {
650 "operator": "minus",
651 "value": 13
652 }
Matt Spinler323694a2021-11-11 16:03:18 -0600653 }
654 ]
655 },
656 {
657 "name": "Set Proc 3 IO Ring DVFS parameter",
658 "groups": [
659 {
660 "name": "proc 3 ioring dvfs temp",
661 "interface": "xyz.openbmc_project.Sensor.Value",
662 "property": { "name": "Value" }
663 }
664 ],
665 "triggers": [
666 {
667 "class": "init",
668 "method": "get_properties"
669 },
670 {
671 "class": "signal",
672 "signal": "properties_changed"
673 },
674 {
675 "class": "signal",
676 "signal": "interfaces_added"
677 }
678 ],
679 "actions": [
680 {
681 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600682 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600683 "modifier": {
684 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600685 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600686 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600687 },
688 {
689 "name": "set_parameter_from_group_max",
690 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
691 "modifier": {
692 "operator": "minus",
693 "value": 13
694 }
Matt Spinler323694a2021-11-11 16:03:18 -0600695 }
696 ]
Matthew Barthb6f10352021-12-02 17:42:49 -0600697 },
698 {
699 // Collect group temperatures each iteration the repeating timer expires
700 "name": "Fan control timer loop",
701 "groups": [
702 {
703 "name": "proc0 core temps",
704 "interface": "xyz.openbmc_project.Sensor.Value",
705 "property": { "name": "Value" }
706 },
707 {
708 "name": "proc1 core temps",
709 "interface": "xyz.openbmc_project.Sensor.Value",
710 "property": { "name": "Value" }
711 },
712 {
713 "name": "proc2 core temps",
714 "interface": "xyz.openbmc_project.Sensor.Value",
715 "property": { "name": "Value" }
716 },
717 {
718 "name": "proc3 core temps",
719 "interface": "xyz.openbmc_project.Sensor.Value",
720 "property": { "name": "Value" }
721 },
722 {
723 "name": "proc0 ioring temp",
724 "interface": "xyz.openbmc_project.Sensor.Value",
725 "property": { "name": "Value" }
726 },
727 {
728 "name": "proc1 ioring temp",
729 "interface": "xyz.openbmc_project.Sensor.Value",
730 "property": { "name": "Value" }
731 },
732 {
733 "name": "proc2 ioring temp",
734 "interface": "xyz.openbmc_project.Sensor.Value",
735 "property": { "name": "Value" }
736 },
737 {
738 "name": "proc3 ioring temp",
739 "interface": "xyz.openbmc_project.Sensor.Value",
740 "property": { "name": "Value" }
741 },
742 {
743 "name": "dram temps",
744 "interface": "xyz.openbmc_project.Sensor.Value",
745 "property": { "name": "Value" }
746 },
747 {
748 "name": "pmic temps",
749 "interface": "xyz.openbmc_project.Sensor.Value",
750 "property": { "name": "Value" }
751 },
752 {
753 "name": "internal memory buffer temps",
754 "interface": "xyz.openbmc_project.Sensor.Value",
755 "property": { "name": "Value" }
756 },
757 {
758 "name": "dram and external memory buffer temps",
759 "interface": "xyz.openbmc_project.Sensor.Value",
760 "property": { "name": "Value" }
761 },
762 {
763 "name": "external memory buffer temps",
764 "interface": "xyz.openbmc_project.Sensor.Value",
765 "property": { "name": "Value" }
766 },
767 {
768 "name": "vdd vrm temps",
769 "interface": "xyz.openbmc_project.Sensor.Value",
770 "property": { "name": "Value" }
Matthew Barth23a7b2b2022-01-11 15:22:55 -0600771 },
772 {
773 "name": "nvme temps",
774 "interface": "xyz.openbmc_project.Sensor.Value",
775 "property": { "name": "Value" }
776 },
777 {
778 "name": "planar temps",
779 "interface": "xyz.openbmc_project.Sensor.Value",
780 "property": { "name": "Value" }
Matt Spinler9b7fc002022-01-11 15:35:29 -0600781 },
782 {
783 "name": "flett temps",
784 "interface": "xyz.openbmc_project.Sensor.Value",
785 "property": { "name": "Value" }
786 },
787 {
Matthew Barth48b74802022-01-14 15:25:24 -0600788 "name": "pcie cable card temps",
Matt Spinler9b7fc002022-01-11 15:35:29 -0600789 "interface": "xyz.openbmc_project.Sensor.Value",
790 "property": { "name": "Value" }
Matthew Barthb6f10352021-12-02 17:42:49 -0600791 }
792 ],
793 "triggers": [
794 {
795 "class": "timer",
796 "type": "repeating",
797 "interval": 2000000,
798 "preload_groups": true
799 }
Matthew Barth6f63b2f2021-12-06 21:08:13 -0600800 ],
801 "actions": [
802 {
803 "name": "set_net_increase_target",
804 "groups": [
805 {
806 "name": "proc0 core temps",
807 "interface": "xyz.openbmc_project.Sensor.Value",
808 "property": { "name": "Value" }
809 }
810 ],
811 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
812 "delta": 300
813 },
814 {
815 "name": "set_net_increase_target",
816 "groups": [
817 {
818 "name": "proc1 core temps",
819 "interface": "xyz.openbmc_project.Sensor.Value",
820 "property": { "name": "Value" }
821 }
822 ],
823 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
824 "delta": 300
825 },
826 {
827 "name": "set_net_increase_target",
828 "groups": [
829 {
830 "name": "proc2 core temps",
831 "interface": "xyz.openbmc_project.Sensor.Value",
832 "property": { "name": "Value" }
833 }
834 ],
835 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
836 "delta": 300
837 },
838 {
839 "name": "set_net_increase_target",
840 "groups": [
841 {
842 "name": "proc3 core temps",
843 "interface": "xyz.openbmc_project.Sensor.Value",
844 "property": { "name": "Value" }
845 }
846 ],
847 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
848 "delta": 300
849 },
850 {
851 "name": "set_net_increase_target",
852 "groups": [
853 {
854 "name": "proc0 ioring temp",
855 "interface": "xyz.openbmc_project.Sensor.Value",
856 "property": { "name": "Value" }
857 }
858 ],
859 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
860 "delta": 300
861 },
862 {
863 "name": "set_net_increase_target",
864 "groups": [
865 {
866 "name": "proc1 ioring temp",
867 "interface": "xyz.openbmc_project.Sensor.Value",
868 "property": { "name": "Value" }
869 }
870 ],
871 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
872 "delta": 300
873 },
874 {
875 "name": "set_net_increase_target",
876 "groups": [
877 {
878 "name": "proc2 ioring temp",
879 "interface": "xyz.openbmc_project.Sensor.Value",
880 "property": { "name": "Value" }
881 }
882 ],
883 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
884 "delta": 300
885 },
886 {
887 "name": "set_net_increase_target",
888 "groups": [
889 {
890 "name": "proc3 ioring temp",
891 "interface": "xyz.openbmc_project.Sensor.Value",
892 "property": { "name": "Value" }
893 }
894 ],
895 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
896 "delta": 300
897 },
898 {
899 "name": "set_net_increase_target",
900 "groups": [
901 {
902 "name": "dram temps",
903 "interface": "xyz.openbmc_project.Sensor.Value",
904 "property": { "name": "Value" }
905 }
906 ],
Matthew Barthb12f9062022-03-24 08:59:45 -0500907 "state": 68.0,
Matthew Bartheff46602022-02-11 14:10:58 -0600908 "delta": 100
Matthew Barth6f63b2f2021-12-06 21:08:13 -0600909 },
910 {
911 "name": "set_net_increase_target",
912 "groups": [
913 {
914 "name": "pmic temps",
915 "interface": "xyz.openbmc_project.Sensor.Value",
916 "property": { "name": "Value" }
917 }
918 ],
Matthew Barthb12f9062022-03-24 08:59:45 -0500919 "state": 68.0,
Matthew Bartheff46602022-02-11 14:10:58 -0600920 "delta": 100
Matthew Barth6f63b2f2021-12-06 21:08:13 -0600921 },
922 {
923 "name": "set_net_increase_target",
924 "groups": [
925 {
926 "name": "internal memory buffer temps",
927 "interface": "xyz.openbmc_project.Sensor.Value",
928 "property": { "name": "Value" }
929 }
930 ],
Matthew Bartheff46602022-02-11 14:10:58 -0600931 "state": 74.0,
932 "delta": 100
Matthew Barth6f63b2f2021-12-06 21:08:13 -0600933 },
934 {
935 "name": "set_net_increase_target",
936 "groups": [
937 {
938 "name": "dram and external memory buffer temps",
939 "interface": "xyz.openbmc_project.Sensor.Value",
940 "property": { "name": "Value" }
941 }
942 ],
943 "state": 55.0,
944 "delta": 200
945 },
946 {
947 "name": "set_net_increase_target",
948 "groups": [
949 {
950 "name": "external memory buffer temps",
951 "interface": "xyz.openbmc_project.Sensor.Value",
952 "property": { "name": "Value" }
953 }
954 ],
955 "state": 55.0,
956 "delta": 200
957 },
958 {
959 "name": "set_net_increase_target",
960 "groups": [
961 {
962 "name": "vdd vrm temps",
963 "interface": "xyz.openbmc_project.Sensor.Value",
964 "property": { "name": "Value" }
965 }
966 ],
967 "state": 82.0,
968 "delta": 300
Matthew Barthb253cbd2021-12-06 21:47:50 -0600969 },
970 {
Matthew Barthb28663e2021-12-08 21:52:00 -0600971 "name": "set_net_increase_target",
972 "groups": [
973 {
974 "name": "nvme temps",
975 "interface": "xyz.openbmc_project.Sensor.Value",
976 "property": { "name": "Value" }
977 }
978 ],
979 "state": 58.0,
980 "delta": 200
981 },
982 {
Matthew Barth075fcd82021-12-13 20:56:49 -0600983 "name": "set_net_increase_target",
984 "groups": [
985 {
986 "name": "planar temps",
987 "interface": "xyz.openbmc_project.Sensor.Value",
988 "property": { "name": "Value" }
989 }
990 ],
991 "state": 65.0,
992 "delta": 255
993 },
994 {
Matt Spinler1006fe32022-01-10 14:06:22 -0600995 "name": "set_net_increase_target",
996 "groups": [
997 {
998 "name": "flett temps",
999 "interface": "xyz.openbmc_project.Sensor.Value",
1000 "property": { "name": "Value" }
1001 }
1002 ],
Matthew Bartheff46602022-02-11 14:10:58 -06001003 "state": 80.0,
1004 "delta": 200
Matt Spinler1006fe32022-01-10 14:06:22 -06001005 },
1006 {
1007 "name": "set_net_increase_target",
1008 "groups": [
1009 {
Matthew Barth48b74802022-01-14 15:25:24 -06001010 "name": "pcie cable card temps",
Matt Spinler1006fe32022-01-10 14:06:22 -06001011 "interface": "xyz.openbmc_project.Sensor.Value",
1012 "property": { "name": "Value" }
1013 }
1014 ],
1015 "state": 70.0,
1016 "delta": 255
1017 },
1018 {
Matthew Barthb253cbd2021-12-06 21:47:50 -06001019 "name": "set_net_decrease_target",
1020 "groups": [
1021 {
1022 "name": "proc0 core temps",
1023 "interface": "xyz.openbmc_project.Sensor.Value",
1024 "property": { "name": "Value" }
1025 }
1026 ],
1027 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001028 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001029 },
1030 {
1031 "name": "set_net_decrease_target",
1032 "groups": [
1033 {
1034 "name": "proc1 core temps",
1035 "interface": "xyz.openbmc_project.Sensor.Value",
1036 "property": { "name": "Value" }
1037 }
1038 ],
1039 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001040 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001041 },
1042 {
1043 "name": "set_net_decrease_target",
1044 "groups": [
1045 {
1046 "name": "proc2 core temps",
1047 "interface": "xyz.openbmc_project.Sensor.Value",
1048 "property": { "name": "Value" }
1049 }
1050 ],
1051 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001052 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001053 },
1054 {
1055 "name": "set_net_decrease_target",
1056 "groups": [
1057 {
1058 "name": "proc3 core temps",
1059 "interface": "xyz.openbmc_project.Sensor.Value",
1060 "property": { "name": "Value" }
1061 }
1062 ],
1063 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001064 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001065 },
1066 {
1067 "name": "set_net_decrease_target",
1068 "groups": [
1069 {
1070 "name": "proc0 ioring temp",
1071 "interface": "xyz.openbmc_project.Sensor.Value",
1072 "property": { "name": "Value" }
1073 }
1074 ],
1075 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001076 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001077 },
1078 {
1079 "name": "set_net_decrease_target",
1080 "groups": [
1081 {
1082 "name": "proc1 ioring temp",
1083 "interface": "xyz.openbmc_project.Sensor.Value",
1084 "property": { "name": "Value" }
1085 }
1086 ],
1087 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001088 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001089 },
1090 {
1091 "name": "set_net_decrease_target",
1092 "groups": [
1093 {
1094 "name": "proc2 ioring temp",
1095 "interface": "xyz.openbmc_project.Sensor.Value",
1096 "property": { "name": "Value" }
1097 }
1098 ],
1099 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001100 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001101 },
1102 {
1103 "name": "set_net_decrease_target",
1104 "groups": [
1105 {
1106 "name": "proc3 ioring temp",
1107 "interface": "xyz.openbmc_project.Sensor.Value",
1108 "property": { "name": "Value" }
1109 }
1110 ],
1111 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
Matthew Bartheff46602022-02-11 14:10:58 -06001112 "delta": 50
Matthew Barthb253cbd2021-12-06 21:47:50 -06001113 },
1114 {
1115 "name": "set_net_decrease_target",
1116 "groups": [
1117 {
1118 "name": "dram temps",
1119 "interface": "xyz.openbmc_project.Sensor.Value",
1120 "property": { "name": "Value" }
1121 }
1122 ],
Matthew Barthb12f9062022-03-24 08:59:45 -05001123 "state": 65.0,
Matthew Barthb253cbd2021-12-06 21:47:50 -06001124 "delta": 40
1125 },
1126 {
1127 "name": "set_net_decrease_target",
1128 "groups": [
1129 {
1130 "name": "pmic temps",
1131 "interface": "xyz.openbmc_project.Sensor.Value",
1132 "property": { "name": "Value" }
1133 }
1134 ],
Matthew Barthb12f9062022-03-24 08:59:45 -05001135 "state": 65.0,
Matthew Barthb253cbd2021-12-06 21:47:50 -06001136 "delta": 40
1137 },
1138 {
1139 "name": "set_net_decrease_target",
1140 "groups": [
1141 {
1142 "name": "internal memory buffer temps",
1143 "interface": "xyz.openbmc_project.Sensor.Value",
1144 "property": { "name": "Value" }
1145 }
1146 ],
Matthew Bartheff46602022-02-11 14:10:58 -06001147 "state": 71.0,
Matthew Barthb253cbd2021-12-06 21:47:50 -06001148 "delta": 40
1149 },
1150 {
1151 "name": "set_net_decrease_target",
1152 "groups": [
1153 {
1154 "name": "dram and external memory buffer temps",
1155 "interface": "xyz.openbmc_project.Sensor.Value",
1156 "property": { "name": "Value" }
1157 }
1158 ],
1159 "state": 52.0,
1160 "delta": 40
1161 },
1162 {
1163 "name": "set_net_decrease_target",
1164 "groups": [
1165 {
1166 "name": "external memory buffer temps",
1167 "interface": "xyz.openbmc_project.Sensor.Value",
1168 "property": { "name": "Value" }
1169 }
1170 ],
1171 "state": 52.0,
1172 "delta": 40
1173 },
1174 {
1175 "name": "set_net_decrease_target",
1176 "groups": [
1177 {
1178 "name": "vdd vrm temps",
1179 "interface": "xyz.openbmc_project.Sensor.Value",
1180 "property": { "name": "Value" }
1181 }
1182 ],
1183 "state": 79.0,
1184 "delta": 30
Matthew Barth85080982021-12-08 22:27:29 -06001185 },
1186 {
1187 "name": "set_net_decrease_target",
1188 "groups": [
1189 {
1190 "name": "nvme temps",
1191 "interface": "xyz.openbmc_project.Sensor.Value",
1192 "property": { "name": "Value" }
1193 }
1194 ],
1195 "state": 55.0,
1196 "delta": 40
Matthew Barth075fcd82021-12-13 20:56:49 -06001197 },
1198 {
1199 "name": "set_net_decrease_target",
1200 "groups": [
1201 {
1202 "name": "planar temps",
1203 "interface": "xyz.openbmc_project.Sensor.Value",
1204 "property": { "name": "Value" }
1205 }
1206 ],
1207 "state": 60.0,
1208 "delta": 80
Matt Spinler1006fe32022-01-10 14:06:22 -06001209 },
1210 {
1211 "name": "set_net_decrease_target",
1212 "groups": [
1213 {
1214 "name": "flett temps",
1215 "interface": "xyz.openbmc_project.Sensor.Value",
1216 "property": { "name": "Value" }
1217 }
1218 ],
Matthew Bartheff46602022-02-11 14:10:58 -06001219 "state": 75.0,
Matt Spinler1006fe32022-01-10 14:06:22 -06001220 "delta": 80
1221 },
1222 {
1223 "name": "set_net_decrease_target",
1224 "groups": [
1225 {
Matthew Barth48b74802022-01-14 15:25:24 -06001226 "name": "pcie cable card temps",
Matt Spinler1006fe32022-01-10 14:06:22 -06001227 "interface": "xyz.openbmc_project.Sensor.Value",
1228 "property": { "name": "Value" }
1229 }
1230 ],
1231 "state": 65.0,
1232 "delta": 80
Matthew Barth6f63b2f2021-12-06 21:08:13 -06001233 }
Matthew Barthb6f10352021-12-02 17:42:49 -06001234 ]
Matthew Barthcf34be22021-12-08 22:53:48 -06001235 },
1236 {
1237 // Remove NVMe temperature objects from cache when they are removed from
1238 // dbus. There's no need to react to their removal.
1239 "name": "remove nvme objects",
1240 "groups": [
1241 {
1242 "name": "nvme temps",
1243 "interface": "xyz.openbmc_project.Sensor.Value",
1244 "property": { "name": "Value" }
Matt Spinler0461bd22022-04-25 16:24:23 -05001245 },
1246 {
1247 "name": "nvme temps",
1248 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
1249 "property": { "name": "Functional" }
Matthew Barthcf34be22021-12-08 22:53:48 -06001250 }
1251 ],
1252 "triggers": [
1253 {
1254 "class": "signal",
1255 "signal": "interfaces_removed"
1256 }
1257 ]
Matt Spinlerc02a8262022-01-05 15:12:10 -06001258 },
1259 {
1260 "name": "set pcie floor index",
1261 "groups": [
1262 {
1263 "name": "pcie slots",
1264 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1265 "property": {
1266 "name": "PowerState"
1267 }
1268 },
1269 {
1270 "name": "pcie cards",
1271 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1272 "property": {
1273 "name": "Function0DeviceId"
1274 }
1275 },
1276 {
1277 "name": "pcie cards",
1278 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1279 "property": {
1280 "name": "Function0VendorId"
1281 }
1282 },
1283 {
1284 "name": "pcie cards",
1285 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1286 "property": {
1287 "name": "Function0SubsystemId"
1288 }
1289 },
1290 {
1291 "name": "pcie cards",
1292 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1293 "property": {
1294 "name": "Function0SubsystemVendorId"
1295 }
1296 }
1297 ],
1298 "triggers": [
1299 {
1300 "class": "init",
1301 "method": "get_properties"
1302 },
1303 {
1304 "class": "signal",
1305 "signal": "properties_changed"
1306 },
1307 {
1308 "class": "signal",
1309 "signal": "interfaces_added"
1310 }
1311 ],
1312 "actions": [
1313 {
1314 "name": "pcie_card_floors",
1315 "use_config_specific_files": true,
1316 "settle_time": 2
1317 }
1318 ]
1319 },
1320 {
Matthew Barth8b93d342022-03-10 10:22:04 -06001321 "name": "Set altitude offset parameter",
1322 "groups": [
1323 {
1324 "name": "altitude",
1325 "interface": "xyz.openbmc_project.Sensor.Value",
1326 "property": { "name": "Value" }
1327 }
1328 ],
1329 "triggers": [
1330 {
1331 "class": "init",
1332 "method": "get_properties"
1333 },
1334 {
1335 "class": "signal",
1336 "signal": "interfaces_added"
1337 },
1338 {
1339 // Refresh altitude every 24hrs
1340 "class": "timer",
1341 "type": "repeating",
1342 "interval": 86400000000,
1343 "preload_groups": true
1344 }
1345 ],
1346 "actions": [
1347 {
1348 "name": "set_parameter_from_group_max",
1349 "parameter_name": "ambient_20_altitude_offset",
1350 "modifier": {
1351 "operator": "less_than",
Matthew Barth9569ee42022-03-11 15:39:49 -06001352 "default_value": 10000,
Matthew Barth8b93d342022-03-10 10:22:04 -06001353 "value": [
1354 { "arg_value": 500, "parameter_value": 0 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001355 { "arg_value": 1000, "parameter_value": 700 },
Matthew Barth8b93d342022-03-10 10:22:04 -06001356 { "arg_value": 1500, "parameter_value": 1600 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001357 { "arg_value": 2000, "parameter_value": 2300 },
Matthew Barth8b93d342022-03-10 10:22:04 -06001358 { "arg_value": 2500, "parameter_value": 3200 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001359 { "arg_value": 3300, "parameter_value": 4000 }
Matthew Barth8b93d342022-03-10 10:22:04 -06001360 ]
1361 }
1362 },
1363 {
1364 "name": "set_parameter_from_group_max",
1365 "parameter_name": "ambient_25_altitude_offset",
1366 "modifier": {
1367 "operator": "less_than",
Matthew Barth9569ee42022-03-11 15:39:49 -06001368 "default_value": 10000,
Matthew Barth8b93d342022-03-10 10:22:04 -06001369 "value": [
1370 { "arg_value": 500, "parameter_value": 0 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001371 { "arg_value": 1000, "parameter_value": 1000 },
1372 { "arg_value": 1500, "parameter_value": 2100 },
1373 { "arg_value": 2000, "parameter_value": 3100 },
1374 { "arg_value": 2500, "parameter_value": 4100 },
1375 { "arg_value": 3300, "parameter_value": 4900 }
Matthew Barth8b93d342022-03-10 10:22:04 -06001376 ]
1377 }
1378 },
1379 {
1380 "name": "set_parameter_from_group_max",
1381 "parameter_name": "ambient_30_altitude_offset",
1382 "modifier": {
1383 "operator": "less_than",
Matthew Barth9569ee42022-03-11 15:39:49 -06001384 "default_value": 10000,
Matthew Barth8b93d342022-03-10 10:22:04 -06001385 "value": [
1386 { "arg_value": 500, "parameter_value": 0 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001387 { "arg_value": 1000, "parameter_value": 1000 },
1388 { "arg_value": 1500, "parameter_value": 2100 },
1389 { "arg_value": 2000, "parameter_value": 3200 },
1390 { "arg_value": 2500, "parameter_value": 4000 },
1391 { "arg_value": 3300, "parameter_value": 4800 }
Matthew Barth8b93d342022-03-10 10:22:04 -06001392 ]
1393 }
1394 },
1395 {
1396 "name": "set_parameter_from_group_max",
1397 "parameter_name": "ambient_35_altitude_offset",
1398 "modifier": {
1399 "operator": "less_than",
Matthew Barth9569ee42022-03-11 15:39:49 -06001400 "default_value": 10000,
Matthew Barth8b93d342022-03-10 10:22:04 -06001401 "value": [
1402 { "arg_value": 500, "parameter_value": 0 },
1403 { "arg_value": 1000, "parameter_value": 900 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001404 { "arg_value": 1500, "parameter_value": 1700 },
1405 { "arg_value": 2000, "parameter_value": 2500 },
1406 { "arg_value": 2500, "parameter_value": 3400 },
1407 { "arg_value": 3300, "parameter_value": 4200 }
Matthew Barth8b93d342022-03-10 10:22:04 -06001408 ]
1409 }
1410 },
1411 {
1412 "name": "set_parameter_from_group_max",
1413 "parameter_name": "ambient_40_altitude_offset",
1414 "modifier": {
1415 "operator": "less_than",
Matthew Barth9569ee42022-03-11 15:39:49 -06001416 "default_value": 10000,
Matthew Barth8b93d342022-03-10 10:22:04 -06001417 "value": [
1418 { "arg_value": 500, "parameter_value": 0 },
Matthew Barth9569ee42022-03-11 15:39:49 -06001419 { "arg_value": 1000, "parameter_value": 1000 },
1420 { "arg_value": 1500, "parameter_value": 1900 },
1421 { "arg_value": 2000, "parameter_value": 2800 },
1422 { "arg_value": 2500, "parameter_value": 3700 },
1423 { "arg_value": 3300, "parameter_value": 4500 }
Matthew Barth8b93d342022-03-10 10:22:04 -06001424 ]
1425 }
1426 }
1427 ]
1428 },
1429 {
Matt Spinlerc02a8262022-01-05 15:12:10 -06001430 "name": "Fan floors",
1431 "groups": [
1432 {
Matt Spinlerc02a8262022-01-05 15:12:10 -06001433 "name": "ambient temp",
1434 "interface": "xyz.openbmc_project.Sensor.Value",
1435 "property": { "name": "Value" }
1436 }
1437 ],
1438 "triggers": [
1439 {
1440 "class": "init",
1441 "method": "get_properties"
1442 },
1443 {
1444 "class": "signal",
1445 "signal": "properties_changed"
1446 },
1447 {
1448 "class": "signal",
1449 "signal": "interfaces_added"
Matt Spinler3a53f2c2022-02-18 09:24:05 -06001450 },
1451 {
1452 "class": "parameter",
1453 "parameter": "pcie_floor_index"
Matthew Barth8b93d342022-03-10 10:22:04 -06001454 },
1455 {
1456 "class": "parameter",
1457 "parameter": "ambient_20_altitude_offset"
1458 },
1459 {
1460 "class": "parameter",
1461 "parameter": "ambient_25_altitude_offset"
1462 },
1463 {
1464 "class": "parameter",
1465 "parameter": "ambient_30_altitude_offset"
1466 },
1467 {
1468 "class": "parameter",
1469 "parameter": "ambient_35_altitude_offset"
1470 },
1471 {
1472 "class": "parameter",
1473 "parameter": "ambient_40_altitude_offset"
Matt Spinlerc02a8262022-01-05 15:12:10 -06001474 }
1475 ],
1476 "actions": [
1477 {
1478 "name": "mapped_floor",
1479 "key_group": "ambient temp",
1480 "fan_floors": [
1481 {
1482 // Entry valid for temps < 20
1483 "key": 20,
Matthew Barth9569ee42022-03-11 15:39:49 -06001484 "default_floor": 5400,
Matthew Barth8b93d342022-03-10 10:22:04 -06001485 "floor_offset_parameter": "ambient_20_altitude_offset",
Matt Spinlerc02a8262022-01-05 15:12:10 -06001486 "floors": [
1487 {
1488 "parameter": "pcie_floor_index",
1489 "floors": [
Matthew Barth9569ee42022-03-11 15:39:49 -06001490 { "value": 1, "floor": 5600 },
1491 { "value": 2, "floor": 9000 },
1492 { "value": 3, "floor": 9000 },
1493 { "value": 4, "floor": 9200 },
1494 { "value": 5, "floor": 10600 }
Matt Spinlerc02a8262022-01-05 15:12:10 -06001495 ]
Matt Spinlerc02a8262022-01-05 15:12:10 -06001496 }
1497 ]
1498 },
1499 {
1500 // Entry valid for temps < 25
1501 "key": 25,
Matthew Barth9569ee42022-03-11 15:39:49 -06001502 "default_floor": 7300,
Matthew Barth8b93d342022-03-10 10:22:04 -06001503 "floor_offset_parameter": "ambient_25_altitude_offset",
Matt Spinlerc02a8262022-01-05 15:12:10 -06001504 "floors": [
1505 {
1506 "parameter": "pcie_floor_index",
1507 "floors": [
Matthew Barth9569ee42022-03-11 15:39:49 -06001508 { "value": 1, "floor": 7800 },
1509 { "value": 2, "floor": 10700 },
1510 { "value": 3, "floor": 11300 },
1511 { "value": 4, "floor": 12700 },
1512 { "value": 5, "floor": 13900 }
Matt Spinlerc02a8262022-01-05 15:12:10 -06001513 ]
Matt Spinlerc02a8262022-01-05 15:12:10 -06001514 }
1515 ]
1516 },
1517 {
1518 // Entry valid for temps < 30
1519 "key": 30,
Matthew Barth9569ee42022-03-11 15:39:49 -06001520 "default_floor": 9100,
Matthew Barth8b93d342022-03-10 10:22:04 -06001521 "floor_offset_parameter": "ambient_30_altitude_offset",
Matt Spinlerc02a8262022-01-05 15:12:10 -06001522 "floors": [
1523 {
1524 "parameter": "pcie_floor_index",
1525 "floors": [
Matthew Barth9569ee42022-03-11 15:39:49 -06001526 { "value": 1, "floor": 10300 },
1527 { "value": 2, "floor": 12100 },
1528 { "value": 3, "floor": 14400 },
1529 { "value": 4, "floor": 16300 },
1530 { "value": 5, "floor": 17200 }
Matt Spinlerc02a8262022-01-05 15:12:10 -06001531 ]
Matt Spinlerc02a8262022-01-05 15:12:10 -06001532 }
1533 ]
1534 },
1535 {
1536 // Entry valid for temps < 35
1537 "key": 35,
Matthew Barth9569ee42022-03-11 15:39:49 -06001538 "default_floor": 10800,
Matthew Barth8b93d342022-03-10 10:22:04 -06001539 "floor_offset_parameter": "ambient_35_altitude_offset",
Matt Spinlerc02a8262022-01-05 15:12:10 -06001540 "floors": [
1541 {
1542 "parameter": "pcie_floor_index",
1543 "floors": [
Matthew Barth9569ee42022-03-11 15:39:49 -06001544 { "value": 1, "floor": 12700 },
1545 { "value": 2, "floor": 13500 },
1546 { "value": 3, "floor": 17400 },
Matthew Bartheff46602022-02-11 14:10:58 -06001547 { "value": 4, "floor": 18000 },
1548 { "value": 5, "floor": 18000 }
Matt Spinlerc02a8262022-01-05 15:12:10 -06001549 ]
Matthew Bartheff46602022-02-11 14:10:58 -06001550 }
1551 ]
1552 },
1553 {
1554 // Entry valid for temps < 40
1555 "key": 40,
Matthew Barth9569ee42022-03-11 15:39:49 -06001556 "default_floor": 12600,
Matthew Barth8b93d342022-03-10 10:22:04 -06001557 "floor_offset_parameter": "ambient_40_altitude_offset",
Matthew Bartheff46602022-02-11 14:10:58 -06001558 "floors": [
1559 {
1560 "parameter": "pcie_floor_index",
1561 "floors": [
Matthew Barth9569ee42022-03-11 15:39:49 -06001562 { "value": 1, "floor": 15000 },
1563 { "value": 2, "floor": 15500 },
Matthew Bartheff46602022-02-11 14:10:58 -06001564 { "value": 3, "floor": 18000 },
1565 { "value": 4, "floor": 18000 },
1566 { "value": 5, "floor": 18000 }
1567 ]
Matt Spinlerc02a8262022-01-05 15:12:10 -06001568 }
1569 ]
1570 }
1571 ]
1572 }
1573 ]
Matt Spinler323694a2021-11-11 16:03:18 -06001574 }
Matthew Barthf0f213c2021-10-19 13:32:31 -05001575]