blob: 83c401083903012c1621683a4ae1543a79c6bd06 [file] [log] [blame]
Matthew Barth23dcffd2021-10-19 13:36:51 -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 Barthb20f2fe2022-02-11 15:29:29 -060027 "target": 10400
Matthew Barth23dcffd2021-10-19 13:36:51 -050028 }
29 ]
Matthew Barth322dbc52021-10-19 13:39:04 -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 Barthb20f2fe2022-02-11 15:29:29 -060081 "target": 10400
Matthew Barth322dbc52021-10-19 13:39:04 -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" }
Matthew Barth09b09e52021-10-28 15:29:13 -0500124 }
125 ],
126 "triggers": [
127 {
128 "class": "init",
129 "method": "name_has_owner"
130 },
131 {
132 "class": "signal",
133 "signal": "name_owner_changed"
134 }
135 ],
136 "actions": [
137 {
138 "name": "call_actions_based_on_timer",
139 "timer": {
140 "interval": 5000000,
141 "type": "oneshot"
142 },
143 "actions": [
144 {
145 "name": "set_target_on_missing_owner",
146 "groups": [
147 {
148 "name": "fan inventory",
149 "interface": "xyz.openbmc_project.Inventory.Item",
150 "property": { "name": "Present" }
151 },
152 {
153 "name": "occ objects",
154 "interface": "org.open_power.OCC.Status",
155 "property": { "name": "OccActive" }
Matthew Barth86a484f2022-01-14 13:06:50 -0600156 },
157 {
158 "name": "nvme temps",
159 "interface": "xyz.openbmc_project.Sensor.Value",
160 "property": { "name": "Value" }
161 },
162 {
163 "name": "planar temps",
164 "interface": "xyz.openbmc_project.Sensor.Value",
165 "property": { "name": "Value" }
166 },
167 {
168 "name": "flett temps",
169 "interface": "xyz.openbmc_project.Sensor.Value",
170 "property": { "name": "Value" }
171 },
172 {
Matthew Barth48b74802022-01-14 15:25:24 -0600173 "name": "pcie cable card temps",
Matthew Barth86a484f2022-01-14 13:06:50 -0600174 "interface": "xyz.openbmc_project.Sensor.Value",
175 "property": { "name": "Value" }
176 },
177 {
178 "name": "ambient temp",
179 "interface": "xyz.openbmc_project.Sensor.Value",
180 "property": { "name": "Value" }
Matthew Barth09b09e52021-10-28 15:29:13 -0500181 }
182 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600183 "target": 10400
Matthew Barth09b09e52021-10-28 15:29:13 -0500184 }
185 ]
186 }
187 ]
Matt Spinler5934f092021-11-03 14:30:28 -0500188 },
189 {
190 // Set a fan floor if an OCC isn't active
191 "name": "Non-active OCCs",
192 "groups": [
193 {
194 "name": "occ objects",
195 "interface": "org.open_power.OCC.Status",
196 "property": {
197 "name": "OccActive"
198 }
199 }
200 ],
201 "triggers": [
202 {
203 "class": "signal",
204 "signal": "properties_changed"
205 },
206 {
207 "class": "signal",
208 "signal": "interfaces_added"
209 },
210 {
211 "class": "init",
212 "method": "get_properties"
213 }
214 ],
215 "actions": [
216 {
217 "name": "count_state_floor",
218 "count": 1,
219 "state": false,
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600220 "floor": 10400
Matt Spinler5934f092021-11-03 14:30:28 -0500221 }
222 ]
Matt Spinler323694a2021-11-11 16:03:18 -0600223 },
224 {
Matthew Barth4172d8d2022-01-13 11:31:54 -0600225 // Set a raised fan floor when any temperature sensor is nonfunctional
226 "name": "Nonfunctional temperature sensors",
Matthew Barth39925fb2022-01-12 10:45:59 -0600227 "groups": [
228 {
229 "name": "proc0 core temps",
230 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
231 "property": { "name": "Functional" }
232 },
233 {
234 "name": "proc1 core temps",
235 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
236 "property": { "name": "Functional" }
237 },
238 {
239 "name": "proc2 core temps",
240 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
241 "property": { "name": "Functional" }
242 },
243 {
244 "name": "proc3 core temps",
245 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
246 "property": { "name": "Functional" }
247 },
248 {
249 "name": "proc0 ioring temp",
250 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
251 "property": { "name": "Functional" }
252 },
253 {
254 "name": "proc1 ioring temp",
255 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
256 "property": { "name": "Functional" }
257 },
258 {
259 "name": "proc2 ioring temp",
260 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
261 "property": { "name": "Functional" }
262 },
263 {
264 "name": "proc3 ioring temp",
265 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
266 "property": { "name": "Functional" }
267 },
268 {
269 "name": "dram temps",
270 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
271 "property": { "name": "Functional" }
272 },
273 {
274 "name": "pmic temps",
275 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
276 "property": { "name": "Functional" }
277 },
278 {
279 "name": "internal memory buffer temps",
280 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
281 "property": { "name": "Functional" }
282 },
283 {
284 "name": "dram and external memory buffer temps",
285 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
286 "property": { "name": "Functional" }
287 },
288 {
289 "name": "external memory buffer temps",
290 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
291 "property": { "name": "Functional" }
292 },
293 {
294 "name": "vdd vrm temps",
295 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
296 "property": { "name": "Functional" }
Matthew Barth4172d8d2022-01-13 11:31:54 -0600297 },
298 {
299 "name": "nvme temps",
300 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
301 "property": { "name": "Functional" }
302 },
303 {
304 "name": "planar temps",
305 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
306 "property": { "name": "Functional" }
307 },
308 {
309 "name": "flett temps",
310 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
311 "property": { "name": "Functional" }
312 },
313 {
Matthew Barth48b74802022-01-14 15:25:24 -0600314 "name": "pcie cable card temps",
Matthew Barth4172d8d2022-01-13 11:31:54 -0600315 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
316 "property": { "name": "Functional" }
Matthew Barth8d6cf062022-01-13 14:02:20 -0600317 },
318 {
319 "name": "ambient temp",
320 "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
321 "property": { "name": "Functional" }
Matthew Barth39925fb2022-01-12 10:45:59 -0600322 }
323 ],
324 "triggers": [
325 {
326 "class": "signal",
327 "signal": "properties_changed"
328 },
329 {
330 "class": "signal",
331 "signal": "interfaces_added"
332 },
333 {
334 "class": "init",
335 "method": "get_properties"
336 }
337 ],
338 "actions": [
339 {
340 "name": "count_state_floor",
341 "count": 1,
342 "state": false,
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600343 "floor": 10400
Matthew Barth39925fb2022-01-12 10:45:59 -0600344 }
345 ]
346 },
347 {
Matt Spinler323694a2021-11-11 16:03:18 -0600348 "name": "Set Proc 0 Core DVFS parameter",
349 "groups": [
350 {
351 "name": "proc 0 core dvfs temp",
352 "interface": "xyz.openbmc_project.Sensor.Value",
353 "property": { "name": "Value" }
354 }
355 ],
356 "triggers": [
357 {
358 "class": "init",
359 "method": "get_properties"
360 },
361 {
362 "class": "signal",
363 "signal": "interfaces_added"
364 },
365 {
366 "class": "signal",
367 "signal": "properties_changed"
368 }
369 ],
370 "actions": [
371 {
372 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600373 "parameter_name": "proc_0_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600374 "modifier": {
375 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600376 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600377 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600378 },
379 {
380 "name": "set_parameter_from_group_max",
381 "parameter_name": "proc_0_core_dvfs_decrease_temp",
382 "modifier": {
383 "operator": "minus",
384 "value": 13
385 }
Matt Spinler323694a2021-11-11 16:03:18 -0600386 }
387 ]
388 },
389 {
390 "name": "Set Proc 1 Core DVFS parameter",
391 "groups": [
392 {
393 "name": "proc 1 core dvfs temp",
394 "interface": "xyz.openbmc_project.Sensor.Value",
395 "property": { "name": "Value" }
396 }
397 ],
398 "triggers": [
399 {
400 "class": "init",
401 "method": "get_properties"
402 },
403 {
404 "class": "signal",
405 "signal": "interfaces_added"
406 },
407 {
408 "class": "signal",
409 "signal": "properties_changed"
410 }
411 ],
412 "actions": [
413 {
414 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600415 "parameter_name": "proc_1_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600416 "modifier": {
417 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600418 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600419 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600420 },
421 {
422 "name": "set_parameter_from_group_max",
423 "parameter_name": "proc_1_core_dvfs_decrease_temp",
424 "modifier": {
425 "operator": "minus",
426 "value": 13
427 }
Matt Spinler323694a2021-11-11 16:03:18 -0600428 }
429 ]
430 },
431 {
432 "name": "Set Proc 2 Core DVFS parameter",
433 "groups": [
434 {
435 "name": "proc 2 core dvfs temp",
436 "interface": "xyz.openbmc_project.Sensor.Value",
437 "property": { "name": "Value" }
438 }
439 ],
440 "triggers": [
441 {
442 "class": "init",
443 "method": "get_properties"
444 },
445 {
446 "class": "signal",
447 "signal": "interfaces_added"
448 },
449 {
450 "class": "signal",
451 "signal": "properties_changed"
452 }
453 ],
454 "actions": [
455 {
456 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600457 "parameter_name": "proc_2_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600458 "modifier": {
459 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600460 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600461 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600462 },
463 {
464 "name": "set_parameter_from_group_max",
465 "parameter_name": "proc_2_core_dvfs_decrease_temp",
466 "modifier": {
467 "operator": "minus",
468 "value": 13
469 }
Matt Spinler323694a2021-11-11 16:03:18 -0600470 }
471 ]
472 },
473 {
474 "name": "Set Proc 3 Core DVFS parameter",
475 "groups": [
476 {
477 "name": "proc 3 core dvfs temp",
478 "interface": "xyz.openbmc_project.Sensor.Value",
479 "property": { "name": "Value" }
480 }
481 ],
482 "triggers": [
483 {
484 "class": "init",
485 "method": "get_properties"
486 },
487 {
488 "class": "signal",
489 "signal": "interfaces_added"
490 },
491 {
492 "class": "signal",
493 "signal": "properties_changed"
494 }
495 ],
496 "actions": [
497 {
498 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600499 "parameter_name": "proc_3_core_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600500 "modifier": {
501 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600502 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600503 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600504 },
505 {
506 "name": "set_parameter_from_group_max",
507 "parameter_name": "proc_3_core_dvfs_decrease_temp",
508 "modifier": {
509 "operator": "minus",
510 "value": 13
511 }
Matt Spinler323694a2021-11-11 16:03:18 -0600512 }
513 ]
514 },
515 {
516 "name": "Set Proc 0 IO Ring DVFS parameter",
517 "groups": [
518 {
519 "name": "proc 0 ioring dvfs temp",
520 "interface": "xyz.openbmc_project.Sensor.Value",
521 "property": { "name": "Value" }
522 }
523 ],
524 "triggers": [
525 {
526 "class": "init",
527 "method": "get_properties"
528 },
529 {
530 "class": "signal",
531 "signal": "interfaces_added"
532 },
533 {
534 "class": "signal",
535 "signal": "properties_changed"
536 }
537 ],
538 "actions": [
539 {
540 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600541 "parameter_name": "proc_0_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600542 "modifier": {
543 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600544 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600545 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600546 },
547 {
548 "name": "set_parameter_from_group_max",
549 "parameter_name": "proc_0_ioring_dvfs_decrease_temp",
550 "modifier": {
551 "operator": "minus",
552 "value": 13
553 }
Matt Spinler323694a2021-11-11 16:03:18 -0600554 }
555 ]
556 },
557
558 {
559 "name": "Set Proc 1 IO Ring DVFS parameter",
560 "groups": [
561 {
562 "name": "proc 1 ioring dvfs temp",
563 "interface": "xyz.openbmc_project.Sensor.Value",
564 "property": { "name": "Value" }
565 }
566 ],
567 "triggers": [
568 {
569 "class": "init",
570 "method": "get_properties"
571 },
572 {
573 "class": "signal",
574 "signal": "interfaces_added"
575 },
576 {
577 "class": "signal",
578 "signal": "properties_changed"
579 }
580 ],
581 "actions": [
582 {
583 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600584 "parameter_name": "proc_1_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600585 "modifier": {
586 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600587 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600588 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600589 },
590 {
591 "name": "set_parameter_from_group_max",
592 "parameter_name": "proc_1_ioring_dvfs_decrease_temp",
593 "modifier": {
594 "operator": "minus",
595 "value": 13
596 }
Matt Spinler323694a2021-11-11 16:03:18 -0600597 }
598 ]
599 },
600 {
601 "name": "Set Proc 2 IO Ring DVFS parameter",
602 "groups": [
603 {
604 "name": "proc 2 ioring dvfs temp",
605 "interface": "xyz.openbmc_project.Sensor.Value",
606 "property": { "name": "Value" }
607 }
608 ],
609 "triggers": [
610 {
611 "class": "init",
612 "method": "get_properties"
613 },
614 {
615 "class": "signal",
616 "signal": "interfaces_added"
617 },
618 {
619 "class": "signal",
620 "signal": "properties_changed"
621 }
622 ],
623 "actions": [
624 {
625 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600626 "parameter_name": "proc_2_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600627 "modifier": {
628 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600629 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600630 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600631 },
632 {
633 "name": "set_parameter_from_group_max",
634 "parameter_name": "proc_2_ioring_dvfs_decrease_temp",
635 "modifier": {
636 "operator": "minus",
637 "value": 13
638 }
Matt Spinler323694a2021-11-11 16:03:18 -0600639 }
640 ]
641 },
642 {
643 "name": "Set Proc 3 IO Ring DVFS parameter",
644 "groups": [
645 {
646 "name": "proc 3 ioring dvfs temp",
647 "interface": "xyz.openbmc_project.Sensor.Value",
648 "property": { "name": "Value" }
649 }
650 ],
651 "triggers": [
652 {
653 "class": "init",
654 "method": "get_properties"
655 },
656 {
657 "class": "signal",
658 "signal": "interfaces_added"
659 },
660 {
661 "class": "signal",
662 "signal": "properties_changed"
663 }
664 ],
665 "actions": [
666 {
667 "name": "set_parameter_from_group_max",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600668 "parameter_name": "proc_3_ioring_dvfs_increase_temp",
Matt Spinler323694a2021-11-11 16:03:18 -0600669 "modifier": {
670 "operator": "minus",
Matthew Bartha0a72b12021-12-01 21:18:13 -0600671 "value": 10
Matt Spinler323694a2021-11-11 16:03:18 -0600672 }
Matthew Barthdcf39732021-12-01 21:58:59 -0600673 },
674 {
675 "name": "set_parameter_from_group_max",
676 "parameter_name": "proc_3_ioring_dvfs_decrease_temp",
677 "modifier": {
678 "operator": "minus",
679 "value": 13
680 }
Matt Spinler323694a2021-11-11 16:03:18 -0600681 }
682 ]
Matthew Barthb6f10352021-12-02 17:42:49 -0600683 },
684 {
685 // Collect group temperatures each iteration the repeating timer expires
686 "name": "Fan control timer loop",
687 "groups": [
688 {
689 "name": "proc0 core temps",
690 "interface": "xyz.openbmc_project.Sensor.Value",
691 "property": { "name": "Value" }
692 },
693 {
694 "name": "proc1 core temps",
695 "interface": "xyz.openbmc_project.Sensor.Value",
696 "property": { "name": "Value" }
697 },
698 {
699 "name": "proc2 core temps",
700 "interface": "xyz.openbmc_project.Sensor.Value",
701 "property": { "name": "Value" }
702 },
703 {
704 "name": "proc3 core temps",
705 "interface": "xyz.openbmc_project.Sensor.Value",
706 "property": { "name": "Value" }
707 },
708 {
709 "name": "proc0 ioring temp",
710 "interface": "xyz.openbmc_project.Sensor.Value",
711 "property": { "name": "Value" }
712 },
713 {
714 "name": "proc1 ioring temp",
715 "interface": "xyz.openbmc_project.Sensor.Value",
716 "property": { "name": "Value" }
717 },
718 {
719 "name": "proc2 ioring temp",
720 "interface": "xyz.openbmc_project.Sensor.Value",
721 "property": { "name": "Value" }
722 },
723 {
724 "name": "proc3 ioring temp",
725 "interface": "xyz.openbmc_project.Sensor.Value",
726 "property": { "name": "Value" }
727 },
728 {
729 "name": "dram temps",
730 "interface": "xyz.openbmc_project.Sensor.Value",
731 "property": { "name": "Value" }
732 },
733 {
734 "name": "pmic temps",
735 "interface": "xyz.openbmc_project.Sensor.Value",
736 "property": { "name": "Value" }
737 },
738 {
739 "name": "internal memory buffer temps",
740 "interface": "xyz.openbmc_project.Sensor.Value",
741 "property": { "name": "Value" }
742 },
743 {
744 "name": "dram and external memory buffer temps",
745 "interface": "xyz.openbmc_project.Sensor.Value",
746 "property": { "name": "Value" }
747 },
748 {
749 "name": "external memory buffer temps",
750 "interface": "xyz.openbmc_project.Sensor.Value",
751 "property": { "name": "Value" }
752 },
753 {
754 "name": "vdd vrm temps",
755 "interface": "xyz.openbmc_project.Sensor.Value",
756 "property": { "name": "Value" }
Matthew Barth23a7b2b2022-01-11 15:22:55 -0600757 },
758 {
759 "name": "nvme temps",
760 "interface": "xyz.openbmc_project.Sensor.Value",
761 "property": { "name": "Value" }
762 },
763 {
764 "name": "planar temps",
765 "interface": "xyz.openbmc_project.Sensor.Value",
766 "property": { "name": "Value" }
Matt Spinler9b7fc002022-01-11 15:35:29 -0600767 },
768 {
769 "name": "flett temps",
770 "interface": "xyz.openbmc_project.Sensor.Value",
771 "property": { "name": "Value" }
772 },
773 {
Matthew Barth48b74802022-01-14 15:25:24 -0600774 "name": "pcie cable card temps",
Matt Spinler9b7fc002022-01-11 15:35:29 -0600775 "interface": "xyz.openbmc_project.Sensor.Value",
776 "property": { "name": "Value" }
Matthew Barthb6f10352021-12-02 17:42:49 -0600777 }
778 ],
779 "triggers": [
780 {
781 "class": "timer",
782 "type": "repeating",
783 "interval": 2000000,
784 "preload_groups": true
785 }
Matthew Bartha45b1612021-12-06 22:16:33 -0600786 ],
787 "actions": [
788 {
789 "name": "set_net_increase_target",
790 "groups": [
791 {
792 "name": "proc0 core temps",
793 "interface": "xyz.openbmc_project.Sensor.Value",
794 "property": { "name": "Value" }
795 }
796 ],
797 "state_parameter_name": "proc_0_core_dvfs_increase_temp",
798 "delta": 300
799 },
800 {
801 "name": "set_net_increase_target",
802 "groups": [
803 {
804 "name": "proc1 core temps",
805 "interface": "xyz.openbmc_project.Sensor.Value",
806 "property": { "name": "Value" }
807 }
808 ],
809 "state_parameter_name": "proc_1_core_dvfs_increase_temp",
810 "delta": 300
811 },
812 {
813 "name": "set_net_increase_target",
814 "groups": [
815 {
816 "name": "proc2 core temps",
817 "interface": "xyz.openbmc_project.Sensor.Value",
818 "property": { "name": "Value" }
819 }
820 ],
821 "state_parameter_name": "proc_2_core_dvfs_increase_temp",
822 "delta": 300
823 },
824 {
825 "name": "set_net_increase_target",
826 "groups": [
827 {
828 "name": "proc3 core temps",
829 "interface": "xyz.openbmc_project.Sensor.Value",
830 "property": { "name": "Value" }
831 }
832 ],
833 "state_parameter_name": "proc_3_core_dvfs_increase_temp",
834 "delta": 300
835 },
836 {
837 "name": "set_net_increase_target",
838 "groups": [
839 {
840 "name": "proc0 ioring temp",
841 "interface": "xyz.openbmc_project.Sensor.Value",
842 "property": { "name": "Value" }
843 }
844 ],
845 "state_parameter_name": "proc_0_ioring_dvfs_increase_temp",
846 "delta": 300
847 },
848 {
849 "name": "set_net_increase_target",
850 "groups": [
851 {
852 "name": "proc1 ioring temp",
853 "interface": "xyz.openbmc_project.Sensor.Value",
854 "property": { "name": "Value" }
855 }
856 ],
857 "state_parameter_name": "proc_1_ioring_dvfs_increase_temp",
858 "delta": 300
859 },
860 {
861 "name": "set_net_increase_target",
862 "groups": [
863 {
864 "name": "proc2 ioring temp",
865 "interface": "xyz.openbmc_project.Sensor.Value",
866 "property": { "name": "Value" }
867 }
868 ],
869 "state_parameter_name": "proc_2_ioring_dvfs_increase_temp",
870 "delta": 300
871 },
872 {
873 "name": "set_net_increase_target",
874 "groups": [
875 {
876 "name": "proc3 ioring temp",
877 "interface": "xyz.openbmc_project.Sensor.Value",
878 "property": { "name": "Value" }
879 }
880 ],
881 "state_parameter_name": "proc_3_ioring_dvfs_increase_temp",
882 "delta": 300
883 },
884 {
885 "name": "set_net_increase_target",
886 "groups": [
887 {
888 "name": "dram temps",
889 "interface": "xyz.openbmc_project.Sensor.Value",
890 "property": { "name": "Value" }
891 }
892 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600893 "state": 63.0,
Matthew Bartha45b1612021-12-06 22:16:33 -0600894 "delta": 200
895 },
896 {
897 "name": "set_net_increase_target",
898 "groups": [
899 {
900 "name": "pmic temps",
901 "interface": "xyz.openbmc_project.Sensor.Value",
902 "property": { "name": "Value" }
903 }
904 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600905 "state": 65.0,
Matthew Bartha45b1612021-12-06 22:16:33 -0600906 "delta": 200
907 },
908 {
909 "name": "set_net_increase_target",
910 "groups": [
911 {
912 "name": "internal memory buffer temps",
913 "interface": "xyz.openbmc_project.Sensor.Value",
914 "property": { "name": "Value" }
915 }
916 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600917 "state": 74.0,
Matthew Bartha45b1612021-12-06 22:16:33 -0600918 "delta": 200
919 },
920 {
921 "name": "set_net_increase_target",
922 "groups": [
923 {
924 "name": "dram and external memory buffer temps",
925 "interface": "xyz.openbmc_project.Sensor.Value",
926 "property": { "name": "Value" }
927 }
928 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -0600929 "state": 66.0,
Matthew Bartha45b1612021-12-06 22:16:33 -0600930 "delta": 200
931 },
932 {
933 "name": "set_net_increase_target",
934 "groups": [
935 {
936 "name": "external memory buffer temps",
937 "interface": "xyz.openbmc_project.Sensor.Value",
938 "property": { "name": "Value" }
939 }
940 ],
Matthew Barth8fbdba32022-03-11 09:23:55 -0600941 "state": 60.0,
Matthew Bartha45b1612021-12-06 22:16:33 -0600942 "delta": 200
943 },
944 {
945 "name": "set_net_increase_target",
946 "groups": [
947 {
948 "name": "vdd vrm temps",
949 "interface": "xyz.openbmc_project.Sensor.Value",
950 "property": { "name": "Value" }
951 }
952 ],
953 "state": 82.0,
954 "delta": 300
Matthew Barth34a1fd92021-12-06 22:23:35 -0600955 },
956 {
Matthew Barth47ede252021-12-08 22:03:09 -0600957 "name": "set_net_increase_target",
958 "groups": [
959 {
960 "name": "nvme temps",
961 "interface": "xyz.openbmc_project.Sensor.Value",
962 "property": { "name": "Value" }
963 }
964 ],
965 "state": 58.0,
966 "delta": 200
967 },
968 {
Matthew Barth075fcd82021-12-13 20:56:49 -0600969 "name": "set_net_increase_target",
970 "groups": [
971 {
972 "name": "planar temps",
973 "interface": "xyz.openbmc_project.Sensor.Value",
974 "property": { "name": "Value" }
975 }
976 ],
977 "state": 65.0,
978 "delta": 255
979 },
980 {
Matt Spinler1006fe32022-01-10 14:06:22 -0600981 "name": "set_net_increase_target",
982 "groups": [
983 {
984 "name": "flett temps",
985 "interface": "xyz.openbmc_project.Sensor.Value",
986 "property": { "name": "Value" }
987 }
988 ],
Matthew Bartha23ac122022-03-02 07:26:25 -0600989 "state": 80.0,
990 "delta": 200
Matt Spinler1006fe32022-01-10 14:06:22 -0600991 },
992 {
993 "name": "set_net_increase_target",
994 "groups": [
995 {
Matthew Barth48b74802022-01-14 15:25:24 -0600996 "name": "pcie cable card temps",
Matt Spinler1006fe32022-01-10 14:06:22 -0600997 "interface": "xyz.openbmc_project.Sensor.Value",
998 "property": { "name": "Value" }
999 }
1000 ],
1001 "state": 70.0,
1002 "delta": 255
1003 },
1004 {
Matthew Barth34a1fd92021-12-06 22:23:35 -06001005 "name": "set_net_decrease_target",
1006 "groups": [
1007 {
1008 "name": "proc0 core temps",
1009 "interface": "xyz.openbmc_project.Sensor.Value",
1010 "property": { "name": "Value" }
1011 }
1012 ],
1013 "state_parameter_name": "proc_0_core_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001014 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001015 },
1016 {
1017 "name": "set_net_decrease_target",
1018 "groups": [
1019 {
1020 "name": "proc1 core temps",
1021 "interface": "xyz.openbmc_project.Sensor.Value",
1022 "property": { "name": "Value" }
1023 }
1024 ],
1025 "state_parameter_name": "proc_1_core_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001026 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001027 },
1028 {
1029 "name": "set_net_decrease_target",
1030 "groups": [
1031 {
1032 "name": "proc2 core temps",
1033 "interface": "xyz.openbmc_project.Sensor.Value",
1034 "property": { "name": "Value" }
1035 }
1036 ],
1037 "state_parameter_name": "proc_2_core_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001038 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001039 },
1040 {
1041 "name": "set_net_decrease_target",
1042 "groups": [
1043 {
1044 "name": "proc3 core temps",
1045 "interface": "xyz.openbmc_project.Sensor.Value",
1046 "property": { "name": "Value" }
1047 }
1048 ],
1049 "state_parameter_name": "proc_3_core_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001050 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001051 },
1052 {
1053 "name": "set_net_decrease_target",
1054 "groups": [
1055 {
1056 "name": "proc0 ioring temp",
1057 "interface": "xyz.openbmc_project.Sensor.Value",
1058 "property": { "name": "Value" }
1059 }
1060 ],
1061 "state_parameter_name": "proc_0_ioring_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001062 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001063 },
1064 {
1065 "name": "set_net_decrease_target",
1066 "groups": [
1067 {
1068 "name": "proc1 ioring temp",
1069 "interface": "xyz.openbmc_project.Sensor.Value",
1070 "property": { "name": "Value" }
1071 }
1072 ],
1073 "state_parameter_name": "proc_1_ioring_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001074 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001075 },
1076 {
1077 "name": "set_net_decrease_target",
1078 "groups": [
1079 {
1080 "name": "proc2 ioring temp",
1081 "interface": "xyz.openbmc_project.Sensor.Value",
1082 "property": { "name": "Value" }
1083 }
1084 ],
1085 "state_parameter_name": "proc_2_ioring_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001086 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001087 },
1088 {
1089 "name": "set_net_decrease_target",
1090 "groups": [
1091 {
1092 "name": "proc3 ioring temp",
1093 "interface": "xyz.openbmc_project.Sensor.Value",
1094 "property": { "name": "Value" }
1095 }
1096 ],
1097 "state_parameter_name": "proc_3_ioring_dvfs_decrease_temp",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001098 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001099 },
1100 {
1101 "name": "set_net_decrease_target",
1102 "groups": [
1103 {
1104 "name": "dram temps",
1105 "interface": "xyz.openbmc_project.Sensor.Value",
1106 "property": { "name": "Value" }
1107 }
1108 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001109 "state": 60.0,
1110 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001111 },
1112 {
1113 "name": "set_net_decrease_target",
1114 "groups": [
1115 {
1116 "name": "pmic temps",
1117 "interface": "xyz.openbmc_project.Sensor.Value",
1118 "property": { "name": "Value" }
1119 }
1120 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001121 "state": 62.0,
1122 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001123 },
1124 {
1125 "name": "set_net_decrease_target",
1126 "groups": [
1127 {
1128 "name": "internal memory buffer temps",
1129 "interface": "xyz.openbmc_project.Sensor.Value",
1130 "property": { "name": "Value" }
1131 }
1132 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001133 "state": 71.0,
1134 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001135 },
1136 {
1137 "name": "set_net_decrease_target",
1138 "groups": [
1139 {
1140 "name": "dram and external memory buffer temps",
1141 "interface": "xyz.openbmc_project.Sensor.Value",
1142 "property": { "name": "Value" }
1143 }
1144 ],
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001145 "state": 63.0,
1146 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001147 },
1148 {
1149 "name": "set_net_decrease_target",
1150 "groups": [
1151 {
1152 "name": "external memory buffer temps",
1153 "interface": "xyz.openbmc_project.Sensor.Value",
1154 "property": { "name": "Value" }
1155 }
1156 ],
Matthew Barth8fbdba32022-03-11 09:23:55 -06001157 "state": 57.0,
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001158 "delta": 50
Matthew Barth34a1fd92021-12-06 22:23:35 -06001159 },
1160 {
1161 "name": "set_net_decrease_target",
1162 "groups": [
1163 {
1164 "name": "vdd vrm temps",
1165 "interface": "xyz.openbmc_project.Sensor.Value",
1166 "property": { "name": "Value" }
1167 }
1168 ],
1169 "state": 79.0,
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001170 "delta": 50
Matthew Barth9f70c062021-12-08 22:28:11 -06001171 },
1172 {
1173 "name": "set_net_decrease_target",
1174 "groups": [
1175 {
1176 "name": "nvme temps",
1177 "interface": "xyz.openbmc_project.Sensor.Value",
1178 "property": { "name": "Value" }
1179 }
1180 ],
1181 "state": 55.0,
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001182 "delta": 50
Matthew Barth075fcd82021-12-13 20:56:49 -06001183 },
1184 {
1185 "name": "set_net_decrease_target",
1186 "groups": [
1187 {
1188 "name": "planar temps",
1189 "interface": "xyz.openbmc_project.Sensor.Value",
1190 "property": { "name": "Value" }
1191 }
1192 ],
1193 "state": 60.0,
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001194 "delta": 50
Matt Spinler1006fe32022-01-10 14:06:22 -06001195 },
1196 {
1197 "name": "set_net_decrease_target",
1198 "groups": [
1199 {
1200 "name": "flett temps",
1201 "interface": "xyz.openbmc_project.Sensor.Value",
1202 "property": { "name": "Value" }
1203 }
1204 ],
Matthew Bartha23ac122022-03-02 07:26:25 -06001205 "state": 75.0,
1206 "delta": 40
Matt Spinler1006fe32022-01-10 14:06:22 -06001207 },
1208 {
1209 "name": "set_net_decrease_target",
1210 "groups": [
1211 {
Matthew Barth48b74802022-01-14 15:25:24 -06001212 "name": "pcie cable card temps",
Matt Spinler1006fe32022-01-10 14:06:22 -06001213 "interface": "xyz.openbmc_project.Sensor.Value",
1214 "property": { "name": "Value" }
1215 }
1216 ],
1217 "state": 65.0,
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001218 "delta": 50
Matthew Bartha45b1612021-12-06 22:16:33 -06001219 }
Matthew Barthb6f10352021-12-02 17:42:49 -06001220 ]
Matthew Barthcf34be22021-12-08 22:53:48 -06001221 },
1222 {
1223 // Remove NVMe temperature objects from cache when they are removed from
1224 // dbus. There's no need to react to their removal.
1225 "name": "remove nvme objects",
1226 "groups": [
1227 {
1228 "name": "nvme temps",
1229 "interface": "xyz.openbmc_project.Sensor.Value",
1230 "property": { "name": "Value" }
1231 }
1232 ],
1233 "triggers": [
1234 {
1235 "class": "signal",
1236 "signal": "interfaces_removed"
1237 }
1238 ]
Matthew Barth59031d42022-01-21 15:31:36 -06001239 },
1240 {
1241 "name": "set pcie floor index",
1242 "groups": [
1243 {
1244 "name": "pcie slots",
1245 "interface": "xyz.openbmc_project.State.Decorator.PowerState",
1246 "property": {
1247 "name": "PowerState"
1248 }
1249 },
1250 {
1251 "name": "pcie cards",
1252 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1253 "property": {
1254 "name": "Function0DeviceId"
1255 }
1256 },
1257 {
1258 "name": "pcie cards",
1259 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1260 "property": {
1261 "name": "Function0VendorId"
1262 }
1263 },
1264 {
1265 "name": "pcie cards",
1266 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1267 "property": {
1268 "name": "Function0SubsystemId"
1269 }
1270 },
1271 {
1272 "name": "pcie cards",
1273 "interface": "xyz.openbmc_project.Inventory.Item.PCIeDevice",
1274 "property": {
1275 "name": "Function0SubsystemVendorId"
1276 }
1277 }
1278 ],
1279 "triggers": [
1280 {
1281 "class": "init",
1282 "method": "get_properties"
1283 },
1284 {
1285 "class": "signal",
1286 "signal": "properties_changed"
1287 },
1288 {
1289 "class": "signal",
1290 "signal": "interfaces_added"
1291 }
1292 ],
1293 "actions": [
1294 {
1295 "name": "pcie_card_floors",
1296 "use_config_specific_files": true,
1297 "settle_time": 2
1298 }
1299 ]
1300 },
1301 {
1302 "name": "Fan floors",
1303 "groups": [
1304 {
1305 "name": "ambient temp",
1306 "interface": "xyz.openbmc_project.Sensor.Value",
1307 "property": { "name": "Value" }
1308 },
1309 {
1310 "name": "power mode",
1311 "interface": "xyz.openbmc_project.Control.Power.Mode",
1312 "property": { "name": "PowerMode" }
1313 }
1314 ],
1315 "triggers": [
1316 {
1317 "class": "init",
1318 "method": "get_properties"
1319 },
1320 {
1321 "class": "signal",
1322 "signal": "properties_changed"
1323 },
1324 {
1325 "class": "signal",
1326 "signal": "interfaces_added"
Matt Spinler3a53f2c2022-02-18 09:24:05 -06001327 },
1328 {
1329 "class": "parameter",
1330 "parameter": "pcie_floor_index"
Matthew Barth59031d42022-01-21 15:31:36 -06001331 }
1332 ],
1333 "actions": [
1334 {
1335 "name": "mapped_floor",
1336 "key_group": "ambient temp",
1337 "fan_floors": [
1338 {
1339 // Entry valid for ambient temp < 27
1340 "key": 27,
1341 "floors": [
1342 {
1343 "group": "power mode",
1344 "floors": [
1345 {
1346 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.Static",
1347 "floor": 5000
1348 },
1349 {
1350 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.PowerSaving",
1351 "floor": 5000
1352 },
1353 {
1354 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.MaximumPerformance",
1355 "floor": 5000
1356 },
1357 {
1358 // OEM == MaximumPerformance
1359 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.OEM",
1360 "floor": 5000
1361 }
1362 ]
1363 },
1364 {
1365 "parameter": "pcie_floor_index",
1366 "floors": [
1367 { "value": 1, "floor": 7000 },
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001368 { "value": 2, "floor": 8000 },
1369 { "value": 3, "floor": 9000 }
Matthew Barth59031d42022-01-21 15:31:36 -06001370 ]
1371 }
1372 ]
1373 },
1374 {
1375 // Entry valid for ambient temp < 32
1376 "key": 32,
1377 "floors": [
1378 {
1379 "group": "power mode",
1380 "floors": [
1381 {
1382 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.Static",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001383 "floor": 6000
Matthew Barth59031d42022-01-21 15:31:36 -06001384 },
1385 {
1386 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.PowerSaving",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001387 "floor": 6000
Matthew Barth59031d42022-01-21 15:31:36 -06001388 },
1389 {
1390 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.MaximumPerformance",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001391 "floor": 6000
Matthew Barth59031d42022-01-21 15:31:36 -06001392 },
1393 {
1394 // OEM == MaximumPerformance
1395 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.OEM",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001396 "floor": 6000
Matthew Barth59031d42022-01-21 15:31:36 -06001397 }
1398 ]
1399 },
1400 {
1401 "parameter": "pcie_floor_index",
1402 "floors": [
1403 { "value": 1, "floor": 8000 },
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001404 { "value": 2, "floor": 9000 },
1405 { "value": 3, "floor": 9500 }
Matthew Barth59031d42022-01-21 15:31:36 -06001406 ]
1407 }
1408 ]
1409 },
1410 {
1411 // Entry valid for ambient temp < 37
1412 "key": 37,
1413 "floors": [
1414 {
1415 "group": "power mode",
1416 "floors": [
1417 {
1418 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.Static",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001419 "floor": 7000
Matthew Barth59031d42022-01-21 15:31:36 -06001420 },
1421 {
1422 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.PowerSaving",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001423 "floor": 7000
Matthew Barth59031d42022-01-21 15:31:36 -06001424 },
1425 {
1426 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.MaximumPerformance",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001427 "floor": 7000
Matthew Barth59031d42022-01-21 15:31:36 -06001428 },
1429 {
1430 // OEM == MaximumPerformance
1431 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.OEM",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001432 "floor": 7000
Matthew Barth59031d42022-01-21 15:31:36 -06001433 }
1434 ]
1435 },
1436 {
1437 "parameter": "pcie_floor_index",
1438 "floors": [
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001439 { "value": 1, "floor": 9000 },
1440 { "value": 2, "floor": 9500 },
1441 { "value": 3, "floor": 10400 }
Matthew Barth59031d42022-01-21 15:31:36 -06001442 ]
1443 }
1444 ]
1445 },
1446 {
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001447 // Entry valid for ambient temp < 42
1448 "key": 42,
Matthew Barth59031d42022-01-21 15:31:36 -06001449 "floors": [
1450 {
1451 "group": "power mode",
1452 "floors": [
1453 {
1454 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.Static",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001455 "floor": 8000
Matthew Barth59031d42022-01-21 15:31:36 -06001456 },
1457 {
1458 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.PowerSaving",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001459 "floor": 8000
Matthew Barth59031d42022-01-21 15:31:36 -06001460 },
1461 {
1462 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.MaximumPerformance",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001463 "floor": 8000
Matthew Barth59031d42022-01-21 15:31:36 -06001464 },
1465 {
1466 // OEM == MaximumPerformance
1467 "value": "xyz.openbmc_project.Control.Power.Mode.PowerMode.OEM",
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001468 "floor": 8000
Matthew Barth59031d42022-01-21 15:31:36 -06001469 }
1470 ]
1471 },
1472 {
1473 "parameter": "pcie_floor_index",
1474 "floors": [
Matthew Barthb20f2fe2022-02-11 15:29:29 -06001475 { "value": 1, "floor": 9500 },
1476 { "value": 2, "floor": 10400 },
1477 { "value": 3, "floor": 10400 }
Matthew Barth59031d42022-01-21 15:31:36 -06001478 ]
1479 }
1480 ]
1481 }
1482 ]
1483 }
1484 ]
Matt Spinler323694a2021-11-11 16:03:18 -06001485 }
Matthew Barth23dcffd2021-10-19 13:36:51 -05001486]