blob: 20d2a8814630f005cadf617f2142f523c1ce76f0 [file] [log] [blame]
Lei YU17bf1f12018-01-26 16:53:57 +08001groups:
2 - name: air_cooled_zone0_fans
3 description: Group of fan inventory objects for air cooled zone 0
4 type: /xyz/openbmc_project/inventory
5 members:
6 - /system/chassis/motherboard/fan0
7 - /system/chassis/motherboard/fan1
8 - /system/chassis/motherboard/fan2
9 - name: zone0_ambient
10 description: Group of ambient temperature sensors for zone 0
11 type: /xyz/openbmc_project/sensors
12 members:
13 - /temperature/outlet
14 - name: occ0_object
15 description: Dbus object containing OCC0 properties
16 type: /org/open_power/control
17 members:
18 - /occ0
19 - name: occ1_object
20 description: Dbus object containing OCC1 properties
21 type: /org/open_power/control
22 members:
23 - /occ1
24 - name: zone0_cores
25 description: Group of core temperature sensors for zone 0
26 type: /xyz/openbmc_project/sensors
27 members:
28 - /temperature/p0_core0_temp
29 - /temperature/p0_core1_temp
30 - /temperature/p0_core2_temp
31 - /temperature/p0_core3_temp
32 - /temperature/p0_core4_temp
33 - /temperature/p0_core5_temp
34 - /temperature/p0_core6_temp
35 - /temperature/p0_core7_temp
36 - /temperature/p0_core8_temp
37 - /temperature/p0_core9_temp
38 - /temperature/p0_core10_temp
39 - /temperature/p0_core11_temp
40 - /temperature/p0_core12_temp
41 - /temperature/p0_core13_temp
42 - /temperature/p0_core14_temp
43 - /temperature/p0_core15_temp
44 - /temperature/p0_core16_temp
45 - /temperature/p0_core17_temp
46 - /temperature/p0_core18_temp
47 - /temperature/p0_core19_temp
48 - /temperature/p0_core20_temp
49 - /temperature/p0_core21_temp
50 - /temperature/p0_core22_temp
51 - /temperature/p0_core23_temp
52 - /temperature/p1_core0_temp
53 - /temperature/p1_core1_temp
54 - /temperature/p1_core2_temp
55 - /temperature/p1_core3_temp
56 - /temperature/p1_core4_temp
57 - /temperature/p1_core5_temp
58 - /temperature/p1_core6_temp
59 - /temperature/p1_core7_temp
60 - /temperature/p1_core8_temp
61 - /temperature/p1_core9_temp
62 - /temperature/p1_core10_temp
63 - /temperature/p1_core11_temp
64 - /temperature/p1_core12_temp
65 - /temperature/p1_core13_temp
66 - /temperature/p1_core14_temp
67 - /temperature/p1_core15_temp
68 - /temperature/p1_core16_temp
69 - /temperature/p1_core17_temp
70 - /temperature/p1_core18_temp
71 - /temperature/p1_core19_temp
72 - /temperature/p1_core20_temp
73 - /temperature/p1_core21_temp
74 - /temperature/p1_core22_temp
75 - /temperature/p1_core23_temp
76 - name: zone0_dimms
77 description: Group of dimm temperature sensors for zone 0
78 type: /xyz/openbmc_project/sensors
79 members:
80 - /temperature/dimm0_temp
81 - /temperature/dimm1_temp
82 - /temperature/dimm2_temp
83 - /temperature/dimm3_temp
84 - /temperature/dimm4_temp
85 - /temperature/dimm5_temp
86 - /temperature/dimm6_temp
87 - /temperature/dimm7_temp
88 - /temperature/dimm8_temp
89 - /temperature/dimm9_temp
90 - /temperature/dimm10_temp
91 - /temperature/dimm11_temp
92 - /temperature/dimm12_temp
93 - /temperature/dimm13_temp
94 - /temperature/dimm14_temp
95 - /temperature/dimm15_temp
96
97matches:
98 - name: propertiesChanged
Lei YU17bf1f12018-01-26 16:53:57 +080099 parameters:
100 - object
101 - interface
Matthew Barth03eacc42019-05-23 14:41:28 -0500102 - name: interfacesAdded
103 parameters:
104 - object
105 - name: nameOwnerChanged
106 parameters:
107 - object
108 - interface
109
110signals:
111 - name: propertiesChanged
112 description: >
113 A property changed match
114 parameters:
115 - type
116 - object
117 - interface
118 - property
119 match: propertiesChanged
Lei YU17bf1f12018-01-26 16:53:57 +0800120 - name: interfacesAdded
121 description: >
122 An interfaces added match
123 parameters:
Matthew Barth03eacc42019-05-23 14:41:28 -0500124 - type
Lei YU17bf1f12018-01-26 16:53:57 +0800125 - object
Matthew Barth03eacc42019-05-23 14:41:28 -0500126 - interface
127 - property
128 match: interfacesAdded
Lei YU17bf1f12018-01-26 16:53:57 +0800129 - name: nameOwnerChanged
130 description: >
131 A name owner changed match
132 parameters:
Matthew Barth03eacc42019-05-23 14:41:28 -0500133 match: nameOwnerChanged
Lei YU17bf1f12018-01-26 16:53:57 +0800134
Matthew Barth03eacc42019-05-23 14:41:28 -0500135methods:
136 - name: getProperties
Lei YU17bf1f12018-01-26 16:53:57 +0800137 description: >
Matthew Barth03eacc42019-05-23 14:41:28 -0500138 Get the property values of the given group members
139 by performing a `GetProperty` method call on each
Lei YU17bf1f12018-01-26 16:53:57 +0800140 parameters:
141 - type
Matthew Barth03eacc42019-05-23 14:41:28 -0500142 - name: nameHasOwner
Lei YU17bf1f12018-01-26 16:53:57 +0800143 description: >
Matthew Barth03eacc42019-05-23 14:41:28 -0500144 A NameHasOwner method call to be performed on all event group members
Lei YU17bf1f12018-01-26 16:53:57 +0800145 parameters:
Lei YU17bf1f12018-01-26 16:53:57 +0800146
147handlers:
148 - name: setProperty
149 description: >
150 Sets a value for the given object/interface/property
151 parameters:
152 - type
Lei YU17bf1f12018-01-26 16:53:57 +0800153 - name: setService
154 description: >
Matthew Barth03eacc42019-05-23 14:41:28 -0500155 Sets the service name and ownership status for the given group
Lei YU17bf1f12018-01-26 16:53:57 +0800156 parameters:
157 - group
158
159preconditions:
160 - name: property_states_match
161 description: >
162 All defined properties must match the values given to
163 enable a set speed event otherwise fan speeds are set to full
164 parameters:
165 - groups
Matthew Barth03eacc42019-05-23 14:41:28 -0500166 - name: services_missing_owner
167 description: >
168 Any services missing an owner enable the events given otherwise
169 the events are removed/disabled
170 parameters:
Lei YU17bf1f12018-01-26 16:53:57 +0800171
172actions:
173 - name: call_actions_based_on_timer
174 description: >
175 Sets up a list of actions to be invoked when the defined timer
176 expires (or for each expiration of a repeating timer)
177 parameters:
178 - timer
179 - actions
180 - name: default_floor_on_missing_owner
181 description: >
182 Set the fan floor to the default floor
183 - name: set_speed_on_missing_owner
184 description: >
185 Set fans to the given speed when any service within the group
186 no longer exists
187 parameters:
188 - speed
189 - name: set_request_speed_base_with_max
190 description: >
191 Set the base request speed of a zone to the max value of a group for
192 calculating a new target speed
193 - name: count_state_before_speed
194 description: Set the speed when a number of properties at a state
195 parameters:
196 - count
197 - property
198 - speed
199 - name: set_floor_from_average_sensor_value
200 description: Set floor speed from first entry with average less than key
201 parameters:
202 - map
203 - name: set_ceiling_from_average_sensor_value
204 description: Set ceiling speed based on key transition values with average
205 parameters:
206 - map
207 - name: set_net_increase_speed
208 description: >
209 Set the speed increase delta based on a factor applied to
210 the delta increase size times the given value and property's
211 value difference
212 parameters:
213 - property
214 - factor
215 - delta
216 - name: set_net_decrease_speed
217 description: >
218 Set the speed decrease delta based on a factor applied to
219 the delta decrease size times the given value and property's
220 value difference
221 parameters:
222 - property
223 - factor
224 - delta
225
226events:
Lei YUf10a1f02018-03-13 16:05:42 +0800227 - name: default_fan_floor_on_service_fail
Matthew Barth03eacc42019-05-23 14:41:28 -0500228 precondition:
229 name: services_missing_owner
230 groups:
231 - name: zone0_ambient
232 interface: xyz.openbmc_project.Sensor.Value
233 property:
234 name: Value
235 type: int64_t
236 triggers:
237 - name: init
238 method: nameHasOwner
239 handler: setService
240 - name: signal
241 signal: nameOwnerChanged
242 handler: setService
243 events:
244 - name: default_fan_floor
245 groups:
246 - name: zone0_ambient
247 interface: xyz.openbmc_project.Sensor.Value
248 property:
249 name: Value
250 type: int64_t
251 triggers:
252 - name: timer
253 interval: 5000000
254 type: oneshot
255 actions:
256 - name: default_floor_on_missing_owner
257 - name: high_speed_on_occ_service_fail
Lei YUf10a1f02018-03-13 16:05:42 +0800258 groups:
259 - name: occ0_object
260 interface: org.open_power.OCC.Status
261 property:
262 name: OccActive
263 type: bool
Lei YUf10a1f02018-03-13 16:05:42 +0800264 - name: occ1_object
265 interface: org.open_power.OCC.Status
266 property:
267 name: OccActive
268 type: bool
Matthew Barth03eacc42019-05-23 14:41:28 -0500269 triggers:
270 - name: init
271 method: nameHasOwner
272 handler: setService
273 - name: signal
274 signal: nameOwnerChanged
275 handler: setService
Lei YUf10a1f02018-03-13 16:05:42 +0800276 actions:
277 - name: call_actions_based_on_timer
278 timer:
Matthew Barth03eacc42019-05-23 14:41:28 -0500279 interval: 5000000
Lei YUf10a1f02018-03-13 16:05:42 +0800280 type: oneshot
281 actions:
282 - name: set_speed_on_missing_owner
283 speed:
284 value: 255
285 type: uint64_t
Matthew Barth03eacc42019-05-23 14:41:28 -0500286 - name: missing_or_fails_before_high_speed_air
Lei YU17bf1f12018-01-26 16:53:57 +0800287 groups:
288 - name: air_cooled_zone0_fans
289 interface: xyz.openbmc_project.Inventory.Item
290 property:
291 name: Present
292 type: bool
Lei YU17bf1f12018-01-26 16:53:57 +0800293 - name: air_cooled_zone0_fans
294 interface: xyz.openbmc_project.State.Decorator.OperationalStatus
295 property:
296 name: Functional
297 type: bool
Matthew Barth03eacc42019-05-23 14:41:28 -0500298 triggers:
299 - name: init
300 method: getProperties
301 handler: setProperty
302 - name: signal
303 signal: propertiesChanged
304 handler: setProperty
Lei YU17bf1f12018-01-26 16:53:57 +0800305 actions:
306 - name: count_state_before_speed
307 count: 1
308 property:
309 value: false
310 type: bool
311 speed:
312 value: 255
313 type: uint64_t
314 - name: set_air_cooled_speed_boundaries_based_on_ambient
315 groups:
316 - name: zone0_ambient
317 interface: xyz.openbmc_project.Sensor.Value
318 property:
319 name: Value
320 type: int64_t
Matthew Barth03eacc42019-05-23 14:41:28 -0500321 triggers:
322 - name: init
323 method: getProperties
324 handler: setProperty
325 - name: signal
326 signal: propertiesChanged
327 handler: setProperty
Lei YU17bf1f12018-01-26 16:53:57 +0800328 actions:
329 - name: set_floor_from_average_sensor_value
330 map:
331 value:
332 - 27000: 85
333 - 32000: 112
334 - 37000: 126
335 - 40000: 141
336 type: std::map<int64_t, uint64_t>
337 - name: set_ceiling_from_average_sensor_value
338 map:
339 value:
340 - 25000: 175
341 - 27000: 255
342 type: std::map<int64_t, uint64_t>
343 - name: occ_active_speed_changes
344 precondition:
345 name: property_states_match
346 groups:
347 - name: occ0_object
348 interface: org.open_power.OCC.Status
349 property:
350 name: OccActive
351 type: bool
352 value: true
353 - name: occ1_object
354 interface: org.open_power.OCC.Status
355 property:
356 name: OccActive
357 type: bool
358 value: true
Matthew Barth03eacc42019-05-23 14:41:28 -0500359 triggers:
360 - name: init
361 method: getProperties
362 handler: setProperty
363 - name: signal
364 signal: interfacesAdded
365 handler: setProperty
366 - name: signal
367 signal: propertiesChanged
368 handler: setProperty
Lei YU17bf1f12018-01-26 16:53:57 +0800369 events:
Matthew Barth03eacc42019-05-23 14:41:28 -0500370 - name: speed_control_sensors
Lei YU17bf1f12018-01-26 16:53:57 +0800371 groups:
372 - name: zone0_cores
373 interface: xyz.openbmc_project.Sensor.Value
374 property:
375 name: Value
376 type: int64_t
Matthew Barth03eacc42019-05-23 14:41:28 -0500377 - name: zone0_dimms
378 interface: xyz.openbmc_project.Sensor.Value
379 property:
380 name: Value
381 type: int64_t
382 triggers:
383 - name: init
384 method: getProperties
385 handler: setProperty
386 - name: signal
387 signal: interfacesAdded
388 handler: setProperty
389 - name: signal
390 signal: propertiesChanged
391 handler: setProperty
392 - name: 1sec_speed_change_request_sampling
393 triggers:
394 - name: timer
395 interval: 1000000
396 type: repeating
Lei YU17bf1f12018-01-26 16:53:57 +0800397 actions:
Matthew Barth03eacc42019-05-23 14:41:28 -0500398 # Speed changes based on core temps
Lei YU17bf1f12018-01-26 16:53:57 +0800399 - name: set_net_increase_speed
Matthew Barth03eacc42019-05-23 14:41:28 -0500400 groups:
401 - name: zone0_cores
402 interface: xyz.openbmc_project.Sensor.Value
403 property:
404 name: Value
405 type: int64_t
Lei YU17bf1f12018-01-26 16:53:57 +0800406 property:
407 value: 73000
408 type: int64_t
409 factor:
410 value: 1000
411 type: int64_t
412 delta:
413 value: 11
414 type: uint64_t
415 - name: set_net_decrease_speed
Matthew Barth03eacc42019-05-23 14:41:28 -0500416 groups:
417 - name: zone0_cores
418 interface: xyz.openbmc_project.Sensor.Value
419 property:
420 name: Value
421 type: int64_t
Lei YU17bf1f12018-01-26 16:53:57 +0800422 property:
423 value: 70000
424 type: int64_t
425 factor:
426 value: 1000
427 type: int64_t
428 delta:
429 value: 11
430 type: uint64_t
Matthew Barth03eacc42019-05-23 14:41:28 -0500431 # Speed changes based on dimm temps
Lei YU17bf1f12018-01-26 16:53:57 +0800432 - name: set_net_increase_speed
Matthew Barth03eacc42019-05-23 14:41:28 -0500433 groups:
434 - name: zone0_dimms
435 interface: xyz.openbmc_project.Sensor.Value
436 property:
437 name: Value
438 type: int64_t
Lei YU17bf1f12018-01-26 16:53:57 +0800439 property:
440 value: 64000
441 type: int64_t
442 factor:
443 value: 1000
444 type: int64_t
445 delta:
446 value: 6
447 type: uint64_t
448 - name: set_net_decrease_speed
Matthew Barth03eacc42019-05-23 14:41:28 -0500449 groups:
450 - name: zone0_dimms
451 interface: xyz.openbmc_project.Sensor.Value
452 property:
453 name: Value
454 type: int64_t
Lei YU17bf1f12018-01-26 16:53:57 +0800455 property:
456 value: 61000
457 type: int64_t
458 factor:
459 value: 1000
460 type: int64_t
461 delta:
462 value: 6
463 type: uint64_t