swift: Add dbus monitor policy configurations
Swift has two power supplies, same as Witherspoon, therefore will use
the same power supply policy configuration.
Swift and Witherspoon will also share the event policy configuration for
OCC throttling.
The thermal policy configuration will be shared between Swift and
Witherspoon, but may change for air cooled Swift to not also shutdown at
3 or more cores over 115C.
The fan policy configurations will be different for Swift, therefore
they will be separate. At this time, there are some areas unknown on how
fan presence and functional states will be handled for both air and
water cooled Swift machines, so these are configured to be the same.
Tested:
Built witherspoon phosphor-dbus-monitor resulting in no image change
Built swift phosphor-dbus-monitor resulting in correct policies
(From meta-ibm rev: fd06a2cbfd5f6e43aba4887ae1398984410d52cc)
Change-Id: I1125f00ecd51c23aac2da4cd2a47432ac3bc2de7
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml
new file mode 100644
index 0000000..7c48509
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/thermal-policy/thermal-policy.yaml
@@ -0,0 +1,187 @@
+# 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