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 - /system/chassis/motherboard/fan3 - name: zone0_ambient description: Group of ambient temperature sensors for zone 0 type: /xyz/openbmc_project/sensors members: - /temperature/inlet - 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 - name: set_ceiling_from_average_sensor_value map: value: - 25000: 175 - 27000: 255 type: std::map - 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