summaryrefslogtreecommitdiff
path: root/meta-ibm/meta-witherspoon/recipes-phosphor/fans
diff options
context:
space:
mode:
authorMatthew Barth <msbarth@us.ibm.com>2019-06-12 21:01:04 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2019-06-27 23:22:43 +0300
commitf14cc1b38d12e658dbbb4102452e11a1de9ab6d6 (patch)
treeec780c7957466b07da686eeb63d48f41669439f6 /meta-ibm/meta-witherspoon/recipes-phosphor/fans
parentee6efccdcb19807a141c5c2d93c3f6bfe8f8fc4c (diff)
downloadopenbmc-f14cc1b38d12e658dbbb4102452e11a1de9ab6d6.tar.xz
Put dbus monitor policies in one place
To better organize the policies(and the configurations) that are used by phosphor-dbus-monitor, all of them are now located under the `dbus` directory. This moves toward a more understandable and centralized scheme for the recipe(s) used to configure and build phosphor-dbus-monitor. (From meta-ibm rev: 4b80c4f2b3a62d8084fc43f95177e299d53387ae) Change-Id: Ie99c5dbe55c2295fc5cd7b5e7722cc10064e1b71 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/fan-policy.bb23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/air-cooled.yaml274
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/fan-errors.yaml671
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/water-cooled.yaml274
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml328
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/fan-errors.yaml676
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/water-cooled.yaml322
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy.bb17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml187
9 files changed, 0 insertions, 2772 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy.bb
deleted file mode 100644
index 12194640d..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Fan policy configurations for meta-witherspoon machines"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
-
-inherit allarch
-inherit phosphor-dbus-monitor
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-
-SRC_URI += "file://air-cooled.yaml"
-SRC_URI += "file://water-cooled.yaml"
-SRC_URI += "file://fan-errors.yaml"
-
-do_install() {
- install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml
- install -D ${WORKDIR}/water-cooled.yaml ${D}${config_dir}/water-cooled.yaml
- install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml
-}
-
-FILES_${PN} += "${config_dir}/air-cooled.yaml"
-FILES_${PN} += "${config_dir}/water-cooled.yaml"
-FILES_${PN} += "${config_dir}/fan-errors.yaml"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/air-cooled.yaml
deleted file mode 100644
index bfdcd1bb6..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/air-cooled.yaml
+++ /dev/null
@@ -1,274 +0,0 @@
-# Air cooled Swift fan policy for PDM.
-#
-# An air cooled Swift requires a minimum of three functional fan enclosures.
-# If the number of functional fan enclosures is below three, soft poweroff
-# the system.
-
-- name: fan enclosures
- description: >
- 'An air cooled Swift has four fan enclosures to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: chassis state
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis air cooled
- description: >
- 'Monitor the chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch fan present
- description: >
- 'Trigger logic on fan enclosure presence state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan present
- callback: check cooling type
-
-- name: watch fan functional
- description: >
- 'Trigger logic on fan enclosure functional state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan functional
- callback: check cooling type
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check cooling type
-
-- name: watch cooling type
- description: >
- 'Maintain a cache of the chassis cooling type.'
- class: watch
- watch: property
- paths: chassis
- properties: chassis air cooled
-
-- name: check cooling type
- description: >
- 'If this condition passes the chassis is air cooled.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: check power
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: check power
- description: >
- 'If the chassis has power, check fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify there are at least three functional fan enclosures,
- power off if not.'
- class: callback
- callback: group
- members:
- - check group presence
- - check group functional enclosures
-
-- name: check group presence
- description: >
- 'If this condition passes more than one fan has been unplugged
- for more than 25 seconds. Shut the system down. Count present
- fans rather than non-present fans since the latter would pass
- if the fan has not been created for some reason.
-
- For a more detailed definition of unplugged, consult the documentation
- of xyz.openbmc_project.Inventory.Item and/or the documentation
- of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan present
- defer: 25000000us
- callback: log and shutdown
- countop: '<'
- countbound: 3
- op: '=='
- bound: true
-
-- name: check group functional enclosures
- description: >
- 'If this condition passes more than one fan enclosure in the group has been
- marked as nonfunctional for five seconds. Shut the system down.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan functional
- defer: 5000000us
- callback: log and shutdown
- countop: '>'
- countbound: 1
- op: '=='
- bound: false
-
-- name: log and poweroff
- description: >
- 'Immediately poweroff, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - hard poweroff
- - log hard poweroff
- - create shutdown error
-
-- name: log and shutdown
- description: >
- 'Shut the system down, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - shutdown
- - log shutdown
- - create shutdown error
-
-- name: hard poweroff
- description: >
- 'Immediately power off the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-chassis-hard-poweroff@0.target
- type: string
- - value: replace
- type: string
-
-- name: shutdown
- description: >
- 'Shut down the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-host-shutdown@0.target
- type: string
- - value: replace
- type: string
-
-- name: log hard poweroff
- description: >
- 'Log a hard poweroff event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Immediate poweroff of system. There are not enough functional fans.
-
-- name: log shutdown
- description: >
- 'Log a shutdown event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Request shutdown of system. There are not enough functional fans.
-
-- name: create shutdown error
- description: >
- 'Create a Fan Shutdown Error log.'
- class: callback
- callback: elog
- paths: chassis state
- properties: chassis powered
- error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/fan-errors.yaml
deleted file mode 100644
index 794d91f17..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/fan-errors.yaml
+++ /dev/null
@@ -1,671 +0,0 @@
-# Swift fan error policy for PDM.
-#
-# * Create a NotPresent error if fan 0, 1, 2, or 3 is not present for more
-# than 20 seconds.
-# * Create a Nonfunctional error if fan 0, 1, 2, or 3 is not
-# functional for any amount of time.
-#
-# The system must be powered on in both of these cases.
-# Note: An error is created each time the chassis powers on.
-#
-# * Watch for fans to become both present and functional, and then resolve
-# their errors
-
-- name: fan0
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
-
-- name: fan1
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
-
-- name: fan2
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
-
-- name: fan3
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: chassis state
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: fan present and functional
- description: >
- 'Monitor the present and functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis air cooled
- description: >
- 'The chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check power
-
-- name: watch fan0 presence
- description: >
- 'Trigger logic on fan0 presence state changes.'
- class: watch
- watch: property
- paths: fan0
- properties: fan present
- callback: check power fan0 presence
-
-- name: watch fan0 functional
- description: >
- 'Trigger logic on fan0 functional state changes.'
- class: watch
- watch: property
- paths: fan0
- properties: fan functional
- callback: check power fan0 functional
-
-- name: watch fan1 presence
- description: >
- 'Trigger logic on fan1 presence state changes.'
- class: watch
- watch: property
- paths: fan1
- properties: fan present
- callback: check power fan1 presence
-
-- name: watch fan1 functional
- description: >
- 'Trigger logic on fan1 functional state changes.'
- class: watch
- watch: property
- paths: fan1
- properties: fan functional
- callback: check power fan1 functional
-
-- name: watch fan2 presence
- description: >
- 'Trigger logic on fan2 presence state changes.'
- class: watch
- watch: property
- paths: fan2
- properties: fan present
- callback: check power fan2 presence
-
-- name: watch fan2 functional
- description: >
- 'Trigger logic on fan2 functional state changes.'
- class: watch
- watch: property
- paths: fan2
- properties: fan functional
- callback: check power fan2 functional
-
-- name: watch fan3 presence
- description: >
- 'Trigger logic on fan3 presence state changes.'
- class: watch
- watch: property
- paths: fan3
- properties: fan present
- callback: check power fan3 presence
-
-- name: watch fan3 functional
- description: >
- 'Trigger logic on fan3 functional state changes.'
- class: watch
- watch: property
- paths: fan3
- properties: fan functional
- callback: check power fan3 functional
-
-- name: watch fan0 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan0
- properties: fan present and functional
- callback: resolve fan0 errors if present and functional
-
-- name: watch fan1 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan1
- properties: fan present and functional
- callback: resolve fan1 errors if present and functional
-
-- name: watch fan2 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan2
- properties: fan present and functional
- callback: resolve fan2 errors if present and functional
-
-- name: watch fan3 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan3
- properties: fan present and functional
- callback: resolve fan3 errors if present and functional
-
-- name: check power
- description: >
- 'If the chassis has power, check all fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan0 presence
- description: >
- 'If the chassis has power, check presence of fan0.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan0 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan0 functional
- description: >
- 'If the chassis has power, check functional of fan0.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan0 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan1 presence
- description: >
- 'If the chassis has power, check presence of fan1.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan1 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan1 functional
- description: >
- 'If the chassis has power, check functional of fan1.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan1 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan2 presence
- description: >
- 'If the chassis has power, check presence of fan2.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan2 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan2 functional
- description: >
- 'If the chassis has power, check functional of fan2.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan2 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan3 presence
- description: >
- 'If the chassis has power, check presence of fan3.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan3 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan3 functional
- description: >
- 'If the chassis has power, check functional of fan3.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan3 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify each of the 3 fans are present.'
- class: callback
- callback: group
- members:
- - check fan0 presence
- - check fan1 presence
- - check fan2 presence
- - check fan3 presence
- - check fan0 functional
- - check fan1 functional
- - check fan2 functional
- - check fan3 functional
-
-- name: check fan0 presence
- description: >
- 'If this condition passes fan0 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan0
- properties: fan present
- defer: 20000000us
- callback: notpresent fan0 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan0 functional
- description: >
- 'If this condition passes fan0 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan0
- properties: fan functional
- callback: nonfunctional fan0 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan1 presence
- description: >
- 'If this condition passes fan1 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan1
- properties: fan present
- defer: 20000000us
- callback: notpresent fan1 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan1 functional
- description: >
- 'If this condition passes fan1 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan1
- properties: fan functional
- callback: nonfunctional fan1 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan2 presence
- description: >
- 'If this condition passes fan2 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan2
- properties: fan present
- defer: 20000000us
- callback: notpresent fan2 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan2 functional
- description: >
- 'If this condition passes fan2 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan2
- properties: fan functional
- callback: nonfunctional fan2 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan3 presence
- description: >
- 'If this condition passes fan3 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan3
- properties: fan present
- defer: 20000000us
- callback: notpresent fan3 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan3 functional
- description: >
- 'If this condition passes fan3 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan3
- properties: fan functional
- callback: nonfunctional fan3 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check cooling type nonfunctional error
- description: >
- 'If this condition passes the chassis is air cooled and will create a
- nonfunctional error for fan 1.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: nonfunctional fan1 error
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: check cooling type notpresent error
- description: >
- 'If this condition passes the chassis is air cooled and will create a
- notpresent error for fan 1.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: notpresent fan1 error
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: notpresent fan0 error
- class: callback
- callback: elog
- paths: fan0
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- type: string
-
-- name: nonfunctional fan0 error
- class: callback
- callback: elog
- paths: fan0
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- type: string
-
-- name: notpresent fan1 error
- class: callback
- callback: elog
- paths: fan1
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- type: string
-
-- name: nonfunctional fan1 error
- class: callback
- callback: elog
- paths: fan1
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- type: string
-
-- name: notpresent fan2 error
- class: callback
- callback: elog
- paths: fan2
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- type: string
-
-- name: nonfunctional fan2 error
- class: callback
- callback: elog
- paths: fan2
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- type: string
-
-- name: notpresent fan3 error
- class: callback
- callback: elog
- paths: fan3
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
- type: string
-
-- name: nonfunctional fan3 error
- class: callback
- callback: elog
- paths: fan3
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
- type: string
-
-- name: resolve fan0 errors if present and functional
- description: >
- 'If fan0 is present and functional, call the resolve fan0 errors callback.'
- class: condition
- condition: count
- paths: fan0
- properties: fan present and functional
- callback: resolve fan0 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-#Go ahead and do this on water cooled as well
-- name: resolve fan1 errors if present and functional
- description: >
- 'If fan1 is present and functional, call the resolve fan1 errors callback.'
- class: condition
- condition: count
- paths: fan1
- properties: fan present and functional
- callback: resolve fan1 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan2 errors if present and functional
- description: >
- 'If fan2 is present and functional, call the resolve fan2 errors callback.'
- class: condition
- condition: count
- paths: fan2
- properties: fan present and functional
- callback: resolve fan2 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan3 errors if present and functional
- description: >
- 'If fan3 is present and functional, call the resolve fan3 errors callback.'
- class: condition
- condition: count
- paths: fan3
- properties: fan present and functional
- callback: resolve fan3 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan0 errors
- class: callback
- callback: resolve callout
- paths: fan0
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
-
-- name: resolve fan1 errors
- class: callback
- callback: resolve callout
- paths: fan1
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
-
-- name: resolve fan2 errors
- class: callback
- callback: resolve callout
- paths: fan2
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
-
-- name: resolve fan3 errors
- class: callback
- callback: resolve callout
- paths: fan3
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/water-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/water-cooled.yaml
deleted file mode 100644
index 661021a9b..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/swift/water-cooled.yaml
+++ /dev/null
@@ -1,274 +0,0 @@
-# Water cooled Swift fan policy for PDM.
-#
-# A water cooled Swift requires a minimum of three functional fan
-# enclosures. If the number of functional fan enclosures is below three,
-# soft poweroff the system.
-
-- name: fan enclosures
- description: >
- 'A water cooled Swift has four fan enclosures to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: chassis state
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Swift has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis water cooled
- description: >
- 'Monitor the chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch fan present
- description: >
- 'Trigger logic on fan enclosure presence state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan present
- callback: check cooling type
-
-- name: watch fan functional
- description: >
- 'Trigger logic on fan enclosure functional state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan functional
- callback: check cooling type
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check cooling type
-
-- name: watch cooling type
- description: >
- 'Maintain a cache of the chassis cooling type.'
- class: watch
- watch: property
- paths: chassis
- properties: chassis water cooled
-
-- name: check cooling type
- description: >
- 'If this condition passes the chassis is water cooled.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis water cooled
- callback: check power
- countop: '=='
- countbound: 1
- op: '=='
- bound: true
-
-- name: check power
- description: >
- 'If the chassis has power, check fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify there are at least three functional fan enclosures,
- power off if not.'
- class: callback
- callback: group
- members:
- - check group presence
- - check group functional enclosures
-
-- name: check group presence
- description: >
- 'If this condition passes more than one fan has been unplugged
- for more than 25 seconds. Shut the system down. Count present
- fans rather than non-present fans since the latter would pass
- if the fan has not been created for some reason.
-
- For a more detailed definition of unplugged, consult the documentation
- of xyz.openbmc_project.Inventory.Item and/or the documentation
- of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan present
- defer: 25000000us
- callback: log and shutdown
- countop: '<'
- countbound: 3
- op: '=='
- bound: true
-
-- name: check group functional enclosures
- description: >
- 'If this condition passes more than one fan enclosure in the group has been
- marked as nonfunctional for five seconds. Shut the system down.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan functional
- defer: 5000000us
- callback: log and shutdown
- countop: '>'
- countbound: 1
- op: '=='
- bound: false
-
-- name: log and poweroff
- description: >
- 'Immediately poweroff, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - hard poweroff
- - log hard poweroff
- - create shutdown error
-
-- name: log and shutdown
- description: >
- 'Shut the system down, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - shutdown
- - log shutdown
- - create shutdown error
-
-- name: hard poweroff
- description: >
- 'Immediately power off the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-chassis-hard-poweroff@0.target
- type: string
- - value: replace
- type: string
-
-- name: shutdown
- description: >
- 'Shut down the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-host-shutdown@0.target
- type: string
- - value: replace
- type: string
-
-- name: log hard poweroff
- description: >
- 'Log a hard poweroff event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Immediate poweroff of system. There are not enough functional fans.
-
-- name: log shutdown
- description: >
- 'Log a shutdown event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Request shutdown of system. There are not enough functional fans.
-
-- name: create shutdown error
- description: >
- 'Create a Fan Shutdown Error log.'
- class: callback
- callback: elog
- paths: chassis state
- properties: chassis powered
- error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml
deleted file mode 100644
index d60aa9179..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml
+++ /dev/null
@@ -1,328 +0,0 @@
-# Air cooled Witherspoon fan policy for PDM.
-#
-# An air cooled Witherspoon requires a minimum of three functional fans
-# enclosures or six functional fan rotors across all enclosures.
-# If the number of functional fan enclosures is below three, soft poweroff
-# the system, whereas if the number of fan rotors drop below six, an
-# immediate hard poweroff of the system occurs.
-
-- name: fan enclosures
- description: >
- 'An air cooled Witherspoon has four fan enclosures to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: fan rotors
- description: >
- 'An air cooled Witherspoon has eight fan rotors to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1
-
-- name: chassis state
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis air cooled
- description: >
- 'Monitor the chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch fan present
- description: >
- 'Trigger logic on fan enclosure presence state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan present
- callback: check cooling type
-
-- name: watch fan functional
- description: >
- 'Trigger logic on fan enclosure functional state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan functional
- callback: check cooling type
-
-- name: watch fan rotor functional
- description: >
- 'Trigger logic on fan rotor functional state changes.'
- class: watch
- watch: property
- paths: fan rotors
- properties: fan functional
- callback: check cooling type
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check cooling type
-
-- name: watch cooling type
- description: >
- 'Maintain a cache of the chassis cooling type.'
- class: watch
- watch: property
- paths: chassis
- properties: chassis air cooled
-
-- name: check cooling type
- description: >
- 'If this condition passes the chassis is air cooled.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: check power
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: check power
- description: >
- 'If the chassis has power, check fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify there are at least three functional fan enclosures and at least
- six functional fan rotors, power off if not.'
- class: callback
- callback: group
- members:
- - check group presence
- - check group functional enclosures
- - check group functional rotors
-
-- name: check group presence
- description: >
- 'If this condition passes more than one fan has been unplugged
- for more than 25 seconds. Shut the system down. Count present
- fans rather than non-present fans since the latter would pass
- if the fan has not been created for some reason.
-
- For a more detailed definition of unplugged, consult the documentation
- of xyz.openbmc_project.Inventory.Item and/or the documentation
- of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan present
- defer: 25000000us
- callback: log and shutdown
- countop: '<'
- countbound: 3
- op: '=='
- bound: true
-
-- name: check group functional enclosures
- description: >
- 'If this condition passes more than one fan enclosure in the group has been
- marked as nonfunctional for five seconds. Shut the system down.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan functional
- defer: 5000000us
- callback: log and shutdown
- countop: '>'
- countbound: 1
- op: '=='
- bound: false
-
-- name: check group functional rotors
- description: >
- 'If this condition passes more than two fan rotors in the group have been
- marked as nonfunctional for five seconds. Immediately power off.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan rotors
- properties: fan functional
- defer: 5000000us
- callback: log and poweroff
- countop: '>'
- countbound: 2
- op: '=='
- bound: false
-
-- name: log and poweroff
- description: >
- 'Immediately poweroff, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - hard poweroff
- - log hard poweroff
- - create shutdown error
-
-- name: log and shutdown
- description: >
- 'Shut the system down, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - shutdown
- - log shutdown
- - create shutdown error
-
-- name: hard poweroff
- description: >
- 'Immediately power off the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-chassis-hard-poweroff@0.target
- type: string
- - value: replace
- type: string
-
-- name: shutdown
- description: >
- 'Shut down the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-host-shutdown@0.target
- type: string
- - value: replace
- type: string
-
-- name: log hard poweroff
- description: >
- 'Log a hard poweroff event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Immediate poweroff of system. There are not enough functional fans.
-
-- name: log shutdown
- description: >
- 'Log a shutdown event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Request shutdown of system. There are not enough functional fans.
-
-- name: create shutdown error
- description: >
- 'Create a Fan Shutdown Error log.'
- class: callback
- callback: elog
- paths: chassis state
- properties: chassis powered
- error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/fan-errors.yaml
deleted file mode 100644
index 0c14627d2..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/fan-errors.yaml
+++ /dev/null
@@ -1,676 +0,0 @@
-# Witherspoon fan error policy for PDM.
-#
-# * Create a NotPresent error if fan 0, 1, 2, or 3 is not present for more
-# than 20 seconds.
-# * Create a Nonfunctional error if fan 0, 1, 2, or 3 is not
-# functional for any amount of time.
-#
-# The system must be powered on in both of these cases.
-# If a water cooled system, don't create errors for fan 1.
-# Note: An error is created each time the chassis powers on.
-#
-# * Watch for fans to become both present and functional, and then resolve
-# their errors
-
-- name: fan0
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
-
-- name: fan1
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
-
-- name: fan2
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
-
-- name: fan3
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: chassis state
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: fan present and functional
- description: >
- 'Monitor the present and functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis air cooled
- description: >
- 'The chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check power
-
-- name: watch fan0 presence
- description: >
- 'Trigger logic on fan0 presence state changes.'
- class: watch
- watch: property
- paths: fan0
- properties: fan present
- callback: check power fan0 presence
-
-- name: watch fan0 functional
- description: >
- 'Trigger logic on fan0 functional state changes.'
- class: watch
- watch: property
- paths: fan0
- properties: fan functional
- callback: check power fan0 functional
-
-- name: watch fan1 presence
- description: >
- 'Trigger logic on fan1 presence state changes.'
- class: watch
- watch: property
- paths: fan1
- properties: fan present
- callback: check power fan1 presence
-
-- name: watch fan1 functional
- description: >
- 'Trigger logic on fan1 functional state changes.'
- class: watch
- watch: property
- paths: fan1
- properties: fan functional
- callback: check power fan1 functional
-
-- name: watch fan2 presence
- description: >
- 'Trigger logic on fan2 presence state changes.'
- class: watch
- watch: property
- paths: fan2
- properties: fan present
- callback: check power fan2 presence
-
-- name: watch fan2 functional
- description: >
- 'Trigger logic on fan2 functional state changes.'
- class: watch
- watch: property
- paths: fan2
- properties: fan functional
- callback: check power fan2 functional
-
-- name: watch fan3 presence
- description: >
- 'Trigger logic on fan3 presence state changes.'
- class: watch
- watch: property
- paths: fan3
- properties: fan present
- callback: check power fan3 presence
-
-- name: watch fan3 functional
- description: >
- 'Trigger logic on fan3 functional state changes.'
- class: watch
- watch: property
- paths: fan3
- properties: fan functional
- callback: check power fan3 functional
-
-- name: watch fan0 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan0
- properties: fan present and functional
- callback: resolve fan0 errors if present and functional
-
-- name: watch fan1 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan1
- properties: fan present and functional
- callback: resolve fan1 errors if present and functional
-
-- name: watch fan2 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan2
- properties: fan present and functional
- callback: resolve fan2 errors if present and functional
-
-- name: watch fan3 present and functional for resolving error logs
- description: >
- 'On fan present or functional state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: fan3
- properties: fan present and functional
- callback: resolve fan3 errors if present and functional
-
-- name: check power
- description: >
- 'If the chassis has power, check all fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan0 presence
- description: >
- 'If the chassis has power, check presence of fan0.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan0 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan0 functional
- description: >
- 'If the chassis has power, check functional of fan0.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan0 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan1 presence
- description: >
- 'If the chassis has power, check presence of fan1.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan1 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan1 functional
- description: >
- 'If the chassis has power, check functional of fan1.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan1 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan2 presence
- description: >
- 'If the chassis has power, check presence of fan2.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan2 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan2 functional
- description: >
- 'If the chassis has power, check functional of fan2.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan2 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan3 presence
- description: >
- 'If the chassis has power, check presence of fan3.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan3 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan3 functional
- description: >
- 'If the chassis has power, check functional of fan3.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan3 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify each of the 3 fans are present.'
- class: callback
- callback: group
- members:
- - check fan0 presence
- - check fan1 presence
- - check fan2 presence
- - check fan3 presence
- - check fan0 functional
- - check fan1 functional
- - check fan2 functional
- - check fan3 functional
-
-- name: check fan0 presence
- description: >
- 'If this condition passes fan0 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan0
- properties: fan present
- defer: 20000000us
- callback: notpresent fan0 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan0 functional
- description: >
- 'If this condition passes fan0 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan0
- properties: fan functional
- callback: nonfunctional fan0 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan1 presence
- description: >
- 'If this condition passes fan1 has been unplugged for more than 20 seconds.
- Fan 1 is not in a water cooled Witherspoon, so check for cooling type
- before creating an error.'
- class: condition
- condition: count
- paths: fan1
- properties: fan present
- defer: 20000000us
- callback: check cooling type notpresent error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan1 functional
- description: >
- 'If this condition passes fan1 has been marked as nonfunctional.
- Fan 1 is not in a water cooled Witherspoon, so check for cooling type
- before creating an error.'
- class: condition
- condition: count
- paths: fan1
- properties: fan functional
- callback: check cooling type nonfunctional error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan2 presence
- description: >
- 'If this condition passes fan2 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan2
- properties: fan present
- defer: 20000000us
- callback: notpresent fan2 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan2 functional
- description: >
- 'If this condition passes fan2 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan2
- properties: fan functional
- callback: nonfunctional fan2 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan3 presence
- description: >
- 'If this condition passes fan3 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan3
- properties: fan present
- defer: 20000000us
- callback: notpresent fan3 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan3 functional
- description: >
- 'If this condition passes fan3 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan3
- properties: fan functional
- callback: nonfunctional fan3 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check cooling type nonfunctional error
- description: >
- 'If this condition passes the chassis is air cooled and will create a
- nonfunctional error for fan 1.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: nonfunctional fan1 error
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: check cooling type notpresent error
- description: >
- 'If this condition passes the chassis is air cooled and will create a
- notpresent error for fan 1.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis air cooled
- callback: notpresent fan1 error
- countop: '=='
- countbound: 0
- op: '=='
- bound: true
-
-- name: notpresent fan0 error
- class: callback
- callback: elog
- paths: fan0
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- type: string
-
-- name: nonfunctional fan0 error
- class: callback
- callback: elog
- paths: fan0
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- type: string
-
-- name: notpresent fan1 error
- class: callback
- callback: elog
- paths: fan1
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- type: string
-
-- name: nonfunctional fan1 error
- class: callback
- callback: elog
- paths: fan1
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
- type: string
-
-- name: notpresent fan2 error
- class: callback
- callback: elog
- paths: fan2
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- type: string
-
-- name: nonfunctional fan2 error
- class: callback
- callback: elog
- paths: fan2
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- type: string
-
-- name: notpresent fan3 error
- class: callback
- callback: elog
- paths: fan3
- properties: fan present
- error: xyz::openbmc_project::Inventory::Error::NotPresent
- metadata:
- - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
- type: string
-
-- name: nonfunctional fan3 error
- class: callback
- callback: elog
- paths: fan3
- properties: fan functional
- error: xyz::openbmc_project::Inventory::Error::Nonfunctional
- metadata:
- - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
- value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
- type: string
-
-- name: resolve fan0 errors if present and functional
- description: >
- 'If fan0 is present and functional, call the resolve fan0 errors callback.'
- class: condition
- condition: count
- paths: fan0
- properties: fan present and functional
- callback: resolve fan0 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-#Go ahead and do this on water cooled as well
-- name: resolve fan1 errors if present and functional
- description: >
- 'If fan1 is present and functional, call the resolve fan1 errors callback.'
- class: condition
- condition: count
- paths: fan1
- properties: fan present and functional
- callback: resolve fan1 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan2 errors if present and functional
- description: >
- 'If fan2 is present and functional, call the resolve fan2 errors callback.'
- class: condition
- condition: count
- paths: fan2
- properties: fan present and functional
- callback: resolve fan2 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan3 errors if present and functional
- description: >
- 'If fan3 is present and functional, call the resolve fan3 errors callback.'
- class: condition
- condition: count
- paths: fan3
- properties: fan present and functional
- callback: resolve fan3 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan0 errors
- class: callback
- callback: resolve callout
- paths: fan0
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
-
-- name: resolve fan1 errors
- class: callback
- callback: resolve callout
- paths: fan1
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
-
-- name: resolve fan2 errors
- class: callback
- callback: resolve callout
- paths: fan2
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
-
-- name: resolve fan3 errors
- class: callback
- callback: resolve callout
- paths: fan3
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/water-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/water-cooled.yaml
deleted file mode 100644
index a279cfefa..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/water-cooled.yaml
+++ /dev/null
@@ -1,322 +0,0 @@
-# Water cooled Witherspoon fan policy for PDM.
-#
-# A water cooled Witherspoon requires a minimum of two functional fan
-# enclosures or four functional fan rotors across all enclosures.
-# If the number of functional fan enclosures is below two, soft poweroff
-# the system, whereas if the number of fan rotors drop below four, an
-# immediate hard poweroff of the system occurs.
-
-- name: fan enclosures
- description: >
- 'A water cooled Witherspoon has three fan enclosures to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: fan rotors
- description: >
- 'A water cooled Witherspoon has six fan rotors to monitor.'
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1
-
-- name: chassis state
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: chassis
- description: >
- 'Witherspoon has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSIS
- path: /xyz/openbmc_project/inventory/system/chassis
-
-- name: fan present
- description: >
- 'Monitor the presence state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- name: fan functional
- description: >
- 'Monitor the functional state of each fan.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
- meta: FUNCTIONAL
- property: Functional
-
-- name: chassis powered
- description: >
- 'Monitor the chassis power state.'
- class: group
- group: property
- type: string
- members:
- - interface: xyz.openbmc_project.State.Chassis
- meta: CHASSIS_STATE
- property: CurrentPowerState
-
-- name: chassis water cooled
- description: >
- 'Monitor the chassis cooling type.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
- meta: COOLING_TYPE
- property: WaterCooled
-
-- name: watch fan present
- description: >
- 'Trigger logic on fan enclosure presence state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan present
- callback: check cooling type
-
-- name: watch fan functional
- description: >
- 'Trigger logic on fan enclosure functional state changes.'
- class: watch
- watch: property
- paths: fan enclosures
- properties: fan functional
- callback: check cooling type
-
-- name: watch fan rotor functional
- description: >
- 'Trigger logic on fan rotor functional state changes.'
- class: watch
- watch: property
- paths: fan rotors
- properties: fan functional
- callback: check cooling type
-
-- name: watch chassis state
- description: >
- 'Trigger logic on chassis power state changes.'
- class: watch
- watch: property
- paths: chassis state
- properties: chassis powered
- callback: check cooling type
-
-- name: watch cooling type
- description: >
- 'Maintain a cache of the chassis cooling type.'
- class: watch
- watch: property
- paths: chassis
- properties: chassis water cooled
-
-- name: check cooling type
- description: >
- 'If this condition passes the chassis is water cooled.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis water cooled
- callback: check power
- countop: '=='
- countbound: 1
- op: '=='
- bound: true
-
-- name: check power
- description: >
- 'If the chassis has power, check fans.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fans
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify there are at least two functional fan enclosures and at least
- four functional fan rotors, power off if not.'
- class: callback
- callback: group
- members:
- - check group presence
- - check group functional enclosures
- - check group functional rotors
-
-- name: check group presence
- description: >
- 'If this condition passes more than one fan has been unplugged
- for more than 25 seconds. Shut the system down. Count present
- fans rather than non-present fans since the latter would pass
- if the fan has not been created for some reason.
-
- For a more detailed definition of unplugged, consult the documentation
- of xyz.openbmc_project.Inventory.Item and/or the documentation
- of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan present
- defer: 25000000us
- callback: log and shutdown
- countop: '<'
- countbound: 2
- op: '=='
- bound: true
-
-- name: check group functional enclosures
- description: >
- 'If this condition passes more than one fan enclosure in the group has been
- marked as nonfunctional for five seconds. Shut the system down.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan enclosures
- properties: fan functional
- defer: 5000000us
- callback: log and shutdown
- countop: '>'
- countbound: 1
- op: '=='
- bound: false
-
-- name: check group functional rotors
- description: >
- 'If this condition passes more than two fan rotors in the group have been
- marked as nonfunctional for five seconds. Immediately power off.
-
- For a more detailed definition of nonfunctional, consult the documentation
- of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
- documentation of the fan inventory object implementation.'
- class: condition
- condition: count
- paths: fan rotors
- properties: fan functional
- defer: 5000000us
- callback: log and poweroff
- countop: '>'
- countbound: 2
- op: '=='
- bound: false
-
-- name: log and poweroff
- description: >
- 'Immediately poweroff, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - hard poweroff
- - log hard poweroff
- - create shutdown error
-
-- name: log and shutdown
- description: >
- 'Shut the system down, log an event in the journal, and create an
- error log.'
- class: callback
- callback: group
- members:
- - shutdown
- - log shutdown
- - create shutdown error
-
-- name: hard poweroff
- description: >
- 'Immediately power off the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-chassis-hard-poweroff@0.target
- type: string
- - value: replace
- type: string
-
-- name: shutdown
- description: >
- 'Shut down the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-host-shutdown@0.target
- type: string
- - value: replace
- type: string
-
-- name: log hard poweroff
- description: >
- 'Log a hard poweroff event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Immediate poweroff of system. There are not enough functional fans.
-
-- name: log shutdown
- description: >
- 'Log a shutdown event to the systemd journal.'
- class: callback
- callback: journal
- paths: chassis state
- properties: chassis powered
- severity: ERR
- message: Request shutdown of system. There are not enough functional fans.
-
-- name: create shutdown error
- description: >
- 'Create a Fan Shutdown Error log.'
- class: callback
- callback: elog
- paths: chassis state
- properties: chassis powered
- error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy.bb
deleted file mode 100644
index 9fb7d252b..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Thermal policy configuration for meta-witherspoon machines"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
-
-inherit allarch
-inherit phosphor-dbus-monitor
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-
-SRC_URI += "file://thermal-policy.yaml"
-
-do_install() {
- install -D ${WORKDIR}/thermal-policy.yaml ${D}${config_dir}/thermal-policy.yaml
-}
-
-FILES_${PN} += "${config_dir}/thermal-policy.yaml"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml
deleted file mode 100644
index 7c48509c5..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-# Machine thermal policy for PDM.
-#
-# Shut down the system if more than three cores
-# have a temperature greater than 115 degrees Celcius.
-
-
-- name: core sensors
- description: >
- 'The machine has two processor chips with 24 cores each.'
- class: group
- group: path
- members:
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
-
-- name: core temp
- description: >
- 'Monitor the temperature of each core.'
- class: group
- group: property
- type: int64
- members:
- - interface: xyz.openbmc_project.Sensor.Value
- meta: TEMP
- property: Value
-
-- name: watch core temps
- description: >
- 'Trigger logic on core temp changes.'
- class: watch
- watch: property
- paths: core sensors
- properties: core temp
- callback: check temps
-
-- name: check temps
- description: >
- 'If this condition passes at least three cores are running
- too hot. Shut the system down.'
- class: condition
- condition: count
- paths: core sensors
- properties: core temp
- callback: log and shutdown
- countop: '>='
- countbound: 3
- op: '>='
- bound: 115000
- oneshot: true
-
-- name: log and shutdown
- description: >
- 'Shut the system down and log an event.'
- class: callback
- callback: group
- members:
- - shutdown
- - create criticalhigh error
- - create shutdown error
-
-- name: shutdown
- description: >
- 'Shut down the system.'
- class: callback
- callback: method
- service: org.freedesktop.systemd1
- path: /org/freedesktop/systemd1
- interface: org.freedesktop.systemd1.Manager
- method: StartUnit
- args:
- - value: obmc-chassis-hard-poweroff@0.target
- type: string
- - value: replace
- type: string
-
-- name: create criticalhigh error
- description: >
- 'Create a CriticalHigh Error log.'
- class: callback
- callback: elog_with_metadata
- paths: core sensors
- properties: core temp
- error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
- metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA
-
-- name: create shutdown error
- description: >
- 'Create a SystemShutdown Error log.'
- class: callback
- callback: elog
- paths: core sensors
- properties: core temp
- error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor