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/fan4 - name: water_and_air_cooled_zone0_fans description: Group of fan inventory objects for water/air cooled zone 0 type: /xyz/openbmc_project/inventory members: - /system/chassis/motherboard/fan4 - name: air_cooled_zone1_fans description: Group of fan inventory objects for air cooled zone 1 type: /xyz/openbmc_project/inventory members: - /system/chassis/motherboard/fan5 - name: air_cooled_zone2_fans description: Group of fan inventory objects for air cooled zone 2 type: /xyz/openbmc_project/inventory members: - /system/chassis/motherboard/fan0 - /system/chassis/motherboard/fan1 - /system/chassis/motherboard/fan2 - /system/chassis/motherboard/fan3 - name: water_and_air_cooled_zone2_fans description: Group of fan inventory objects for water/air cooled zone 2 type: /xyz/openbmc_project/inventory members: - /system/chassis/motherboard/fan0 - name: zone2_ambient description: Group of ambient temperature sensors for zone 2 type: /xyz/openbmc_project/sensors members: - /temperature/ambient - 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 - name: zone1_cores description: Group of core temperature sensors for zone 1 type: /xyz/openbmc_project/sensors members: - /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_regulators description: Group of regulator temperature sensors for zone 0 type: /xyz/openbmc_project/sensors members: - /temperature/p0_vdd_temp - name: zone1_regulators description: Group of regulator temperature sensors for zone 1 type: /xyz/openbmc_project/sensors members: - /temperature/p1_vdd_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 - name: zone1_dimms description: Group of dimm temperature sensors for zone 1 type: /xyz/openbmc_project/sensors members: - /temperature/dimm8_temp - /temperature/dimm9_temp - /temperature/dimm10_temp - /temperature/dimm11_temp - /temperature/dimm12_temp - /temperature/dimm13_temp - /temperature/dimm14_temp - /temperature/dimm15_temp - name: zone0_pcie description: Group of pcie temperature sensors for zone 0 type: /xyz/openbmc_project/sensors members: - /temperature/pcie matches: - name: propertiesChanged description: > A property changed match parameters: - object - interface signal: propertySignal - name: interfacesAdded description: > An interfaces added match parameters: - object signal: objectSignal - name: interfacesRemoved description: > An interfaces removed match parameters: - object signal: objectSignal - name: nameOwnerChanged description: > A name owner changed match parameters: - object - interface signal: ownerSignal signals: - name: propertySignal description: > Handle property signals parameters: - type - object - interface - property handler: setProperty - name: objectSignal description: > Handle object signals parameters: - type - object - interface - property handler: setProperty - name: ownerSignal description: > Handle owner signals parameters: - object - interface handler: setService handlers: - name: setProperty description: > Sets a value for the given object/interface/property parameters: - type - object - interface - property - name: setService description: > Sets the service name(s) 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 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 - name: run_pid_control description: > Runs PID control trying to keep value at property parameters: - property - integrator_timestep - kp - ki - kd events: - name: default_fan_floor_on_service_fail # No global zone conditions defined == all unless defined on group groups: - name: zone2_ambient interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: nameOwnerChanged actions: - name: call_actions_based_on_timer timer: delay: 5 type: oneshot actions: - name: default_floor_on_missing_owner - name: missing_before_high_speed_air_zone0 groups: - name: air_cooled_zone0_fans zone_conditions: - name: air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Inventory.Item property: name: Present type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: missing_before_high_speed_air_zone1 groups: - name: air_cooled_zone1_fans zone_conditions: - name: air_cooled_chassis zones: - 1 interface: xyz.openbmc_project.Inventory.Item property: name: Present type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: fails_before_high_speed_air_zone0 groups: - name: air_cooled_zone0_fans zone_conditions: - name: air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.State.Decorator.OperationalStatus property: name: Functional type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: fails_before_high_speed_air_zone1 groups: - name: air_cooled_zone1_fans zone_conditions: - name: air_cooled_chassis zones: - 1 interface: xyz.openbmc_project.State.Decorator.OperationalStatus property: name: Functional type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: missing_before_high_speed_water_and_air_zone0 groups: - name: water_and_air_cooled_zone0_fans zone_conditions: - name: water_and_air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Inventory.Item property: name: Present type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: fails_before_high_speed_water_and_air_zone0 groups: - name: water_and_air_cooled_zone0_fans zone_conditions: - name: water_and_air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.State.Decorator.OperationalStatus property: name: Functional type: bool matches: - name: propertiesChanged actions: - name: count_state_before_speed count: 1 property: value: false type: bool speed: value: 1000 type: uint64_t - name: set_air_cooled_speed_boundaries_based_on_ambient groups: - name: zone2_ambient zone_conditions: - name: air_cooled_chassis zones: - 2 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: propertiesChanged actions: - name: set_floor_from_average_sensor_value map: value: - 22000: 100 - 27000: 150 - 32000: 200 - 37000: 250 - 40000: 300 - 42000: 350 - 45000: 400 type: std::map - name: set_ceiling_from_average_sensor_value map: value: - 25000: 750 - 27000: 1000 type: std::map - name: set_water_cooled_speed_boundaries_based_on_ambient groups: - name: zone2_ambient zone_conditions: - name: water_and_air_cooled_chassis zones: - 2 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: propertiesChanged actions: - name: set_floor_from_average_sensor_value map: value: - 22000: 250 - 27000: 300 - 32000: 350 - 37000: 400 - 42000: 450 - 47000: 500 - 63000: 550 type: std::map - name: set_ceiling_from_average_sensor_value map: value: - 25000: 850 - 27000: 1000 type: std::map - name: speed_changes_based_on_regulator_temps groups: - name: zone0_regulators zone_conditions: - name: air_cooled_chassis zones: - 0 - name: water_and_air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: set_net_increase_speed property: value: 85000 type: int64_t factor: value: 1000 type: int64_t delta: value: 40 type: uint64_t timer: interval: 5 - name: occ_active_speed_changes_zone0 precondition: name: property_states_match groups: - name: occ0_object interface: org.open_power.OCC.Status property: name: OccActive type: bool value: true matches: - name: interfacesAdded - name: propertiesChanged events: - name: speed_changes_based_on_core_temps_zone0 groups: - name: zone0_cores zone_conditions: - name: air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: run_pid_control property: value: 63000 type: int64_t integrator_timestep: value: 1 type: int64_t kp: value: 2000 type: int64_t ki: value: 100 type: int64_t kd: value: 0 type: int64_t # Ensure PID values are always translated out to hardware # This do-nothing "speed increase" is always called on every loop invocation - name: set_net_increase_speed property: value: 0 type: int64_t factor: value: 0 type: int64_t delta: value: 0 type: uint64_t timer: interval: 5 - name: speed_changes_based_on_dimm_temps_zone0 groups: - name: zone0_dimms zone_conditions: - name: air_cooled_chassis zones: - 0 - name: water_and_air_cooled_chassis zones: - 0 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: set_net_increase_speed property: value: 64000 type: int64_t factor: value: 1000 type: int64_t delta: value: 4 type: uint64_t timer: interval: 5 - name: occ_active_speed_changes_zone1 precondition: name: property_states_match groups: - name: occ1_object interface: org.open_power.OCC.Status property: name: OccActive type: bool value: true matches: - name: interfacesAdded - name: propertiesChanged events: - name: speed_changes_based_on_core_temps_zone1 groups: - name: zone1_cores zone_conditions: - name: air_cooled_chassis zones: - 1 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: run_pid_control property: value: 63001 type: int64_t integrator_timestep: value: 1 type: int64_t kp: value: 2000 type: int64_t ki: value: 100 type: int64_t kd: value: 0 type: int64_t # Ensure PID values are always translated out to hardware # This do-nothing "speed increase" is always called on every loop invocation - name: set_net_increase_speed property: value: 0 type: int64_t factor: value: 0 type: int64_t delta: value: 0 type: uint64_t timer: interval: 5 - name: speed_changes_based_on_dimm_temps_zone1 groups: - name: zone1_dimms zone_conditions: - name: air_cooled_chassis zones: - 1 - name: water_and_air_cooled_chassis zones: - 2 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: set_net_increase_speed property: value: 64000 type: int64_t factor: value: 1000 type: int64_t delta: value: 40 type: uint64_t timer: interval: 5 - name: occ_active_speed_changes_zone2 precondition: name: property_states_match groups: - name: occ0_object interface: org.open_power.OCC.Status property: name: OccActive type: bool value: true matches: - name: interfacesAdded - name: propertiesChanged events: - name: speed_changes_based_on_ambient_temp groups: - name: zone2_ambient zone_conditions: - name: air_cooled_chassis zones: - 2 - name: water_and_air_cooled_chassis zones: - 2 interface: xyz.openbmc_project.Sensor.Value property: name: Value type: int64_t matches: - name: interfacesAdded - name: propertiesChanged actions: - name: run_pid_control property: value: 45000 type: int64_t integrator_timestep: value: 1 type: int64_t kp: value: 500 type: int64_t ki: value: 25 type: int64_t kd: value: 0 type: int64_t # Ensure PID values are always translated out to hardware # This do-nothing "speed increase" is always called on every loop invocation - name: set_net_increase_speed property: value: 0 type: int64_t factor: value: 0 type: int64_t delta: value: 0 type: uint64_t timer: interval: 5