| groups: |
| - name: air_cooled_zone0_fans |
| description: Group of fan inventory objects for air cooled zone 0 |
| type: /xyz/openbmc_project/inventory |
| members: |
| - /system/chassis/motherboard/fan0 |
| - /system/chassis/motherboard/fan1 |
| - /system/chassis/motherboard/fan2 |
| - name: zone0_ambient |
| description: Group of ambient temperature sensors for zone 0 |
| type: /xyz/openbmc_project/sensors |
| members: |
| - /temperature/outlet |
| - name: occ0_object |
| description: Dbus object containing OCC0 properties |
| type: /org/open_power/control |
| members: |
| - /occ0 |
| - name: occ1_object |
| description: Dbus object containing OCC1 properties |
| type: /org/open_power/control |
| members: |
| - /occ1 |
| - name: zone0_cores |
| description: Group of core temperature sensors for zone 0 |
| type: /xyz/openbmc_project/sensors |
| members: |
| - /temperature/p0_core0_temp |
| - /temperature/p0_core1_temp |
| - /temperature/p0_core2_temp |
| - /temperature/p0_core3_temp |
| - /temperature/p0_core4_temp |
| - /temperature/p0_core5_temp |
| - /temperature/p0_core6_temp |
| - /temperature/p0_core7_temp |
| - /temperature/p0_core8_temp |
| - /temperature/p0_core9_temp |
| - /temperature/p0_core10_temp |
| - /temperature/p0_core11_temp |
| - /temperature/p0_core12_temp |
| - /temperature/p0_core13_temp |
| - /temperature/p0_core14_temp |
| - /temperature/p0_core15_temp |
| - /temperature/p0_core16_temp |
| - /temperature/p0_core17_temp |
| - /temperature/p0_core18_temp |
| - /temperature/p0_core19_temp |
| - /temperature/p0_core20_temp |
| - /temperature/p0_core21_temp |
| - /temperature/p0_core22_temp |
| - /temperature/p0_core23_temp |
| - /temperature/p1_core0_temp |
| - /temperature/p1_core1_temp |
| - /temperature/p1_core2_temp |
| - /temperature/p1_core3_temp |
| - /temperature/p1_core4_temp |
| - /temperature/p1_core5_temp |
| - /temperature/p1_core6_temp |
| - /temperature/p1_core7_temp |
| - /temperature/p1_core8_temp |
| - /temperature/p1_core9_temp |
| - /temperature/p1_core10_temp |
| - /temperature/p1_core11_temp |
| - /temperature/p1_core12_temp |
| - /temperature/p1_core13_temp |
| - /temperature/p1_core14_temp |
| - /temperature/p1_core15_temp |
| - /temperature/p1_core16_temp |
| - /temperature/p1_core17_temp |
| - /temperature/p1_core18_temp |
| - /temperature/p1_core19_temp |
| - /temperature/p1_core20_temp |
| - /temperature/p1_core21_temp |
| - /temperature/p1_core22_temp |
| - /temperature/p1_core23_temp |
| - name: zone0_dimms |
| description: Group of dimm temperature sensors for zone 0 |
| type: /xyz/openbmc_project/sensors |
| members: |
| - /temperature/dimm0_temp |
| - /temperature/dimm1_temp |
| - /temperature/dimm2_temp |
| - /temperature/dimm3_temp |
| - /temperature/dimm4_temp |
| - /temperature/dimm5_temp |
| - /temperature/dimm6_temp |
| - /temperature/dimm7_temp |
| - /temperature/dimm8_temp |
| - /temperature/dimm9_temp |
| - /temperature/dimm10_temp |
| - /temperature/dimm11_temp |
| - /temperature/dimm12_temp |
| - /temperature/dimm13_temp |
| - /temperature/dimm14_temp |
| - /temperature/dimm15_temp |
| |
| matches: |
| - name: propertiesChanged |
| parameters: |
| - object |
| - interface |
| - name: interfacesAdded |
| parameters: |
| - object |
| - name: nameOwnerChanged |
| parameters: |
| - object |
| - interface |
| |
| signals: |
| - name: propertiesChanged |
| description: > |
| A property changed match |
| parameters: |
| - type |
| - object |
| - interface |
| - property |
| match: propertiesChanged |
| - name: interfacesAdded |
| description: > |
| An interfaces added match |
| parameters: |
| - type |
| - object |
| - interface |
| - property |
| match: interfacesAdded |
| - name: nameOwnerChanged |
| description: > |
| A name owner changed match |
| parameters: |
| match: nameOwnerChanged |
| |
| methods: |
| - name: getProperties |
| description: > |
| Get the property values of the given group members |
| by performing a `GetProperty` method call on each |
| parameters: |
| - type |
| - name: nameHasOwner |
| description: > |
| A NameHasOwner method call to be performed on all event group members |
| parameters: |
| |
| handlers: |
| - name: setProperty |
| description: > |
| Sets a value for the given object/interface/property |
| parameters: |
| - type |
| - name: setService |
| description: > |
| Sets the service name and ownership status for the given group |
| parameters: |
| - group |
| |
| preconditions: |
| - name: property_states_match |
| description: > |
| All defined properties must match the values given to |
| enable a set speed event otherwise fan speeds are set to full |
| parameters: |
| - groups |
| - name: services_missing_owner |
| description: > |
| Any services missing an owner enable the events given otherwise |
| the events are removed/disabled |
| parameters: |
| |
| actions: |
| - name: call_actions_based_on_timer |
| description: > |
| Sets up a list of actions to be invoked when the defined timer |
| expires (or for each expiration of a repeating timer) |
| parameters: |
| - timer |
| - actions |
| - name: default_floor_on_missing_owner |
| description: > |
| Set the fan floor to the default floor |
| - name: set_speed_on_missing_owner |
| description: > |
| Set fans to the given speed when any service within the group |
| no longer exists |
| parameters: |
| - speed |
| - name: set_request_speed_base_with_max |
| description: > |
| Set the base request speed of a zone to the max value of a group for |
| calculating a new target speed |
| - name: count_state_before_speed |
| description: Set the speed when a number of properties at a state |
| parameters: |
| - count |
| - property |
| - speed |
| - name: set_floor_from_average_sensor_value |
| description: Set floor speed from first entry with average less than key |
| parameters: |
| - map |
| - name: set_ceiling_from_average_sensor_value |
| description: Set ceiling speed based on key transition values with average |
| parameters: |
| - map |
| - name: set_net_increase_speed |
| description: > |
| Set the speed increase delta based on a factor applied to |
| the delta increase size times the given value and property's |
| value difference |
| parameters: |
| - property |
| - factor |
| - delta |
| - name: set_net_decrease_speed |
| description: > |
| Set the speed decrease delta based on a factor applied to |
| the delta decrease size times the given value and property's |
| value difference |
| parameters: |
| - property |
| - factor |
| - delta |
| |
| events: |
| - name: default_fan_floor_on_service_fail |
| precondition: |
| name: services_missing_owner |
| groups: |
| - name: zone0_ambient |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| triggers: |
| - name: init |
| method: nameHasOwner |
| handler: setService |
| - name: signal |
| signal: nameOwnerChanged |
| handler: setService |
| events: |
| - name: default_fan_floor |
| groups: |
| - name: zone0_ambient |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| triggers: |
| - name: timer |
| interval: 5000000 |
| type: oneshot |
| actions: |
| - name: default_floor_on_missing_owner |
| - name: high_speed_on_occ_service_fail |
| groups: |
| - name: occ0_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| - name: occ1_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| triggers: |
| - name: init |
| method: nameHasOwner |
| handler: setService |
| - name: signal |
| signal: nameOwnerChanged |
| handler: setService |
| actions: |
| - name: call_actions_based_on_timer |
| timer: |
| interval: 5000000 |
| type: oneshot |
| actions: |
| - name: set_speed_on_missing_owner |
| speed: |
| value: 255 |
| type: uint64_t |
| - name: missing_or_fails_before_high_speed_air |
| groups: |
| - name: air_cooled_zone0_fans |
| interface: xyz.openbmc_project.Inventory.Item |
| property: |
| name: Present |
| type: bool |
| - name: air_cooled_zone0_fans |
| interface: xyz.openbmc_project.State.Decorator.OperationalStatus |
| property: |
| name: Functional |
| type: bool |
| triggers: |
| - name: init |
| method: getProperties |
| handler: setProperty |
| - name: signal |
| signal: propertiesChanged |
| handler: setProperty |
| actions: |
| - name: count_state_before_speed |
| count: 1 |
| property: |
| value: false |
| type: bool |
| speed: |
| value: 255 |
| type: uint64_t |
| - name: set_air_cooled_speed_boundaries_based_on_ambient |
| groups: |
| - name: zone0_ambient |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| triggers: |
| - name: init |
| method: getProperties |
| handler: setProperty |
| - name: signal |
| signal: propertiesChanged |
| handler: setProperty |
| actions: |
| - name: set_floor_from_average_sensor_value |
| map: |
| value: |
| - 27000: 85 |
| - 32000: 112 |
| - 37000: 126 |
| - 40000: 141 |
| type: std::map<int64_t, uint64_t> |
| - name: set_ceiling_from_average_sensor_value |
| map: |
| value: |
| - 25000: 175 |
| - 27000: 255 |
| type: std::map<int64_t, uint64_t> |
| - name: occ_active_speed_changes |
| precondition: |
| name: property_states_match |
| groups: |
| - name: occ0_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| value: true |
| - name: occ1_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| value: true |
| triggers: |
| - name: init |
| method: getProperties |
| handler: setProperty |
| - name: signal |
| signal: interfacesAdded |
| handler: setProperty |
| - name: signal |
| signal: propertiesChanged |
| handler: setProperty |
| events: |
| - name: speed_control_sensors |
| groups: |
| - name: zone0_cores |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| - name: zone0_dimms |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| triggers: |
| - name: init |
| method: getProperties |
| handler: setProperty |
| - name: signal |
| signal: interfacesAdded |
| handler: setProperty |
| - name: signal |
| signal: propertiesChanged |
| handler: setProperty |
| - name: 1sec_speed_change_request_sampling |
| triggers: |
| - name: timer |
| interval: 1000000 |
| type: repeating |
| actions: |
| # Speed changes based on core temps |
| - name: set_net_increase_speed |
| groups: |
| - name: zone0_cores |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| property: |
| value: 73000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 11 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| groups: |
| - name: zone0_cores |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| property: |
| value: 70000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 11 |
| type: uint64_t |
| # Speed changes based on dimm temps |
| - name: set_net_increase_speed |
| groups: |
| - name: zone0_dimms |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| property: |
| value: 64000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 6 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| groups: |
| - name: zone0_dimms |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| property: |
| value: 61000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 6 |
| type: uint64_t |