summaryrefslogtreecommitdiff
path: root/meta-ibm/meta-witherspoon/recipes-phosphor/fans
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2019-10-09 17:46:26 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-10-24 04:10:05 +0300
commit2795589128d1f7509ac0ab9eba940d868413ac7d (patch)
treecdffd16e1c0da875ede06b9751886c7a31227e04 /meta-ibm/meta-witherspoon/recipes-phosphor/fans
parent98712768a871c290c0874f0d5a8506bc621bd5d5 (diff)
downloadopenbmc-2795589128d1f7509ac0ab9eba940d868413ac7d.tar.xz
wspoon: Enable fan floor adjustments based on mode
Add actions to adjust the fan floor speed table used based on the thermal mode of the system. In addition to adjusting the fan floor speed table, in some modes the default fan floor required adjustment as well. These fan floor speed values and the corresponding default fan floor speed per mode were provided by the thermal characterization team. Tested: Generated code from these events (From meta-ibm rev: 0c6a7b5a5aadcbabd7bf5d25cd102fd228e26f42) Change-Id: Ic2bfca05979cb41489fcf123f1779d2d5f089e7c Signed-off-by: Matthew Barth <msbarth@us.ibm.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/fans')
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml353
1 files changed, 229 insertions, 124 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml
index 5534cb6cd..c1902d02b 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/witherspoon/events.yaml
@@ -297,6 +297,19 @@ actions:
- property
- defevents
- altevents
+ - name: update_default_floor
+ description: >
+ Update the default fan floor to the given speed
+ parameters:
+ - property
+ - speed
+ - name: use_events_on_state
+ description: >
+ Use a set of events when all the group properties are at a given
+ state, otherwise remove the events
+ parameters:
+ - property
+ - events
events:
- name: default_fan_floor_on_service_fail
@@ -358,6 +371,222 @@ events:
speed:
value: 10500
type: uint64_t
+ - name: set_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone0_control_mode
+ interface: xyz.openbmc_project.Control.ThermalMode
+ property:
+ name: Current
+ type: std::string
+ triggers:
+ - name: init
+ method: getProperties
+ handler: setProperty
+ - name: signal
+ signal: propertiesChanged
+ handler: setProperty
+ actions:
+ - name: update_default_floor
+ property:
+ value: DEFAULT
+ type: std::string
+ speed:
+ value: 8000
+ type: uint64_t
+ - name: update_default_floor
+ property:
+ value: CUSTOM
+ type: std::string
+ speed:
+ value: 8000
+ type: uint64_t
+ - name: update_default_floor
+ property:
+ value: HEAVY_IO
+ type: std::string
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: update_default_floor
+ property:
+ value: MAX_BASE_FAN_FLOOR
+ type: std::string
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: use_events_on_state
+ property:
+ value: DEFAULT
+ type: std::string
+ events:
+ - name: default_fan_speed_boundaries
+ groups:
+ - name: zone0_ambient
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ 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: 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>
+ - name: default_fan_speed_boundaries
+ 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
+ triggers:
+ - name: init
+ method: getProperties
+ handler: setProperty
+ - name: signal
+ signal: propertiesChanged
+ handler: setProperty
+ 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: use_events_on_state
+ property:
+ value: CUSTOM
+ type: std::string
+ events:
+ - name: custom_fan_speed_boundaries
+ 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: 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: use_events_on_state
+ property:
+ value: HEAVY_IO
+ type: std::string
+ events:
+ - name: heavy_io_fan_speed_boundaries
+ 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: 5900
+ - 32000: 6800
+ - 37000: 7500
+ - 40000: 8200
+ 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: use_events_on_state
+ property:
+ value: MAX_BASE_FAN_FLOOR
+ type: std::string
+ events:
+ - name: max_base_fan_floor_fan_speed_boundaries
+ 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: 7200
+ - 32000: 8800
+ - 37000: 9600
+ - 40000: 10500
+ 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: full_speed_at_power_on
precondition:
name: property_states_match
@@ -448,130 +677,6 @@ events:
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
- triggers:
- - name: init
- method: getProperties
- handler: setProperty
- - name: signal
- signal: propertiesChanged
- handler: setProperty
- 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
- triggers:
- - name: init
- method: getProperties
- handler: setProperty
- - name: signal
- signal: propertiesChanged
- handler: setProperty
- 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
- triggers:
- - name: init
- method: getProperties
- handler: setProperty
- - name: signal
- signal: propertiesChanged
- handler: setProperty
- 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
- triggers:
- - name: init
- method: getProperties
- handler: setProperty
- - name: signal
- signal: propertiesChanged
- handler: setProperty
- 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: occ_active_speed_changes
precondition:
name: property_states_match