summaryrefslogtreecommitdiff
path: root/meta-ibm/meta-witherspoon/recipes-phosphor/dbus
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2020-04-22 21:06:02 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-04-27 19:52:12 +0300
commite161514219e0dc8a957dabbb8529fb9fcac4e115 (patch)
tree5de46006517d690f5793eec41281d60611228ecd /meta-ibm/meta-witherspoon/recipes-phosphor/dbus
parenta3f54c8b8cbd50bc86efdc52cfb7d348d8c19d21 (diff)
downloadopenbmc-e161514219e0dc8a957dabbb8529fb9fcac4e115.tar.xz
meta-ibm: move all meta-witherspoon metadata
The metadata common to all IBM systems is confusingly split between meta-ibm and meta-witherspoon. Move everything to meta-ibm. The meta-ibm README is re-written to more accurately reflect the scope of the layer. Allow the configuration samples (bblayers.conf.sample, local.conf.sample) to be sourced from either meta-ibm or meta-witherspoon until such a time that any workflows and tooling have had the opportunity to move to meta-ibm. (From meta-ibm rev: 6e05ef2e90b214eaf4e43ee7027bbbb1d8d09442) Change-Id: I3ec890d5300f9649c974ea6b9dca93a2e8a889ab Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/dbus')
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy/config.yaml133
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb28
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml339
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml905
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/air-cooled.yaml274
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/fan-errors.yaml671
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/water-cooled.yaml274
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/air-cooled.yaml328
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/fan-errors.yaml676
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/water-cooled.yaml322
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend8
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml215
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml187
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml345
19 files changed, 0 insertions, 4759 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb
deleted file mode 100644
index 52cb31313..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Event policy configuration for meta-witherspoon machines"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit allarch
-inherit phosphor-dbus-monitor
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-
-SRC_URI += "file://config.yaml"
-
-do_install() {
- install -D ${WORKDIR}/config.yaml ${D}${config_dir}/config.yaml
-}
-
-FILES_${PN} += "${config_dir}/config.yaml"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy/config.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy/config.yaml
deleted file mode 100644
index 5c62d45a3..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/events-policy/config.yaml
+++ /dev/null
@@ -1,133 +0,0 @@
-- name: occpath group
- class: group
- group: path
- members:
- - meta: PATH
- path: /org/open_power/control/occ0
-
-- name: occproctemp property
- class: group
- group: property
- type: boolean
- members:
- - interface: org.open_power.OCC.Status
- meta: PROPERTY
- property: ThrottleProcTemp
-
-- name: occprocpower property
- class: group
- group: property
- type: boolean
- members:
- - interface: org.open_power.OCC.Status
- meta: PROPERTY
- property: ThrottleProcPower
-
-- name: occmemtemp property
- class: group
- group: property
- type: boolean
- members:
- - interface: org.open_power.OCC.Status
- meta: PROPERTY
- property: ThrottleMemTemp
-
-- name: watch occproctemp
- class: watch
- watch: property
- paths: occpath group
- properties: occproctemp property
- callback: check occproctemp
-
-- name: watch occprocpower
- class: watch
- watch: property
- paths: occpath group
- properties: occprocpower property
- callback: check occprocpower
-
-- name: watch occmemtemp
- class: watch
- watch: property
- paths: occpath group
- properties: occmemtemp property
- callback: check occmemtemp
-
-- name: check occproctemp
- class: condition
- condition: count
- paths: occpath group
- properties: occproctemp property
- defer: 1000us
- callback: create occproctemp event
- countop: '=='
- countbound: 1
- op: '=='
- bound: true
-
-- name: check occprocpower
- class: condition
- condition: count
- paths: occpath group
- properties: occprocpower property
- defer: 1000us
- callback: create occprocpower event
- countop: '=='
- countbound: 1
- op: '=='
- bound: true
-
-- name: check occmemtemp
- class: condition
- condition: count
- paths: occpath group
- properties: occmemtemp property
- defer: 1000us
- callback: create occmemtemp event
- countop: '=='
- countbound: 1
- op: '=='
- bound: true
-
-- name: create occproctemp event
- class: callback
- callback: event
- paths: occpath group
- properties: occproctemp property
- eventName: occ
- eventMessage: "Processor throttled due to an over temperature condition."
-
-- name: create occprocpower event
- class: callback
- callback: event
- paths: occpath group
- properties: occprocpower property
- eventName: occ
- eventMessage: "Processor throttled due to reaching the power cap limit."
-
-- name: create occmemtemp event
- class: callback
- callback: event
- paths: occpath group
- properties: occmemtemp property
- eventName: occ
- eventMessage: "Memory throttled due to an over temperature condition."
-
-- name: errorlog path group
- class: group
- group: path
- members:
- - meta: PATH
- path: /xyz/openbmc_project/logging
-
-- name: pathwatch errorlog
- class: pathwatch
- pathwatch: path
- paths: errorlog path group
- pathcallback: create errorlog trap
-
-- name: create errorlog trap
- class: pathcallback
- pathcallback: eventpath
- paths: errorlog path group
- eventType: ErrorTrap
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb
deleted file mode 100644
index f8355053d..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Fan policy configurations for meta-witherspoon machines"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit allarch
-inherit phosphor-dbus-monitor
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-
-SRC_URI += "file://air-cooled.yaml"
-SRC_URI_append_ibm-ac-server = " file://water-cooled.yaml"
-SRC_URI += "file://fan-errors.yaml"
-
-do_install_append_ibm-ac-server() {
- 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
-}
-
-do_install_append_mihawk() {
- install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml
- install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml
-}
-
-FILES_${PN} += "${config_dir}/air-cooled.yaml"
-FILES_${PN}_append_ibm-ac-server = " ${config_dir}/water-cooled.yaml"
-FILES_${PN} += "${config_dir}/fan-errors.yaml"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml
deleted file mode 100644
index 52232e3f0..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml
+++ /dev/null
@@ -1,339 +0,0 @@
-# Air cooled mihawk fan policy for PDM.
-#
-# An air cooled mihawk 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 mihawk has 6 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
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
-
-- 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
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4/fan4_1
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_0
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5/fan5_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: 6
- 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 25 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: 25000000us
- 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 25 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: 25000000us
- callback: log and poweroff
- 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/dbus/fan-policy/mihawk/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml
deleted file mode 100644
index 65cfbeb25..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml
+++ /dev/null
@@ -1,905 +0,0 @@
-# Witherspoon fan error policy for PDM.
-#
-# * Create a NotPresent error if fan 0, 1, 2, 3, 4, or 5 is not present for more
-# than 20 seconds.
-# * Create a Nonfunctional error if fan 0, 1, 2, 3, 4, or 5 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: fan4
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
-
-- name: fan5
- class: group
- group: path
- members:
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
-
-
-- 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 fan4 presence
- description: >
- 'Trigger logic on fan4 presence state changes.'
- class: watch
- watch: property
- paths: fan4
- properties: fan present
- callback: check power fan4 presence
-
-- name: watch fan4 functional
- description: >
- 'Trigger logic on fan4 functional state changes.'
- class: watch
- watch: property
- paths: fan4
- properties: fan functional
- callback: check power fan4 functional
-
-- name: watch fan5 presence
- description: >
- 'Trigger logic on fan5 presence state changes.'
- class: watch
- watch: property
- paths: fan5
- properties: fan present
- callback: check power fan5 presence
-
-- name: watch fan5 functional
- description: >
- 'Trigger logic on fan5 functional state changes.'
- class: watch
- watch: property
- paths: fan5
- properties: fan functional
- callback: check power fan5 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: watch fan4 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: fan4
- properties: fan present and functional
- callback: resolve fan4 errors if present and functional
-
-- name: watch fan5 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: fan5
- properties: fan present and functional
- callback: resolve fan5 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 power fan4 presence
- description: >
- 'If the chassis has power, check presence of fan4.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan4 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan4 functional
- description: >
- 'If the chassis has power, check functional of fan4.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan4 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan5 presence
- description: >
- 'If the chassis has power, check presence of fan5.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan5 presence
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power fan5 functional
- description: >
- 'If the chassis has power, check functional of fan5.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check fan5 functional
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check fans
- description: >
- 'Verify each of the 12 fans are present.'
- class: callback
- callback: group
- members:
- - check fan0 presence
- - check fan1 presence
- - check fan2 presence
- - check fan3 presence
- - check fan4 presence
- - check fan5 presence
- - check fan0 functional
- - check fan1 functional
- - check fan2 functional
- - check fan3 functional
- - check fan4 functional
- - check fan5 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 fan4 presence
- description: >
- 'If this condition passes fan4 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan4
- properties: fan present
- defer: 20000000us
- callback: notpresent fan4 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan4 functional
- description: >
- 'If this condition passes fan4 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan4
- properties: fan functional
- callback: nonfunctional fan4 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- name: check fan5 presence
- description: >
- 'If this condition passes fan5 has been unplugged for more than 20 seconds.'
- class: condition
- condition: count
- paths: fan5
- properties: fan present
- defer: 20000000us
- callback: notpresent fan5 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check fan5 functional
- description: >
- 'If this condition passes fan5 has been marked as nonfunctional.'
- class: condition
- condition: count
- paths: fan5
- properties: fan functional
- callback: nonfunctional fan5 error
- countop: '>'
- countbound: 0
- op: '=='
- bound: false
-
-- 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: notpresent fan4 error
- class: callback
- callback: elog
- paths: fan4
- 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/fan4
- type: string
-
-- name: nonfunctional fan4 error
- class: callback
- callback: elog
- paths: fan4
- 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/fan4
- type: string
-
-- name: notpresent fan5 error
- class: callback
- callback: elog
- paths: fan5
- 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/fan5
- type: string
-
-- name: nonfunctional fan5 error
- class: callback
- callback: elog
- paths: fan5
- 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/fan5
- 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
-
-- 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 fan4 errors if present and functional
- description: >
- 'If fan4 is present and functional, call the resolve fan4 errors callback.'
- class: condition
- condition: count
- paths: fan4
- properties: fan present and functional
- callback: resolve fan4 errors
- countop: '=='
- countbound: 2
- op: '=='
- bound: true
-
-- name: resolve fan5 errors if present and functional
- description: >
- 'If fan5 is present and functional, call the resolve fan5 errors callback.'
- class: condition
- condition: count
- paths: fan5
- properties: fan present and functional
- callback: resolve fan5 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
-
-- name: resolve fan4 errors
- class: callback
- callback: resolve callout
- paths: fan4
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
-
-- name: resolve fan5 errors
- class: callback
- callback: resolve callout
- paths: fan5
- properties: fan present and functional
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/air-cooled.yaml
deleted file mode 100644
index bfdcd1bb6..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/fan-policy/swift/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/fan-errors.yaml
deleted file mode 100644
index 794d91f17..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/fan-policy/swift/water-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/swift/water-cooled.yaml
deleted file mode 100644
index 661021a9b..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/fan-policy/witherspoon/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/air-cooled.yaml
deleted file mode 100644
index d60aa9179..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/fan-policy/witherspoon/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/fan-errors.yaml
deleted file mode 100644
index 0c14627d2..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/fan-policy/witherspoon/water-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/witherspoon/water-cooled.yaml
deleted file mode 100644
index a279cfefa..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
deleted file mode 100644
index bfc789788..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_OECONF_append_rainier = " --enable-ibm-dbus-interfaces"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend
deleted file mode 100644
index 3a18960ea..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend
+++ /dev/null
@@ -1,8 +0,0 @@
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " fan-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " thermal-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " power-supply-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_ibm-ac-server = " events-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " fan-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " thermal-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " power-supply-policy"
-PHOSPHOR_DBUS_MONITOR_CONFIGS_append_mihawk = " events-policy"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend
deleted file mode 100644
index 5c9d0b15c..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend
+++ /dev/null
@@ -1,2 +0,0 @@
-SYSTEMD_LINK_phosphor-msl-verify_append_ibm-ac-server = " ../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service"
-SYSTEMD_LINK_phosphor-msl-verify_append_mihawk = " ../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb
deleted file mode 100644
index 8d3df4600..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Power supply policy configuration for meta-witherspoon machines"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit allarch
-inherit phosphor-dbus-monitor
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
-
-SRC_URI += "file://power-supply-policy.yaml"
-
-do_install() {
- install -D ${WORKDIR}/power-supply-policy.yaml ${D}${config_dir}/power-supply-policy.yaml
-}
-
-FILES_${PN} += "${config_dir}/power-supply-policy.yaml"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml
deleted file mode 100644
index e00e747b6..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml
+++ /dev/null
@@ -1,215 +0,0 @@
-# Machine power supply policy for PDM.
-#
-# Create an error if a power supply is removed while the system is powered on
-
-- name: power supply0
- class: group
- group: path
- members:
- - meta: POWER SUPPLY
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0
-
-- name: power supply1
- class: group
- group: path
- members:
- - meta: POWER SUPPLY
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1
-
-- name: power supplies
- description: >
- 'The machine has two power supplies to monitor.'
- class: group
- group: path
- members:
- - meta: POWER SUPPLY
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0
- - meta: POWER SUPPLY
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1
-
-- name: chassis state
- description: >
- 'The machine has a single chassis to monitor.'
- class: group
- group: path
- members:
- - meta: CHASSISSTATE
- path: /xyz/openbmc_project/state/chassis0
-
-- name: power supply present
- description: >
- 'Monitor the presence state of each power supply.'
- class: group
- group: property
- type: boolean
- members:
- - interface: xyz.openbmc_project.Inventory.Item
- meta: PRESENT
- property: Present
-
-- 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: watch power supply present
- description: >
- 'Trigger logic on power supply presence state changes.'
- class: watch
- watch: property
- paths: power supplies
- properties: power supply present
- callback: check power
-
-- 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: check power
- description: >
- 'If the chassis has power, check for power supplies.'
- class: condition
- condition: count
- paths: chassis state
- properties: chassis powered
- callback: check power supplies
- countop: '>'
- countbound: 0
- op: '=='
- bound: xyz.openbmc_project.State.Chassis.PowerState.On
-
-- name: check power supplies
- description: >
- 'Create an error if a power supply is not present.'
- class: callback
- callback: group
- members:
- - check power supply0 presence
- - check power supply1 presence
-
-- name: check power supply0 presence
- description: >
- 'If this condition passes power supply0 has been unplugged for more than
- 5 seconds. Count present power supplies rather than non-present
- power supplies since the latter would pass if the power supply 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 power supply inventory object implementation.'
- class: condition
- condition: count
- paths: power supply0
- properties: power supply present
- defer: 5000000us
- callback: notpresent power supply0 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: check power supply1 presence
- description: >
- 'If this condition passes power supply1 has been unplugged for more than
- 5 seconds.'
- class: condition
- condition: count
- paths: power supply1
- properties: power supply present
- defer: 5000000us
- callback: notpresent power supply1 error
- countop: '<'
- countbound: 1
- op: '=='
- bound: true
-
-- name: notpresent power supply0 error
- class: callback
- callback: elog
- paths: power supply0
- properties: power supply 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/powersupply0
- type: string
-
-- name: notpresent power supply1 error
- class: callback
- callback: elog
- paths: power supply1
- properties: power supply 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/powersupply1
- type: string
-
-- name: resolve power supply0 errors if present
- description: >
- 'If power supply0 is present, call the resolve ps0 errors callback.'
- class: condition
- condition: count
- paths: power supply0
- properties: power supply present
- callback: resolve power supply0 errors
- countop: '>'
- countbound: 0
- op: '=='
- bound: true
-
-- name: resolve power supply1 errors if present
- description: >
- 'If power supply1 is present, call the resolve ps1 errors callback.'
- class: condition
- condition: count
- paths: power supply1
- properties: power supply present
- callback: resolve power supply1 errors
- countop: '>'
- countbound: 0
- op: '=='
- bound: true
-
-- name: resolve power supply0 errors
- class: callback
- callback: resolve callout
- paths: power supply0
- properties: power supply present
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0
-
-- name: resolve power supply1 errors
- class: callback
- callback: resolve callout
- paths: power supply1
- properties: power supply present
- callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1
-
-- name: watch power supply0 present for resolving error logs
- description: >
- 'On supply present state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: power supply0
- properties: power supply present
- callback: resolve power supply0 errors if present
-
-- name: watch power supply1 present for resolving error logs
- description: >
- 'On supply present state changes, check if errors need to be resolved.'
- class: watch
- watch: property
- paths: power supply1
- properties: power supply present
- callback: resolve power supply1 errors if present
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb
deleted file mode 100644
index b5b38baa3..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/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://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-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/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml
deleted file mode 100644
index 7c48509c5..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/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
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml
deleted file mode 100644
index 727630cb8..000000000
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml
+++ /dev/null
@@ -1,345 +0,0 @@
-# Mihawk thermal policy for PDM.
-#
-# Shut down the system if more than three cores
-# have a temperature greater than 95 degrees Celcius.
-# or ambient temperature greater than 45 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: ambient sensor
- description: >
- 'The machine has one ambient temperature sensors.'
- class: group
- group: path
- members:
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/ambient_temp
-
-- name: gpu sensors
- description: >
- 'Each gpu has its own temperature sensor.'
- class: group
- group: path
- members:
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu0
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu1
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu2
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu3
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu4
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu5
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu6
- - meta: SENSOR
- path: /xyz/openbmc_project/sensors/temperature/gpu7
-
-- 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: ambient temp
- description: >
- 'Monitor the ambient temperature.'
- class: group
- group: property
- type: int64
- members:
- - interface: xyz.openbmc_project.Sensor.Value
- meta: TEMP
- property: Value
-
-- name: gpu temp
- description: >
- 'Monitor the temperature of each gpu 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: watch ambient temp
- description: >
- 'Trigger logic on ambient temp changes.'
- class: watch
- watch: property
- paths: ambient sensor
- properties: ambient temp
- callback: check ambient temp
-
-- name: watch gpu temps
- description: >
- 'Trigger logic on gpu core temp changes.'
- class: watch
- watch: property
- paths: gpu sensors
- properties: gpu temp
- callback: check gpu 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: 95000
- oneshot: true
-
-- name: check ambient temp
- description: >
- 'If the ambient sensor is too hot. Shut the system down.'
- class: condition
- condition: count
- paths: ambient sensor
- properties: ambient temp
- callback: ambient log and shutdown
- countop: '>='
- countbound: 1
- op: '>='
- bound: 45000
- oneshot: true
-
-- name: check gpu temps
- description: >
- 'If the gpu temperature sensor is too hot. Shut the system down.'
- class: condition
- condition: count
- paths: gpu sensors
- properties: gpu temp
- callback: gpu log and shutdown
- countop: '>='
- countbound: 1
- op: '>='
- bound: 92
- 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: ambient log and shutdown
- description: >
- 'Shut the system down and log an event.'
- class: callback
- callback: group
- members:
- - shutdown
- - create ambient criticalhigh error
- - create ambient shutdown error
-
-- name: gpu log and shutdown
- description: >
- 'Shut the system down and log an event.'
- class: callback
- callback: group
- members:
- - shutdown
- - create gpu criticalhigh error
- - create gpu 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 ambient criticalhigh error
- description: >
- 'Create a Ambient CriticalHigh Error log.'
- class: callback
- callback: elog_with_metadata
- paths: ambient sensor
- properties: ambient temp
- error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
- metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA
-
-- name: create gpu criticalhigh error
- description: >
- 'Create a GPU CriticalHigh Error log.'
- class: callback
- callback: elog_with_metadata
- paths: gpu sensors
- properties: gpu 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
-
-- name: create ambient shutdown error
- description: >
- 'Create a SystemShutdown Error log.'
- class: callback
- callback: elog
- paths: ambient sensor
- properties: ambient temp
- error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Ambient
-
-- name: create gpu shutdown error
- description: >
- 'Create a SystemShutdown Error log.'
- class: callback
- callback: elog
- paths: gpu sensors
- properties: gpu temp
- error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::GPU