diff options
author | Lei YU <mine260309@gmail.com> | 2018-01-26 16:53:57 +0800 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-03-23 16:15:16 +0000 |
commit | ce8765f3361526a04e2761a5811d50e487827007 (patch) | |
tree | e09c92eebcf2afb2d619aadfdde61ff45b8db165 /meta-openbmc-machines | |
parent | 8d8f357f0c398855d719f3a3e599af07c3e28b4b (diff) | |
download | talos-openbmc-ce8765f3361526a04e2761a5811d50e487827007.tar.gz talos-openbmc-ce8765f3361526a04e2761a5811d50e487827007.zip |
meta-romulus: Add fan control yaml configs
1. The config follows Witherspoon's and remove water-cool/gpu/pcie
related configs.
2. Uses FanPwm interface instead of FanSpeed.
3. Removed zone_condition related config which is optional. Romulus is
always air cooled.
4. Updated to use groups for events.
Tested: Verified that fan control automatically adjust fan speeds based
on temperatures.
Change-Id: I386c7e921557ef53b445cafe504d2927a76e8e38
Signed-off-by: Lei YU <mine260309@gmail.com>
Diffstat (limited to 'meta-openbmc-machines')
13 files changed, 412 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend index 72d991c7e..72d991c7e 100644 --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml new file mode 100644 index 000000000..967a0b797 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml @@ -0,0 +1,369 @@ +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 + description: > + A property changed match + parameters: + - object + - interface + signal: propertySignal + - name: interfacesAdded + description: > + An interfaces added 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 + +events: + - name: missing_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + 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: 255 + type: uint64_t + - name: fails_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + 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: 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 + matches: + - name: propertiesChanged + 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 + matches: + - name: interfacesAdded + - name: propertiesChanged + events: + - name: speed_changes_based_on_core_temps + groups: + - name: zone0_cores + 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: 73000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 11 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 70000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 11 + type: uint64_t + timer: + interval: 5 + - name: speed_changes_based_on_dimm_temps + groups: + - name: zone0_dimms + 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: 6 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 61000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 6 + type: uint64_t + timer: + interval: 5 diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend new file mode 100644 index 000000000..72d991c7e --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml new file mode 100644 index 000000000..f910e6253 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml @@ -0,0 +1,16 @@ +fans: + - inventory: /system/chassis/motherboard/fan0 + cooling_zone: 0 + sensors: + - fan0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan1 + cooling_zone: 0 + sensors: + - fan1 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan2 + cooling_zone: 0 + sensors: + - fan2 + target_interface: xyz.openbmc_project.Control.FanPwm diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend new file mode 100644 index 000000000..72d991c7e --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml new file mode 100644 index 000000000..7dc99b6a2 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml @@ -0,0 +1,9 @@ +conditions: + - name: air_cooled_chassis + type: getProperty + properties: + - property: WaterCooled + interface: xyz.openbmc_project.Inventory.Decorator.CoolingType + path: /xyz/openbmc_project/inventory/system/chassis + type: bool + value: false diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend new file mode 100644 index 000000000..6d4804d12 --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml new file mode 100644 index 000000000..91df5c25d --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml @@ -0,0 +1,13 @@ +manager_configuration: + power_on_delay: 20 + +zone_configuration: + +#Air cooled zones +- zone_conditions: + zones: + - zone: 0 + full_speed: 255 + default_floor: 195 + increase_delay: 5 + decrease_interval: 30 diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend new file mode 100644 index 000000000..72d991c7e --- /dev/null +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml index 5acb91fc7..5acb91fc7 100644 --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend index 86ed1d4a2..86ed1d4a2 100644 --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%.bbappend +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf index 21fcfcb49..21fcfcb49 100644 --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service index 7452b9182..7452b9182 100644 --- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service +++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service |