| groups: |
| - name: zone0_control_mode |
| description: Thermal control mode for zone 0 |
| service: xyz.openbmc_project.Control.Thermal |
| type: /xyz/openbmc_project/control/thermal |
| members: |
| - /0 |
| - 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: 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/fan0 |
| - /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/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 |
| - /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 |
| - /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 |
| - /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_gpu_cores |
| description: Group of gpu core temperature sensors for zone 0 |
| type: /xyz/openbmc_project/sensors |
| members: |
| - /temperature/gpu0_core_temp |
| - /temperature/gpu1_core_temp |
| - /temperature/gpu2_core_temp |
| - /temperature/gpu3_core_temp |
| - /temperature/gpu4_core_temp |
| - /temperature/gpu5_core_temp |
| - name: zone0_gpu_memory |
| description: Group of gpu memory temperature sensors for zone 0 |
| type: /xyz/openbmc_project/sensors |
| members: |
| - /temperature/gpu0_mem_temp |
| - /temperature/gpu1_mem_temp |
| - /temperature/gpu2_mem_temp |
| - /temperature/gpu3_mem_temp |
| - /temperature/gpu4_mem_temp |
| - /temperature/gpu5_mem_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: |
| name: objectSignal |
| parameters: |
| - object |
| - interface |
| handler: removeInterface |
| - 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 |
| - name: removeInterface |
| description: > |
| Removes an interface(and all associated properties) on the |
| given object from use within actions |
| parameters: |
| - object |
| - interface |
| |
| 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: use_alternate_events_on_state |
| description: > |
| Replaces a set of default events with an alternate set of events |
| when all the group properties are at a given state |
| parameters: |
| - property |
| - defevents |
| - altevents |
| |
| events: |
| - name: default_fan_floor_on_service_fail |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: zone0_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: high_speed_on_occ0_service_fail |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: occ0_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| matches: |
| - name: nameOwnerChanged |
| actions: |
| - name: call_actions_based_on_timer |
| timer: |
| delay: 5 |
| type: oneshot |
| actions: |
| - name: set_speed_on_missing_owner |
| speed: |
| value: 10500 |
| type: uint64_t |
| - name: high_speed_on_occ1_service_fail |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: occ1_object |
| interface: org.open_power.OCC.Status |
| property: |
| name: OccActive |
| type: bool |
| matches: |
| - name: nameOwnerChanged |
| actions: |
| - name: call_actions_based_on_timer |
| timer: |
| delay: 5 |
| type: oneshot |
| actions: |
| - name: set_speed_on_missing_owner |
| speed: |
| value: 10500 |
| type: uint64_t |
| - name: missing_before_high_speed_air |
| 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: 10500 |
| type: uint64_t |
| - name: fails_before_high_speed_air |
| 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: interfacesAdded |
| - name: propertiesChanged |
| actions: |
| - name: count_state_before_speed |
| count: 1 |
| property: |
| value: false |
| type: bool |
| speed: |
| value: 10500 |
| type: uint64_t |
| - name: missing_before_high_speed_water_and_air |
| 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: 10500 |
| type: uint64_t |
| - name: fails_before_high_speed_water_and_air |
| 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: interfacesAdded |
| - name: propertiesChanged |
| actions: |
| - name: count_state_before_speed |
| count: 1 |
| property: |
| value: false |
| type: bool |
| speed: |
| value: 10500 |
| type: uint64_t |
| - name: set_air_cooled_speed_boundaries_based_on_ambient |
| groups: |
| - name: zone0_control_mode |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| interface: xyz.openbmc_project.Control.ThermalMode |
| property: |
| name: Current |
| type: std::string |
| matches: |
| - name: propertiesChanged |
| actions: |
| - name: use_alternate_events_on_state |
| property: |
| value: CUSTOM |
| type: std::string |
| defevents: |
| - name: default_floor_boundary |
| groups: |
| - name: zone0_ambient |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| 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: |
| - 27000: 3500 |
| - 32000: 4600 |
| - 37000: 5200 |
| - 40000: 5800 |
| type: std::map<int64_t, uint64_t> |
| - name: set_ceiling_from_average_sensor_value |
| map: |
| value: |
| - 25000: 7200 |
| - 27000: 10500 |
| type: std::map<int64_t, uint64_t> |
| altevents: |
| - name: alternate_floor_boundary |
| groups: |
| - name: zone0_ambient |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| 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: |
| - 27000: 4600 |
| - 32000: 5000 |
| - 37000: 5400 |
| - 40000: 5800 |
| type: std::map<int64_t, uint64_t> |
| - name: set_ceiling_from_average_sensor_value |
| map: |
| value: |
| - 25000: 7200 |
| - 27000: 10500 |
| type: std::map<int64_t, uint64_t> |
| - name: set_water_cooled_speed_boundaries_based_on_ambient |
| groups: |
| - name: zone0_ambient |
| zone_conditions: |
| - name: water_and_air_cooled_chassis |
| zones: |
| - 0 |
| 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: |
| - 27000: 3000 |
| - 32000: 4300 |
| - 37000: 5000 |
| - 40000: 5800 |
| type: std::map<int64_t, uint64_t> |
| - name: set_ceiling_from_average_sensor_value |
| map: |
| value: |
| - 25000: 7200 |
| - 27000: 10500 |
| type: std::map<int64_t, uint64_t> |
| - name: speed_changes_based_on_regulator_temps |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: zone0_regulators |
| 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: 400 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 82000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |
| - name: speed_changes_based_on_pcie_temps |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: zone0_pcie |
| 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: 55000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 400 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 52000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |
| - 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 |
| matches: |
| - name: interfacesAdded |
| - name: propertiesChanged |
| events: |
| - name: fails_before_high_speed_air |
| groups: |
| - name: zone0_cores |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| interface: xyz.openbmc_project.State.Decorator.OperationalStatus |
| property: |
| name: Functional |
| type: bool |
| - name: zone0_dimms |
| interface: xyz.openbmc_project.State.Decorator.OperationalStatus |
| property: |
| name: Functional |
| type: bool |
| - name: zone0_gpu_cores |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| interface: xyz.openbmc_project.State.Decorator.OperationalStatus |
| property: |
| name: Functional |
| type: bool |
| - name: zone0_gpu_memory |
| zone_conditions: |
| - name: air_cooled_chassis |
| zones: |
| - 0 |
| interface: xyz.openbmc_project.State.Decorator.OperationalStatus |
| property: |
| name: Functional |
| type: bool |
| matches: |
| - name: interfacesAdded |
| - name: propertiesChanged |
| actions: |
| - name: count_state_before_speed |
| count: 1 |
| property: |
| value: false |
| type: bool |
| speed: |
| value: 10500 |
| type: uint64_t |
| - name: speed_changes_based_on_core_temps |
| 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 |
| - name: interfacesRemoved |
| actions: |
| - name: set_net_increase_speed |
| property: |
| value: 73000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 400 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 70000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |
| - name: speed_changes_based_on_dimm_temps |
| # No global zone conditions defined == all unless defined on group |
| groups: |
| - name: zone0_dimms |
| interface: xyz.openbmc_project.Sensor.Value |
| property: |
| name: Value |
| type: int64_t |
| matches: |
| - name: interfacesAdded |
| - name: propertiesChanged |
| - name: interfacesRemoved |
| actions: |
| - name: set_net_increase_speed |
| property: |
| value: 64000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 200 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 61000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |
| - name: speed_changes_based_on_gpu_core_temps |
| groups: |
| - name: zone0_gpu_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 |
| - name: interfacesRemoved |
| actions: |
| - name: set_net_increase_speed |
| property: |
| value: 78000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 600 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 75000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |
| - name: speed_changes_based_on_gpu_memory_temps |
| groups: |
| - name: zone0_gpu_memory |
| 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 |
| - name: interfacesRemoved |
| actions: |
| - name: set_net_increase_speed |
| property: |
| value: 80000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 600 |
| type: uint64_t |
| - name: set_net_decrease_speed |
| property: |
| value: 77000 |
| type: int64_t |
| factor: |
| value: 1000 |
| type: int64_t |
| delta: |
| value: 40 |
| type: uint64_t |
| timer: |
| interval: 5 |