Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 1 | #Example fan monitor definitions for phosphor-fan-monitor |
| 2 | |
| 3 | #List the fans that need to be monitored, along with some |
| 4 | #properties that define how much slack is allowed in the actual |
| 5 | #tach value as compared to the target tach value. |
| 6 | |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 7 | #fans: |
| 8 | # - inventory: |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 9 | # [The system inventory location for the fan] |
Jolie Ku | 69f2f48 | 2020-10-21 09:59:43 +0800 | [diff] [blame^] | 10 | # method: [timebased|count](optional) |
| 11 | # [Available methods: |
| 12 | # * timebased - use a percentage based deviation |
| 13 | # * count - run up/down count fault detection] |
Matthew Barth | 9396bcc | 2018-02-19 14:13:20 -0600 | [diff] [blame] | 14 | # functional_delay: |
| 15 | # [Delay (in secs) before a fan is marked functional after returning |
| 16 | # within the allowed deviation] |
Jolie Ku | 69f2f48 | 2020-10-21 09:59:43 +0800 | [diff] [blame^] | 17 | # allowed_out_of_range_time: (required for method timebased) |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 18 | # [Time (in secs) actual speed can be outside of deviation of |
| 19 | # target speed] |
| 20 | # deviation: |
| 21 | # [Percentage that actual speed must be within target speed] |
| 22 | # num_sensors_nonfunc_for_fan_nonfunc: |
| 23 | # [How many sensors on the fan must be faulted before fan |
| 24 | # will be considered faulted] |
| 25 | # sensors: [array of speed sensors for the fan] |
| 26 | # - name [The name of the fan sensor] |
| 27 | # has_target [true|false If this sensor has a Target property for |
| 28 | # setting a fan speed (otherwise just for reads)] |
Lei YU | 80f271b | 2018-01-31 15:24:46 +0800 | [diff] [blame] | 29 | # target_interface [The fan target interface used by the sensor. |
| 30 | # Default is "xyz.openbmc_project.Control.FanSpeed"] |
Lei YU | 8e5d197 | 2018-01-26 17:14:00 +0800 | [diff] [blame] | 31 | # factor [The factor to multiply with target to calculate the expected |
| 32 | # fan speed. Default is 1 for fan speed target; |
| 33 | # Customized value for pwm target] |
| 34 | # offset [The offset to add to calculate the expected fan speed. |
| 35 | # Default is 0 for fan speed target; |
| 36 | # Customized value for pwm target] |
Matthew Barth | 33618bc | 2018-05-03 10:55:11 -0500 | [diff] [blame] | 37 | # condition: [optional condition function to create fan functional monitoring] |
| 38 | # name: [The name of an available condition function] |
| 39 | # properties: [The properties used in the condition function] |
| 40 | # - object: [Object path of property to use] |
| 41 | # interface: [Interface of property to use] |
| 42 | # property: |
| 43 | # name: [Property name] |
| 44 | # type: [Property data type] |
| 45 | # value: [Property value to check condition against] |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 46 | # |
| 47 | #sensor_trust_groups: |
| 48 | # - class: [Group class name |
| 49 | # Available classes: |
| 50 | # * NonzeroSpeed - Only trust if at least one sensor in the group |
| 51 | # has a nonzero speed.] |
Matthew Barth | c63ef39 | 2018-02-16 13:06:36 -0600 | [diff] [blame] | 52 | # group: |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 53 | # - name [The name of the fan sensor in this group] |
Matthew Barth | c63ef39 | 2018-02-16 13:06:36 -0600 | [diff] [blame] | 54 | # in_trust: [true|false] (optional) |
| 55 | # [Include in trust determination or not. Default = true] |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 56 | |
| 57 | #The code uses these parameters as follows: |
| 58 | # After a speed reading of a sensor is outside of the allowed deviation of |
| 59 | # the target speed for the allowed out of range time, if at least |
| 60 | # num_sensors_nonfunc_for_fan_nonfunc sensors meet this condition, |
| 61 | # the fan will be set to nonfunctional in the inventory. |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 62 | # |
| 63 | # Sensor trust groups are used to specify that the speed values for the |
| 64 | # sensors in a group cannot be trusted based on some condition, where |
| 65 | # the condition is based on the class used to implement the group. All |
Matthew Barth | c63ef39 | 2018-02-16 13:06:36 -0600 | [diff] [blame] | 66 | # sensors in the group go in and out of trust based on those defined |
| 67 | # to be part of determining the trust. This section is optional. |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 68 | |
| 69 | #Example entries for 1 fan system: |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 70 | #fans: |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 71 | # - inventory: /system/chassis/motherboard/fan0 |
Matthew Barth | 9396bcc | 2018-02-19 14:13:20 -0600 | [diff] [blame] | 72 | # functional_delay: 5 |
Matt Spinler | 1432184 | 2017-04-28 15:27:43 -0500 | [diff] [blame] | 73 | # allowed_out_of_range_time: 15 |
| 74 | # deviation: 15 |
| 75 | # num_sensors_nonfunc_for_fan_nonfunc: 1 |
| 76 | # sensors: |
| 77 | # - name: fan0 |
| 78 | # has_target: true |
Matthew Barth | 33618bc | 2018-05-03 10:55:11 -0500 | [diff] [blame] | 79 | # # Only create fan functional properties and monitor on air cooled |
| 80 | # condition: |
| 81 | # name: propertiesMatch |
| 82 | # properties: |
| 83 | # - object: /xyz/openbmc_project/inventory/system/chassis |
| 84 | # interface: xyz.openbmc_project.Inventory.Decorator.CoolingType |
| 85 | # property: |
| 86 | # name: WaterCooled |
| 87 | # type: bool |
| 88 | # value: false |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 89 | #sensor_trust_groups: |
| 90 | # - class: NonzeroSpeed |
Matthew Barth | c63ef39 | 2018-02-16 13:06:36 -0600 | [diff] [blame] | 91 | # group: |
Matt Spinler | 956a0a5 | 2017-09-28 12:44:06 -0500 | [diff] [blame] | 92 | # - name: fan0_0 |
Matthew Barth | c63ef39 | 2018-02-16 13:06:36 -0600 | [diff] [blame] | 93 | # in_trust: false |
| 94 | # - name: fan0_1 |
Jolie Ku | 69f2f48 | 2020-10-21 09:59:43 +0800 | [diff] [blame^] | 95 | |
| 96 | #Example entries for count method fan system: |
| 97 | #fans: |
| 98 | # - inventory: /system/chassis/motherboard/fan2 |
| 99 | # method: count |
| 100 | # functional_delay: 5 |
| 101 | # deviation: 15 |
| 102 | # num_sensors_nonfunc_for_fan_nonfunc: 1 |
| 103 | # sensors: |
| 104 | # - name: fan2 |
| 105 | # has_target: true |
| 106 | # # Only create fan functional properties and monitor on air cooled |
| 107 | # condition: |
| 108 | # name: propertiesMatch |
| 109 | # properties: |
| 110 | # - object: /xyz/openbmc_project/inventory/system/chassis |
| 111 | # interface: xyz.openbmc_project.Inventory.Decorator.CoolingType |
| 112 | # property: |
| 113 | # name: WaterCooled |
| 114 | # type: bool |
| 115 | # value: false |