From b5138924f58e8d119a05968228452836ff94b91d Mon Sep 17 00:00:00 2001 From: Raptor Engineering Development Team Date: Tue, 23 Jan 2018 21:32:55 -0600 Subject: Split fan control zones for CPU0 and CPU1 This allows fan control to function when only one CPU is installed --- .../events.yaml | 62 +++++++++++++++------- .../zone_conditions.yaml | 9 ++++ .../fans/talos-fan-policy/fan-errors.yaml | 44 ++++++++++++++- 3 files changed, 93 insertions(+), 22 deletions(-) (limited to 'meta-openbmc-machines/meta-openpower') diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml index 33ff0bb8e..b040ee948 100644 --- a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml @@ -605,7 +605,7 @@ events: type: uint64_t timer: interval: 5 - - name: occ_active_speed_changes + - name: occ_active_speed_changes_zone0 precondition: name: property_states_match groups: @@ -615,12 +615,6 @@ events: 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 @@ -657,12 +651,15 @@ events: type: uint64_t timer: interval: 5 - - name: speed_changes_based_on_core_temps_zone1 + - name: speed_changes_based_on_dimm_temps_zone0 zone_conditions: - name: air_cooled_chassis zones: - - 1 - group: zone1_cores + - 0 + - name: water_and_air_cooled_chassis + zones: + - 0 + group: zone0_dimms interface: xyz.openbmc_project.Sensor.Value property: name: Value @@ -672,7 +669,7 @@ events: - name: propertiesChanged actions: - name: set_net_increase_speed - property: 53000 + property: 64000 factor: value: 1000 type: int64_t @@ -680,7 +677,7 @@ events: value: 4 type: uint64_t - name: set_net_decrease_speed - property: 50000 + property: 61000 factor: value: 1000 type: int64_t @@ -689,15 +686,26 @@ events: type: uint64_t timer: interval: 5 - - name: speed_changes_based_on_dimm_temps_zone0 + - 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 zone_conditions: - name: air_cooled_chassis zones: - - 0 - - name: water_and_air_cooled_chassis - zones: - - 0 - group: zone0_dimms + - 1 + group: zone1_cores interface: xyz.openbmc_project.Sensor.Value property: name: Value @@ -707,7 +715,7 @@ events: - name: propertiesChanged actions: - name: set_net_increase_speed - property: 64000 + property: 53000 factor: value: 1000 type: int64_t @@ -715,7 +723,7 @@ events: value: 4 type: uint64_t - name: set_net_decrease_speed - property: 61000 + property: 50000 factor: value: 1000 type: int64_t @@ -759,6 +767,20 @@ events: 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_gpu_core_temps zone_conditions: - name: air_cooled_chassis diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml index 0c8b3c5ff..244b6b16b 100644 --- a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml @@ -16,3 +16,12 @@ conditions: path: /xyz/openbmc_project/inventory/system/chassis type: bool value: true + + - name: second_cpu_controlled + type: getProperty + properties: + - property: OccActive + interface: org.open_power.OCC.Status + path: /org/open_power/control/occ1 + type: bool + value: true \ No newline at end of file diff --git a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml index 486e536ad..40d022109 100644 --- a/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml +++ b/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml @@ -116,6 +116,18 @@ meta: COOLING_TYPE property: WaterCooled +- name: second cpu controlled + description: > + 'Whether or not the second CPU is installed and under thermal control.' + class: group + group: property + type: boolean + members: + - interface: org.open_power.OCC.Status + path: /org/open_power/control/occ1 + meta: SECOND_CPU_CONTROLLED + property: OccActive + - name: watch chassis state description: > 'Trigger logic on chassis power state changes.' @@ -588,7 +600,7 @@ paths: fan5 properties: fan present defer: 20000000us - callback: check cooling type notpresent error + callback: check second cpu controlled notpresent error countop: '<' countbound: 1 op: '==' @@ -603,7 +615,7 @@ condition: count paths: fan5 properties: fan functional - callback: check cooling type nonfunctional error + callback: check second cpu controlled nonfunctional error countop: '>' countbound: 0 op: '==' @@ -637,6 +649,34 @@ op: '==' bound: true +- name: check second cpu controlled nonfunctional error + description: > + 'If this condition passes the second CPU is controlled and will create a + nonfunctional error for fan 6 in air cooled mode.' + class: condition + condition: count + paths: chassis + properties: second cpu controlled + callback: check cooling type nonfunctional error + countop: '==' + countbound: 0 + op: '==' + bound: true + +- name: check second cpu controlled notpresent error + description: > + 'If this condition passes the second CPU is controlled and will create a + notpresent error for fan 6 in air cooled mode.' + class: condition + condition: count + paths: chassis + properties: second cpu controlled + callback: check cooling type notpresent error + countop: '==' + countbound: 0 + op: '==' + bound: true + - name: notpresent fan0 error class: callback callback: elog -- cgit v1.2.1