diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2020-04-22 21:06:02 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-04-27 19:52:12 +0300 |
commit | e161514219e0dc8a957dabbb8529fb9fcac4e115 (patch) | |
tree | 5de46006517d690f5793eec41281d60611228ecd /meta-ibm/recipes-phosphor/dbus/power-supply-policy | |
parent | a3f54c8b8cbd50bc86efdc52cfb7d348d8c19d21 (diff) | |
download | openbmc-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/recipes-phosphor/dbus/power-supply-policy')
-rw-r--r-- | meta-ibm/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/meta-ibm/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml b/meta-ibm/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml new file mode 100644 index 0000000000..e00e747b6c --- /dev/null +++ b/meta-ibm/recipes-phosphor/dbus/power-supply-policy/power-supply-policy.yaml @@ -0,0 +1,215 @@ +# 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 |