blob: 14fce2cb11ab495fd79bcbbacfb970f0c6e1fad1 [file] [log] [blame]
Matt Spinler14321842017-04-28 15:27:43 -05001#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 Spinler956a0a52017-09-28 12:44:06 -05007#fans:
8# - inventory:
Matt Spinler14321842017-04-28 15:27:43 -05009# [The system inventory location for the fan]
Jolie Ku69f2f482020-10-21 09:59:43 +080010# method: [timebased|count](optional)
11# [Available methods:
12# * timebased - use a percentage based deviation
13# * count - run up/down count fault detection]
Matthew Barth9396bcc2018-02-19 14:13:20 -060014# functional_delay:
15# [Delay (in secs) before a fan is marked functional after returning
16# within the allowed deviation]
Jolie Ku69f2f482020-10-21 09:59:43 +080017# allowed_out_of_range_time: (required for method timebased)
Matt Spinler14321842017-04-28 15:27:43 -050018# [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 YU80f271b2018-01-31 15:24:46 +080029# target_interface [The fan target interface used by the sensor.
30# Default is "xyz.openbmc_project.Control.FanSpeed"]
Chau Ly27cc39f2022-09-20 08:16:56 +000031# target_path [The full target path, which implements
32# xyz.openbmc_project.Control.FanSpeed or
33# xyz.openbmc_project.Control.FanPwm interface.
34# Default is /xyz/openbmc_project/sensors/fan_tach/*"]
Lei YU8e5d1972018-01-26 17:14:00 +080035# factor [The factor to multiply with target to calculate the expected
36# fan speed. Default is 1 for fan speed target;
37# Customized value for pwm target]
38# offset [The offset to add to calculate the expected fan speed.
39# Default is 0 for fan speed target;
40# Customized value for pwm target]
Matthew Barth33618bc2018-05-03 10:55:11 -050041# condition: [optional condition function to create fan functional monitoring]
42# name: [The name of an available condition function]
43# properties: [The properties used in the condition function]
44# - object: [Object path of property to use]
45# interface: [Interface of property to use]
46# property:
47# name: [Property name]
48# type: [Property data type]
49# value: [Property value to check condition against]
Matt Spinler956a0a52017-09-28 12:44:06 -050050#
51#sensor_trust_groups:
52# - class: [Group class name
53# Available classes:
54# * NonzeroSpeed - Only trust if at least one sensor in the group
55# has a nonzero speed.]
Matthew Barthc63ef392018-02-16 13:06:36 -060056# group:
Matt Spinler956a0a52017-09-28 12:44:06 -050057# - name [The name of the fan sensor in this group]
Matthew Barthc63ef392018-02-16 13:06:36 -060058# in_trust: [true|false] (optional)
59# [Include in trust determination or not. Default = true]
Matt Spinler14321842017-04-28 15:27:43 -050060
61#The code uses these parameters as follows:
62# After a speed reading of a sensor is outside of the allowed deviation of
63# the target speed for the allowed out of range time, if at least
64# num_sensors_nonfunc_for_fan_nonfunc sensors meet this condition,
65# the fan will be set to nonfunctional in the inventory.
Matt Spinler956a0a52017-09-28 12:44:06 -050066#
67# Sensor trust groups are used to specify that the speed values for the
68# sensors in a group cannot be trusted based on some condition, where
69# the condition is based on the class used to implement the group. All
Matthew Barthc63ef392018-02-16 13:06:36 -060070# sensors in the group go in and out of trust based on those defined
71# to be part of determining the trust. This section is optional.
Matt Spinler14321842017-04-28 15:27:43 -050072
73#Example entries for 1 fan system:
Matt Spinler956a0a52017-09-28 12:44:06 -050074#fans:
Matt Spinler14321842017-04-28 15:27:43 -050075# - inventory: /system/chassis/motherboard/fan0
Matthew Barth9396bcc2018-02-19 14:13:20 -060076# functional_delay: 5
Matt Spinler14321842017-04-28 15:27:43 -050077# allowed_out_of_range_time: 15
78# deviation: 15
79# num_sensors_nonfunc_for_fan_nonfunc: 1
80# sensors:
81# - name: fan0
82# has_target: true
Matthew Barth33618bc2018-05-03 10:55:11 -050083# # Only create fan functional properties and monitor on air cooled
84# condition:
85# name: propertiesMatch
86# properties:
87# - object: /xyz/openbmc_project/inventory/system/chassis
88# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
89# property:
90# name: WaterCooled
91# type: bool
92# value: false
Matt Spinler956a0a52017-09-28 12:44:06 -050093#sensor_trust_groups:
94# - class: NonzeroSpeed
Matthew Barthc63ef392018-02-16 13:06:36 -060095# group:
Matt Spinler956a0a52017-09-28 12:44:06 -050096# - name: fan0_0
Matthew Barthc63ef392018-02-16 13:06:36 -060097# in_trust: false
98# - name: fan0_1
Jolie Ku69f2f482020-10-21 09:59:43 +080099
100#Example entries for count method fan system:
101#fans:
102# - inventory: /system/chassis/motherboard/fan2
103# method: count
104# functional_delay: 5
105# deviation: 15
106# num_sensors_nonfunc_for_fan_nonfunc: 1
107# sensors:
108# - name: fan2
109# has_target: true
110# # Only create fan functional properties and monitor on air cooled
111# condition:
112# name: propertiesMatch
113# properties:
114# - object: /xyz/openbmc_project/inventory/system/chassis
115# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
116# property:
117# name: WaterCooled
118# type: bool
119# value: false