diff options
author | Ben_Pai <ben_pai@wistron.com> | 2019-08-05 13:34:34 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-08-22 19:13:56 +0300 |
commit | fba5121cf3e2e40d2d44ac365ba1afc242f27b99 (patch) | |
tree | 830f364d6289ccba04437bcc1f6d02613205115d | |
parent | 661122dbec1d82991925c5a0f45f7970816ce390 (diff) | |
download | openbmc-fba5121cf3e2e40d2d44ac365ba1afc242f27b99.tar.xz |
Add mihawk sensor, fan control and d-bus monitor
Most of mihawk's sensors are different from witherspoon, so I temporarily
added the mihawk part and did not change the witherspoon.
Add mihawk version of fan control and d-bus monitor.
Mihawk does not have a water cooled mode, so another independent folder is added.
Tested: 1.Shut down the system if more than three cores
have a temperature greater than 100 degrees Celcius.
2.Fan control support cpu core, dimm, Onboard.
3.Confirm that sensor is able to return normally via REST.
(From meta-ibm rev: 949f91431bba2f0139cc823d674a741f9590c885)
Signed-off-by: Ben Pai <Ben_Pai@wistron.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: Icc401f32c67b622f0f1448e1166112e02c135a8f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
48 files changed, 2998 insertions, 6 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb index 12194640dd..e53d9c0557 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy.bb @@ -9,15 +9,20 @@ inherit phosphor-dbus-monitor FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += "file://air-cooled.yaml" -SRC_URI += "file://water-cooled.yaml" +SRC_URI_append_ibm-ac-server = " file://water-cooled.yaml" SRC_URI += "file://fan-errors.yaml" -do_install() { +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} += "${config_dir}/water-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 new file mode 100644 index 0000000000..52232e3f06 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/air-cooled.yaml @@ -0,0 +1,339 @@ +# 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 new file mode 100644 index 0000000000..65cfbeb258 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/fan-policy/mihawk/fan-errors.yaml @@ -0,0 +1,905 @@ +# 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/phosphor-dbus-monitor-config.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config.bbappend index 185db10331..3a18960ea3 100644 --- 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 @@ -2,3 +2,7 @@ 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 index 8e1bf41fad..5c9d0b15cd 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor_%.bbappend @@ -1 +1,2 @@ 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/thermal-policy.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb index 9fb7d252bb..5631ec493c 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy.bb @@ -8,7 +8,7 @@ inherit phosphor-dbus-monitor FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://thermal-policy.yaml" +SRC_URI = "file://thermal-policy.yaml" do_install() { install -D ${WORKDIR}/thermal-policy.yaml ${D}${config_dir}/thermal-policy.yaml diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml index 7c48509c5c..7c48509c5c 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/thermal-policy.yaml +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/ibm-ac-server/thermal-policy.yaml 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 new file mode 100644 index 0000000000..f8e89b2ede --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/thermal-policy/mihawk/thermal-policy.yaml @@ -0,0 +1,187 @@ +# Mihawk thermal policy for PDM. +# +# Shut down the system if more than three cores +# have a temperature greater than 100 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/fans/phosphor-fan-control-events-config/mihawk/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml new file mode 100644 index 0000000000..b7fd1f761c --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/mihawk/events.yaml @@ -0,0 +1,586 @@ +groups: + - name: zone0_control_mode + description: Thermal control mode for zone 0 + service: xyz.openbmc_project.Control.Thermal + type: /xyz/openbmc_project/control/thermal + members: + - /0 + - name: air_cooled_zone0_fans + description: Group of fan inventory objects for air cooled zone 0 + type: /xyz/openbmc_project/inventory + members: + - /system/chassis/motherboard/fan0 + - /system/chassis/motherboard/fan1 + - /system/chassis/motherboard/fan2 + - /system/chassis/motherboard/fan3 + - /system/chassis/motherboard/fan4 + - /system/chassis/motherboard/fan5 + - name: zone0_ambient + description: Group of ambient temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/ambient_temp + - name: occ0_object + description: Dbus object containing OCC0 properties + type: /org/open_power/control + members: + - /occ0 + - name: occ1_object + description: Dbus object containing OCC1 properties + type: /org/open_power/control + members: + - /occ1 + - name: zone0_cores + description: Group of core temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_core0_temp + - /temperature/p0_core1_temp + - /temperature/p0_core2_temp + - /temperature/p0_core3_temp + - /temperature/p0_core4_temp + - /temperature/p0_core5_temp + - /temperature/p0_core6_temp + - /temperature/p0_core7_temp + - /temperature/p0_core8_temp + - /temperature/p0_core9_temp + - /temperature/p0_core10_temp + - /temperature/p0_core11_temp + - /temperature/p0_core12_temp + - /temperature/p0_core13_temp + - /temperature/p0_core14_temp + - /temperature/p0_core15_temp + - /temperature/p0_core16_temp + - /temperature/p0_core17_temp + - /temperature/p0_core18_temp + - /temperature/p0_core19_temp + - /temperature/p0_core20_temp + - /temperature/p0_core21_temp + - /temperature/p0_core22_temp + - /temperature/p0_core23_temp + - /temperature/p1_core0_temp + - /temperature/p1_core1_temp + - /temperature/p1_core2_temp + - /temperature/p1_core3_temp + - /temperature/p1_core4_temp + - /temperature/p1_core5_temp + - /temperature/p1_core6_temp + - /temperature/p1_core7_temp + - /temperature/p1_core8_temp + - /temperature/p1_core9_temp + - /temperature/p1_core10_temp + - /temperature/p1_core11_temp + - /temperature/p1_core12_temp + - /temperature/p1_core13_temp + - /temperature/p1_core14_temp + - /temperature/p1_core15_temp + - /temperature/p1_core16_temp + - /temperature/p1_core17_temp + - /temperature/p1_core18_temp + - /temperature/p1_core19_temp + - /temperature/p1_core20_temp + - /temperature/p1_core21_temp + - /temperature/p1_core22_temp + - /temperature/p1_core23_temp + - name: zone0_dimms + description: Group of dimm temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/dimm0_temp + - /temperature/dimm1_temp + - /temperature/dimm2_temp + - /temperature/dimm3_temp + - /temperature/dimm4_temp + - /temperature/dimm5_temp + - /temperature/dimm6_temp + - /temperature/dimm7_temp + - /temperature/dimm8_temp + - /temperature/dimm9_temp + - /temperature/dimm10_temp + - /temperature/dimm11_temp + - /temperature/dimm12_temp + - /temperature/dimm13_temp + - /temperature/dimm14_temp + - /temperature/dimm15_temp + - /temperature/dimm16_temp + - /temperature/dimm17_temp + - /temperature/dimm18_temp + - /temperature/dimm19_temp + - /temperature/dimm20_temp + - /temperature/dimm21_temp + - /temperature/dimm22_temp + - /temperature/dimm23_temp + - /temperature/dimm24_temp + - /temperature/dimm25_temp + - /temperature/dimm26_temp + - /temperature/dimm27_temp + - /temperature/dimm28_temp + - /temperature/dimm29_temp + - /temperature/dimm30_temp + - /temperature/dimm31_temp + - name: zone0_onboard + description: Group of onboard temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_pcie_temp + - /temperature/p1_pcie_temp + - name: zone0_vrd + description: Group of vrd temperature sensors for zone 0 + type: /xyz/openbmc_project/sensors + members: + - /temperature/p0_vcs_temp + - /temperature/p0_vdn_temp + - /temperature/p1_vcs_temp + - /temperature/p1_vdn_temp + - /temperature/p0_vdd_temp + - /temperature/p1_vdd_temp +matches: + - name: propertiesChanged + description: > + A property changed match + parameters: + - object + - interface + signal: propertySignal + - name: interfacesAdded + description: > + An interfaces added match + parameters: + - object + signal: objectSignal + - name: interfacesRemoved + description: > + An interfaces removed match + parameters: + - object + signal: + name: objectSignal + parameters: + - object + - interface + handler: removeInterface + - name: nameOwnerChanged + description: > + A name owner changed match + parameters: + - object + - interface + signal: ownerSignal + +signals: + - name: propertySignal + description: > + Handle property signals + parameters: + - type + - object + - interface + - property + handler: setProperty + - name: objectSignal + description: > + Handle object signals + parameters: + - type + - object + - interface + - property + handler: setProperty + - name: ownerSignal + description: > + Handle owner signals + parameters: + - object + - interface + handler: setService + +handlers: + - name: setProperty + description: > + Sets a value for the given object/interface/property + parameters: + - type + - object + - interface + - property + - name: setService + description: > + Sets the service name and ownership status for the given group + parameters: + - group + - name: removeInterface + description: > + Removes an interface(and all associated properties) on the + given object from use within all event actions + parameters: + - object + - interface + +preconditions: + - name: property_states_match + description: > + All defined properties must match the values given to + enable a set speed event otherwise fan speeds are set to full + parameters: + - groups + +actions: + - name: call_actions_based_on_timer + description: > + Sets up a list of actions to be invoked when the defined timer + expires (or for each expiration of a repeating timer) + parameters: + - timer + - actions + - name: default_floor_on_missing_owner + description: > + Set the fan floor to the default floor + - name: set_speed_on_missing_owner + description: > + Set fans to the given speed when any service within the group + no longer exists + parameters: + - speed + - name: set_request_speed_base_with_max + description: > + Set the base request speed of a zone to the max value of a group for + calculating a new target speed + - name: count_state_before_speed + description: Set the speed when a number of properties at a state + parameters: + - count + - property + - speed + - name: set_floor_from_average_sensor_value + description: Set floor speed from first entry with average less than key + parameters: + - map + - name: set_ceiling_from_average_sensor_value + description: Set ceiling speed based on key transition values with average + parameters: + - map + - name: set_net_increase_speed + description: > + Set the speed increase delta based on a factor applied to + the delta increase size times the given value and property's + value difference + parameters: + - property + - factor + - delta + - name: set_net_decrease_speed + description: > + Set the speed decrease delta based on a factor applied to + the delta decrease size times the given value and property's + value difference + parameters: + - property + - factor + - delta + - name: use_alternate_events_on_state + description: > + Replaces a set of default events with an alternate set of events + when all the group properties are at a given state + parameters: + - property + - defevents + - altevents + +events: + - name: missing_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Inventory.Item + property: + name: Present + type: bool + matches: + - name: interfacesAdded + - name: propertiesChanged + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 255 + type: uint64_t + - name: fails_before_high_speed_air + groups: + - name: air_cooled_zone0_fans + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.State.Decorator.OperationalStatus + property: + name: Functional + type: bool + matches: + - name: propertiesChanged + actions: + - name: count_state_before_speed + count: 1 + property: + value: false + type: bool + speed: + value: 255 + type: uint64_t + - name: set_air_cooled_speed_boundaries_based_on_ambient + groups: + - name: zone0_control_mode + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Control.ThermalMode + property: + name: Current + type: std::string + matches: + - name: propertiesChanged + actions: + - name: use_alternate_events_on_state + property: + value: CUSTOM + type: std::string + defevents: + - name: default_floor_boundary + groups: + - name: zone0_ambient + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: propertiesChanged + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 25000: 85 + - 26000: 85 + - 28000: 97 + - 31000: 116 + - 33000: 128 + - 36000: 148 + - 38000: 160 + - 41000: 255 + type: std::map<int64_t, uint64_t> + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 255 + - 27000: 255 + type: std::map<int64_t, uint64_t> + altevents: + - name: alternate_floor_boundary + groups: + - name: zone0_ambient + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: propertiesChanged + actions: + - name: set_floor_from_average_sensor_value + map: + value: + - 25000: 255 + - 26000: 255 + - 28000: 255 + - 31000: 255 + - 33000: 255 + - 36000: 255 + - 38000: 255 + - 41000: 255 + type: std::map<int64_t, uint64_t> + - name: set_ceiling_from_average_sensor_value + map: + value: + - 25000: 255 + - 27000: 255 + type: std::map<int64_t, uint64_t> + - name: occ_active_speed_changes + precondition: + name: property_states_match + groups: + - name: occ0_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + value: true + - name: occ1_object + interface: org.open_power.OCC.Status + property: + name: OccActive + type: bool + value: true + matches: + - name: interfacesAdded + - name: propertiesChanged + events: + - name: speed_changes_based_on_core_temps + groups: + - name: zone0_cores + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: interfacesAdded + - name: propertiesChanged + - name: interfacesRemoved + actions: + - name: set_net_increase_speed + property: + value: 75000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 13 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 70000 + type: int64_t + factor: + value: 7000 + type: int64_t + delta: + value: 5 + type: uint64_t + timer: + interval: 1 + - name: speed_changes_based_on_dimm_temps + groups: + - name: zone0_dimms + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: interfacesAdded + - name: propertiesChanged + - name: interfacesRemoved + actions: + - name: set_net_increase_speed + property: + value: 80000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 8 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 75000 + type: int64_t + factor: + value: 3000 + type: int64_t + delta: + value: 3 + type: uint64_t + timer: + interval: 5 + - name: speed_changes_based_on_onboard_temps + groups: + - name: zone0_onboard + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: interfacesAdded + - name: propertiesChanged + - name: interfacesRemoved + actions: + - name: set_net_increase_speed + property: + value: 50000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 8 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 47000 + type: int64_t + factor: + value: 3000 + type: int64_t + delta: + value: 3 + type: uint64_t + timer: + interval: 10 + - name: speed_changes_based_on_vrd_temps + groups: + - name: zone0_vrd + zone_conditions: + - name: air_cooled_chassis + zones: + - 0 + interface: xyz.openbmc_project.Sensor.Value + property: + name: Value + type: int64_t + matches: + - name: interfacesAdded + - name: propertiesChanged + - name: interfacesRemoved + actions: + - name: set_net_increase_speed + property: + value: 90000 + type: int64_t + factor: + value: 1000 + type: int64_t + delta: + value: 5 + type: uint64_t + - name: set_net_decrease_speed + property: + value: 85000 + type: int64_t + factor: + value: 3000 + type: int64_t + delta: + value: 3 + type: uint64_t + timer: + interval: 10 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml new file mode 100644 index 0000000000..9133fa1fa7 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config/mihawk/fans.yaml @@ -0,0 +1,31 @@ +fans: + - inventory: /system/chassis/motherboard/fan0 + cooling_zone: 0 + sensors: + - fan0_0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan1 + cooling_zone: 0 + sensors: + - fan1_0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan2 + cooling_zone: 0 + sensors: + - fan2_0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan3 + cooling_zone: 0 + sensors: + - fan3_0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan4 + cooling_zone: 0 + sensors: + - fan4_0 + target_interface: xyz.openbmc_project.Control.FanPwm + - inventory: /system/chassis/motherboard/fan5 + cooling_zone: 0 + sensors: + - fan5_0 + target_interface: xyz.openbmc_project.Control.FanPwm diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/mihawk/zone_conditions.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/mihawk/zone_conditions.yaml new file mode 100644 index 0000000000..7dc99b6a20 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config/mihawk/zone_conditions.yaml @@ -0,0 +1,9 @@ +conditions: + - name: air_cooled_chassis + type: getProperty + properties: + - property: WaterCooled + interface: xyz.openbmc_project.Inventory.Decorator.CoolingType + path: /xyz/openbmc_project/inventory/system/chassis + type: bool + value: false diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml new file mode 100644 index 0000000000..4deb2523eb --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config/mihawk/zones.yaml @@ -0,0 +1,42 @@ +manager_configuration: + power_on_delay: 20 + +zone_configuration: + +#Air cooled zones +- zone_conditions: + - name: air_cooled_chassis + + zones: + - zone: 0 + cooling_profiles: + - air + - all + full_speed: 255 + default_floor: 195 + increase_delay: 5 + decrease_interval: 30 + interfaces: + - name: xyz.openbmc_project.Control.ThermalMode + properties: + - name: Supported + type: array[string] + values: + - value: DEFAULT + description: > + Default thermal control mode + - value: CUSTOM + description: > + Custom thermal control mode for handling the use of + optical cables located behind the GPU exhaust that + could produce overtemp warnings without this mode + enabled. + - name: Current + type: string + persist: true + values: + - value: DEFAULT + description: > + Set current thermal control mode to the + default which will be replaced on startup if + another selected mode was persisted.
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml new file mode 100644 index 0000000000..076349de57 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config/mihawk/monitor.yaml @@ -0,0 +1,96 @@ +fans: + - inventory: /system/chassis/motherboard/fan0 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan0_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan0_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan1 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan1_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan1_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan2 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan2_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan2_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan3 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan3_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan3_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan4 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan4_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan4_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + + - inventory: /system/chassis/motherboard/fan5 + allowed_out_of_range_time: 10 + deviation: 15 + num_sensors_nonfunc_for_fan_nonfunc: 1 + sensors: + - name: fan5_0 + has_target: true + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 + - name: fan5_1 + has_target: false + target_interface: xyz.openbmc_project.Control.FanPwm + factor: 70 + offset: 1200 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml new file mode 100644 index 0000000000..9cb5ecddba --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config/mihawk/config.yaml @@ -0,0 +1,47 @@ +- name: fan0 + path: /system/chassis/motherboard/fan0 + methods: + - type: gpio + key: 9 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan1 + path: /system/chassis/motherboard/fan1 + methods: + - type: gpio + key: 10 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan2 + path: /system/chassis/motherboard/fan2 + methods: + - type: gpio + key: 11 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan3 + path: /system/chassis/motherboard/fan3 + methods: + - type: gpio + key: 12 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan4 + path: /system/chassis/motherboard/fan4 + methods: + - type: gpio + key: 13 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event + +- name: fan5 + path: /system/chassis/motherboard/fan5 + methods: + - type: gpio + key: 14 + physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060 + devpath: /dev/input/by-path/platform-gpio-keys-polled-event diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/obmc/phosphor-fan/phosphor-cooling-type-0.conf new file mode 100644 index 0000000000..21fcfcb490 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/obmc/phosphor-fan/phosphor-cooling-type-0.conf @@ -0,0 +1,3 @@ +OBJPATH="--path=/system/chassis" +AIR="--air" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/phosphor-cooling-type@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/phosphor-cooling-type@.service new file mode 100644 index 0000000000..9232b13fc5 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan/mihawk/phosphor-cooling-type@.service @@ -0,0 +1,15 @@ +[Unit] +Description=Phosphor Cooling Type +Wants=mapper-wait@-xyz-openbmc_project-inventory.service +After=mapper-wait@-xyz-openbmc_project-inventory.service +ConditionPathExists={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf + +[Service] +Type=oneshot +RemainAfterExit=yes +EnvironmentFile={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf +ExecStart=/usr/bin/env phosphor-cooling-type ${{OBJPATH}} ${{AIR}} +SyslogIdentifier=phosphor-cooling-type + +[Install] +RequiredBy=multi-user.target diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend index 88c32ffa63..085857c31f 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan_%.bbappend @@ -3,9 +3,14 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" # Package configuration FAN_PACKAGES_append_ibm-ac-server = " \ phosphor-cooling-type \ -" + " + +FAN_PACKAGES_append_mihawk = " \ + phosphor-cooling-type \ + " PACKAGECONFIG_append_ibm-ac-server = " cooling-type" +PACKAGECONFIG_append_mihawk = " cooling-type" TMPL_COOLING = "phosphor-cooling-type@.service" INSTFMT_COOLING = "phosphor-cooling-type@{0}.service" @@ -15,10 +20,14 @@ FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}" FILES_phosphor-cooling-type_append_ibm-ac-server = " ${bindir}/phosphor-cooling-type" SYSTEMD_SERVICE_phosphor-cooling-type_append_ibm-ac-server = " ${TMPL_COOLING}" SYSTEMD_LINK_phosphor-cooling-type_append_ibm-ac-server = " ${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" +FILES_phosphor-cooling-type_append_mihawk = " ${bindir}/phosphor-cooling-type" +SYSTEMD_SERVICE_phosphor-cooling-type_append_mihawk = " ${TMPL_COOLING}" +SYSTEMD_LINK_phosphor-cooling-type_append_mihawk = " ${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}" COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf" SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type_append_ibm-ac-server = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" +SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type_append_mihawk = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}" #These services are protected by the watchdog SYSTEMD_OVERRIDE_phosphor-fan-control_witherspoon += "fan-watchdog-monitor.conf:phosphor-fan-control-init@0.service.d/fan-watchdog-monitor.conf" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend index b2e466d763..f32ba3eb56 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -1,5 +1,5 @@ RDEPENDS_${PN}-inventory_append_ibm-ac-server = " openpower-fru-vpd openpower-occ-control phosphor-cooling-type virtual/obmc-gpio-presence" -RDEPENDS_${PN}-inventory_append_mihawk = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence id-button" +RDEPENDS_${PN}-inventory_append_mihawk = " openpower-fru-vpd openpower-occ-control virtual/obmc-gpio-presence id-button phosphor-cooling-type" RDEPENDS_${PN}-fan-control_append_ibm-ac-server = " witherspoon-fan-watchdog" RDEPENDS_${PN}-extras_append_ibm-ac-server = " witherspoon-pfault-analysis witherspoon-power-supply-sync phosphor-webui" RDEPENDS_${PN}-extras_append_mihawk = " phosphor-webui phosphor-image-signing" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf new file mode 100644 index 0000000000..61b4253bf5 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@58.conf @@ -0,0 +1,4 @@ +LABEL_in1="ps1_input_voltage" +LABEL_in2="ps1_output_voltage" +LABEL_curr1="ps1_output_current" +LABEL_power1="ps1_input_power" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf new file mode 100644 index 0000000000..92838e1d09 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@5b.conf @@ -0,0 +1,4 @@ +LABEL_in1="ps0_input_voltage" +LABEL_in2="ps0_output_voltage" +LABEL_curr1="ps0_output_current" +LABEL_power1="ps0_input_power" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf new file mode 100644 index 0000000000..3c25a4a01b --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@70.conf @@ -0,0 +1,11 @@ +LABEL_temp1 = "p0_vdd_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" + +LABEL_temp2 = "p0_vcs_temp" +WARNHI_temp2 = "100000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "105000" +CRITLO_temp2 = "0" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf new file mode 100644 index 0000000000..7f1f4d871a --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@140/ir35221@72.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "p0_vdn_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf new file mode 100644 index 0000000000..5f0985d7c3 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@70.conf @@ -0,0 +1,11 @@ +LABEL_temp1 = "p1_vdd_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0" + +LABEL_temp2 = "p1_vcs_temp" +WARNHI_temp2 = "100000" +WARNLO_temp2 = "0" +CRITHI_temp2 = "105000" +CRITLO_temp2 = "0"
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf new file mode 100644 index 0000000000..4383728377 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@180/ir35221@72.conf @@ -0,0 +1,5 @@ +LABEL_temp1 = "p1_vdn_temp" +WARNHI_temp1 = "100000" +WARNLO_temp1 = "0" +CRITHI_temp1 = "105000" +CRITLO_temp1 = "0"
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf new file mode 100644 index 0000000000..7c7b248115 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/emc1403@4c.conf @@ -0,0 +1,2 @@ +LABEL_temp2 = "ambient_temp" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf new file mode 100644 index 0000000000..4f89e7f34a --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@48.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "p1_pcie_temp" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf new file mode 100644 index 0000000000..959c66f9d7 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@400/tmp275@49.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "p0_pcie_temp" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf new file mode 100644 index 0000000000..82f065818a --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48.conf @@ -0,0 +1,2 @@ +LABEL_temp1 = "M2_riser_temp" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf new file mode 100644 index 0000000000..5d14ebc94a --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf @@ -0,0 +1,25 @@ +LABEL_fan1 = "fan0_0" +LABEL_fan2 = "fan0_1" +LABEL_fan3 = "fan1_0" +LABEL_fan4 = "fan1_1" +LABEL_fan5 = "fan2_0" +LABEL_fan6 = "fan2_1" +LABEL_fan7 = "fan3_0" +LABEL_fan8 = "fan3_1" +LABEL_fan9 = "fan4_0" +LABEL_fan10 = "fan4_1" +LABEL_fan11 = "fan5_0" +LABEL_fan12 = "fan5_1" + +PWM_TARGET_fan1 = "1" +PWM_TARGET_fan2 = "1" +PWM_TARGET_fan3 = "2" +PWM_TARGET_fan4 = "2" +PWM_TARGET_fan5 = "3" +PWM_TARGET_fan6 = "3" +PWM_TARGET_fan7 = "4" +PWM_TARGET_fan8 = "4" +PWM_TARGET_fan9 = "5" +PWM_TARGET_fan10 = "5" +PWM_TARGET_fan11 = "6" +PWM_TARGET_fan12 = "6"
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf new file mode 100644 index 0000000000..f47b49a827 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf @@ -0,0 +1,290 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" +MODE_temp33 = "label" +MODE_temp34 = "label" +MODE_temp35 = "label" +MODE_temp36 = "label" +MODE_temp37 = "label" +MODE_temp38 = "label" +MODE_temp39 = "label" +MODE_temp40 = "label" +LABEL_temp17 = "p0_core0_temp" +WARNHI_temp17 = "85000" +WARNLO_temp17 = "0" +CRITHI_temp17 = "90000" +CRITLO_temp17 = "0" + +LABEL_temp20 = "p0_core1_temp" +WARNHI_temp20 = "85000" +WARNLO_temp20 = "0" +CRITHI_temp20 = "90000" +CRITLO_temp20 = "0" + +LABEL_temp23 = "p0_core2_temp" +WARNHI_temp23 = "85000" +WARNLO_temp23 = "0" +CRITHI_temp23 = "90000" +CRITLO_temp23 = "0" + +LABEL_temp26 = "p0_core3_temp" +WARNHI_temp26 = "85000" +WARNLO_temp26 = "0" +CRITHI_temp26 = "90000" +CRITLO_temp26 = "0" + +LABEL_temp29 = "p0_core4_temp" +WARNHI_temp29 = "85000" +WARNLO_temp29 = "0" +CRITHI_temp29 = "90000" +CRITLO_temp29 = "0" + +LABEL_temp32 = "p0_core5_temp" +WARNHI_temp32 = "85000" +WARNLO_temp32 = "0" +CRITHI_temp32 = "90000" +CRITLO_temp32 = "0" + +LABEL_temp35 = "p0_core6_temp" +WARNHI_temp35 = "85000" +WARNLO_temp35 = "0" +CRITHI_temp35 = "90000" +CRITLO_temp35 = "0" + +LABEL_temp38 = "p0_core7_temp" +WARNHI_temp38 = "85000" +WARNLO_temp38 = "0" +CRITHI_temp38 = "90000" +CRITLO_temp38 = "0" + +LABEL_temp41 = "p0_core8_temp" +WARNHI_temp41 = "85000" +WARNLO_temp41 = "0" +CRITHI_temp41 = "90000" +CRITLO_temp41 = "0" + +LABEL_temp44 = "p0_core9_temp" +WARNHI_temp44 = "85000" +WARNLO_temp44 = "0" +CRITHI_temp44 = "90000" +CRITLO_temp44 = "0" + +LABEL_temp47 = "p0_core10_temp" +WARNHI_temp47 = "85000" +WARNLO_temp47 = "0" +CRITHI_temp47 = "90000" +CRITLO_temp47 = "0" + +LABEL_temp50 = "p0_core11_temp" +WARNHI_temp50 = "85000" +WARNLO_temp50 = "0" +CRITHI_temp50 = "90000" +CRITLO_temp50 = "0" + +LABEL_temp53 = "p0_core12_temp" +WARNHI_temp53 = "85000" +WARNLO_temp53 = "0" +CRITHI_temp53 = "90000" +CRITLO_temp53 = "0" + +LABEL_temp56 = "p0_core13_temp" +WARNHI_temp56 = "85000" +WARNLO_temp56 = "0" +CRITHI_temp56 = "90000" +CRITLO_temp56 = "0" + +LABEL_temp59 = "p0_core14_temp" +WARNHI_temp59 = "85000" +WARNLO_temp59 = "0" +CRITHI_temp59 = "90000" +CRITLO_temp59 = "0" + +LABEL_temp62 = "p0_core15_temp" +WARNHI_temp62 = "85000" +WARNLO_temp62 = "0" +CRITHI_temp62 = "90000" +CRITLO_temp62 = "0" + +LABEL_temp65 = "p0_core16_temp" +WARNHI_temp65 = "85000" +WARNLO_temp65 = "0" +CRITHI_temp65 = "90000" +CRITLO_temp65 = "0" + +LABEL_temp68 = "p0_core17_temp" +WARNHI_temp68 = "85000" +WARNLO_temp68 = "0" +CRITHI_temp68 = "90000" +CRITLO_temp68 = "0" + +LABEL_temp71 = "p0_core18_temp" +WARNHI_temp71 = "85000" +WARNLO_temp71 = "0" +CRITHI_temp71 = "90000" +CRITLO_temp71 = "0" + +LABEL_temp74 = "p0_core19_temp" +WARNHI_temp74 = "85000" +WARNLO_temp74 = "0" +CRITHI_temp74 = "90000" +CRITLO_temp74 = "0" + +LABEL_temp77 = "p0_core20_temp" +WARNHI_temp77 = "85000" +WARNLO_temp77 = "0" +CRITHI_temp77 = "90000" +CRITLO_temp77 = "0" + +LABEL_temp80 = "p0_core21_temp" +WARNHI_temp80 = "85000" +WARNLO_temp80 = "0" +CRITHI_temp80 = "90000" +CRITLO_temp80 = "0" + +LABEL_temp83 = "p0_core22_temp" +WARNHI_temp83 = "85000" +WARNLO_temp83 = "0" +CRITHI_temp83 = "90000" +CRITLO_temp83 = "0" + +LABEL_temp86 = "p0_core23_temp" +WARNHI_temp86 = "85000" +WARNLO_temp86 = "0" +CRITHI_temp86 = "90000" +CRITLO_temp86 = "0" + +LABEL_temp165 = "dimm0_temp" +WARNHI_temp165 = "85000" +WARNLO_temp165 = "0" +CRITHI_temp165 = "95000" +CRITLO_temp165 = "0" + +LABEL_temp167 = "dimm1_temp" +WARNHI_temp167 = "85000" +WARNLO_temp167 = "0" +CRITHI_temp167 = "95000" +CRITLO_temp167 = "0" + +LABEL_temp169 = "dimm2_temp" +WARNHI_temp169 = "85000" +WARNLO_temp169 = "0" +CRITHI_temp169 = "95000" +CRITLO_temp169 = "0" + +LABEL_temp171 = "dimm3_temp" +WARNHI_temp171 = "85000" +WARNLO_temp171 = "0" +CRITHI_temp171 = "95000" +CRITLO_temp171 = "0" + +LABEL_temp173 = "dimm4_temp" +WARNHI_temp173 = "85000" +WARNLO_temp173 = "0" +CRITHI_temp173 = "95000" +CRITLO_temp173 = "0" + +LABEL_temp175 = "dimm5_temp" +WARNHI_temp175 = "85000" +WARNLO_temp175 = "0" +CRITHI_temp175 = "95000" +CRITLO_temp175 = "0" + +LABEL_temp177 = "dimm6_temp" +WARNHI_temp177 = "85000" +WARNLO_temp177 = "0" +CRITHI_temp177 = "95000" +CRITLO_temp177 = "0" + +LABEL_temp179 = "dimm7_temp" +WARNHI_temp179 = "85000" +WARNLO_temp179 = "0" +CRITHI_temp179 = "95000" +CRITLO_temp179 = "0" + +LABEL_temp197 = "dimm16_temp" +WARNHI_temp197 = "85000" +WARNLO_temp197 = "0" +CRITHI_temp197 = "95000" +CRITLO_temp197 = "0" + +LABEL_temp199 = "dimm17_temp" +WARNHI_temp199 = "85000" +WARNLO_temp199 = "0" +CRITHI_temp199 = "95000" +CRITLO_temp199 = "0" + +LABEL_temp201 = "dimm18_temp" +WARNHI_temp201 = "85000" +WARNLO_temp201 = "0" +CRITHI_temp201 = "95000" +CRITLO_temp201 = "0" + +LABEL_temp203 = "dimm19_temp" +WARNHI_temp203 = "85000" +WARNLO_temp203 = "0" +CRITHI_temp203 = "95000" +CRITLO_temp203 = "0" + +LABEL_temp205 = "dimm20_temp" +WARNHI_temp205 = "85000" +WARNLO_temp205 = "0" +CRITHI_temp205 = "95000" +CRITLO_temp205 = "0" + +LABEL_temp207 = "dimm21_temp" +WARNHI_temp207 = "85000" +WARNLO_temp207 = "0" +CRITHI_temp207 = "95000" +CRITLO_temp207 = "0" + +LABEL_temp209 = "dimm22_temp" +WARNHI_temp209 = "85000" +WARNLO_temp209 = "0" +CRITHI_temp209 = "95000" +CRITLO_temp209 = "0" + +LABEL_temp211 = "dimm23_temp" +WARNHI_temp211 = "85000" +WARNLO_temp211 = "0" +CRITHI_temp211 = "95000" +CRITLO_temp211 = "0" + +LABEL_power2 = "io_b_power" +LABEL_power3 = "io_a_power" +LABEL_power4 = "p1_mem_power" +LABEL_power5 = "p1_vdd_power" +LABEL_power6 = "p0_mem_power" +LABEL_power7 = "p0_vdd_power" +LABEL_power8 = "fans_power" +LABEL_power9 = "storage_b_power" +LABEL_power10 = "storage_a_power" +LABEL_power11 = "gpu0_power" diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf new file mode 100644 index 0000000000..ba53cd95d9 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf @@ -0,0 +1,280 @@ +MODE_temp1 = "label" +MODE_temp2 = "label" +MODE_temp3 = "label" +MODE_temp4 = "label" +MODE_temp5 = "label" +MODE_temp6 = "label" +MODE_temp7 = "label" +MODE_temp8 = "label" +MODE_temp9 = "label" +MODE_temp10 = "label" +MODE_temp11 = "label" +MODE_temp12 = "label" +MODE_temp13 = "label" +MODE_temp14 = "label" +MODE_temp15 = "label" +MODE_temp16 = "label" +MODE_temp17 = "label" +MODE_temp18 = "label" +MODE_temp19 = "label" +MODE_temp20 = "label" +MODE_temp21 = "label" +MODE_temp22 = "label" +MODE_temp23 = "label" +MODE_temp24 = "label" +MODE_temp25 = "label" +MODE_temp26 = "label" +MODE_temp27 = "label" +MODE_temp28 = "label" +MODE_temp29 = "label" +MODE_temp30 = "label" +MODE_temp31 = "label" +MODE_temp32 = "label" +MODE_temp33 = "label" +MODE_temp34 = "label" +MODE_temp35 = "label" +MODE_temp36 = "label" +MODE_temp37 = "label" +MODE_temp38 = "label" +MODE_temp39 = "label" +MODE_temp40 = "label" +LABEL_temp91 = "p1_core0_temp" +WARNHI_temp91 = "85000" +WARNLO_temp91 = "0" +CRITHI_temp91 = "90000" +CRITLO_temp91 = "0" + +LABEL_temp94 = "p1_core1_temp" +WARNHI_temp94 = "85000" +WARNLO_temp94 = "0" +CRITHI_temp94 = "90000" +CRITLO_temp94 = "0" + +LABEL_temp97 = "p1_core2_temp" +WARNHI_temp97 = "85000" +WARNLO_temp97 = "0" +CRITHI_temp97 = "90000" +CRITLO_temp97 = "0" + +LABEL_temp100 = "p1_core3_temp" +WARNHI_temp100 = "85000" +WARNLO_temp100 = "0" +CRITHI_temp100 = "90000" +CRITLO_temp100 = "0" + +LABEL_temp103 = "p1_core4_temp" +WARNHI_temp103 = "85000" +WARNLO_temp103 = "0" +CRITHI_temp103 = "90000" +CRITLO_temp103 = "0" + +LABEL_temp106 = "p1_core5_temp" +WARNHI_temp106 = "85000" +WARNLO_temp106 = "0" +CRITHI_temp106 = "90000" +CRITLO_temp106 = "0" + +LABEL_temp109 = "p1_core6_temp" +WARNHI_temp109 = "85000" +WARNLO_temp109 = "0" +CRITHI_temp109 = "90000" +CRITLO_temp109 = "0" + +LABEL_temp112 = "p1_core7_temp" +WARNHI_temp112 = "85000" +WARNLO_temp112 = "0" +CRITHI_temp112 = "90000" +CRITLO_temp112 = "0" + +LABEL_temp115 = "p1_core8_temp" +WARNHI_temp115 = "85000" +WARNLO_temp115 = "0" +CRITHI_temp115 = "90000" +CRITLO_temp115 = "0" + +LABEL_temp118 = "p1_core9_temp" +WARNHI_temp118 = "85000" +WARNLO_temp118 = "0" +CRITHI_temp118 = "90000" +CRITLO_temp118 = "0" + +LABEL_temp121 = "p1_core10_temp" +WARNHI_temp121 = "85000" +WARNLO_temp121 = "0" +CRITHI_temp121 = "90000" +CRITLO_temp121 = "0" + +LABEL_temp124 = "p1_core11_temp" +WARNHI_temp124 = "85000" +WARNLO_temp124 = "0" +CRITHI_temp124 = "90000" +CRITLO_temp124 = "0" + +LABEL_temp127 = "p1_core12_temp" +WARNHI_temp127 = "85000" +WARNLO_temp127 = "0" +CRITHI_temp127 = "90000" +CRITLO_temp127 = "0" + +LABEL_temp130 = "p1_core13_temp" +WARNHI_temp130 = "85000" +WARNLO_temp130 = "0" +CRITHI_temp130 = "90000" +CRITLO_temp130 = "0" + +LABEL_temp133 = "p1_core14_temp" +WARNHI_temp133 = "85000" +WARNLO_temp133 = "0" +CRITHI_temp133 = "90000" +CRITLO_temp133 = "0" + +LABEL_temp136 = "p1_core15_temp" +WARNHI_temp136 = "85000" +WARNLO_temp136 = "0" +CRITHI_temp136 = "90000" +CRITLO_temp136 = "0" + +LABEL_temp139 = "p1_core16_temp" +WARNHI_temp139 = "85000" +WARNLO_temp139 = "0" +CRITHI_temp139 = "90000" +CRITLO_temp139 = "0" + +LABEL_temp142 = "p1_core17_temp" +WARNHI_temp142 = "85000" +WARNLO_temp142 = "0" +CRITHI_temp142 = "90000" +CRITLO_temp142 = "0" + +LABEL_temp145 = "p1_core18_temp" +WARNHI_temp145 = "85000" +WARNLO_temp145 = "0" +CRITHI_temp145 = "90000" +CRITLO_temp145 = "0" + +LABEL_temp148 = "p1_core19_temp" +WARNHI_temp148 = "85000" +WARNLO_temp148 = "0" +CRITHI_temp148 = "90000" +CRITLO_temp148 = "0" + +LABEL_temp151 = "p1_core20_temp" +WARNHI_temp151 = "85000" +WARNLO_temp151 = "0" +CRITHI_temp151 = "90000" +CRITLO_temp151 = "0" + +LABEL_temp154 = "p1_core21_temp" +WARNHI_temp154 = "85000" +WARNLO_temp154 = "0" +CRITHI_temp154 = "90000" +CRITLO_temp154 = "0" + +LABEL_temp157 = "p1_core22_temp" +WARNHI_temp157 = "85000" +WARNLO_temp157 = "0" +CRITHI_temp157 = "90000" +CRITLO_temp157 = "0" + +LABEL_temp160 = "p1_core23_temp" +WARNHI_temp160 = "85000" +WARNLO_temp160 = "0" +CRITHI_temp160 = "90000" +CRITLO_temp160 = "0" + +LABEL_temp181 = "dimm8_temp" +WARNHI_temp181 = "85000" +WARNLO_temp181 = "0" +CRITHI_temp181 = "95000" +CRITLO_temp181 = "0" + +LABEL_temp183 = "dimm9_temp" +WARNHI_temp183 = "85000" +WARNLO_temp183 = "0" +CRITHI_temp183 = "95000" +CRITLO_temp183 = "0" + +LABEL_temp185 = "dimm10_temp" +WARNHI_temp185 = "85000" +WARNLO_temp185 = "0" +CRITHI_temp185 = "95000" +CRITLO_temp185 = "0" + +LABEL_temp187 = "dimm11_temp" +WARNHI_temp187 = "85000" +WARNLO_temp187 = "0" +CRITHI_temp187 = "95000" +CRITLO_temp187 = "0" + +LABEL_temp189 = "dimm12_temp" +WARNHI_temp189 = "85000" +WARNLO_temp189 = "0" +CRITHI_temp189 = "95000" +CRITLO_temp189 = "0" + +LABEL_temp191 = "dimm13_temp" +WARNHI_temp191 = "85000" +WARNLO_temp191 = "0" +CRITHI_temp191 = "95000" +CRITLO_temp191 = "0" + +LABEL_temp193 = "dimm14_temp" +WARNHI_temp193 = "85000" +WARNLO_temp193 = "0" +CRITHI_temp193 = "95000" +CRITLO_temp193 = "0" + +LABEL_temp195 = "dimm15_temp" +WARNHI_temp195 = "85000" +WARNLO_temp195 = "0" +CRITHI_temp195 = "95000" +CRITLO_temp195 = "0" + +LABEL_temp213 = "dimm24_temp" +WARNHI_temp213 = "85000" +WARNLO_temp213 = "0" +CRITHI_temp213 = "95000" +CRITLO_temp213 = "0" + +LABEL_temp215 = "dimm25_temp" +WARNHI_temp215 = "85000" +WARNLO_temp215 = "0" +CRITHI_temp215 = "95000" +CRITLO_temp215 = "0" + +LABEL_temp217 = "dimm26_temp" +WARNHI_temp217 = "85000" +WARNLO_temp217 = "0" +CRITHI_temp217 = "95000" +CRITLO_temp217 = "0" + +LABEL_temp219 = "dimm27_temp" +WARNHI_temp219 = "85000" +WARNLO_temp219 = "0" +CRITHI_temp219 = "95000" +CRITLO_temp219 = "0" + +LABEL_temp221 = "dimm28_temp" +WARNHI_temp221 = "85000" +WARNLO_temp221 = "0" +CRITHI_temp221 = "95000" +CRITLO_temp221 = "0" + +LABEL_temp223 = "dimm29_temp" +WARNHI_temp223 = "85000" +WARNLO_temp223 = "0" +CRITHI_temp223 = "95000" +CRITLO_temp223 = "0" + +LABEL_temp225 = "dimm30_temp" +WARNHI_temp225 = "85000" +WARNLO_temp225 = "0" +CRITHI_temp225 = "95000" +CRITLO_temp225 = "0" + +LABEL_temp227 = "dimm31_temp" +WARNHI_temp227 = "85000" +WARNLO_temp227 = "0" +CRITHI_temp227 = "95000" +CRITLO_temp227 = "0" + diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf new file mode 100644 index 0000000000..81d3aa5190 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-12v.conf @@ -0,0 +1,2 @@ +LABEL_in1=12V +GAIN_in1=7.5
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf new file mode 100644 index 0000000000..d7e4a92e83 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-3v.conf @@ -0,0 +1,2 @@ +LABEL_in1=3V +GAIN_in1=3
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf new file mode 100644 index 0000000000..b9ea49ef06 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-5v.conf @@ -0,0 +1,2 @@ +LABEL_in1=5V +GAIN_in1=3
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf new file mode 100644 index 0000000000..6f7341cd55 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-battery.conf @@ -0,0 +1,9 @@ +LABEL_in1=vbat +GAIN_in1=2.368 + +# GPIOR3 needs to be pulled high for battery voltage reading +GPIOCHIP_in1=0 +GPIO_in1=139 + +# Read it every day so it does not impact battery life +INTERVAL=86400000000
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf new file mode 100644 index 0000000000..4b8261f400 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vcs0 +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf new file mode 100644 index 0000000000..02732c677c --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vcs1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vcs1 +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf new file mode 100644 index 0000000000..f919140571 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdd0 +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf new file mode 100644 index 0000000000..fe188856ba --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdd1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdd1 +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf new file mode 100644 index 0000000000..3a11fd2466 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddra.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddra +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf new file mode 100644 index 0000000000..e9811cb1e7 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrb.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrb +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf new file mode 100644 index 0000000000..1753d93a5d --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrc.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrc +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf new file mode 100644 index 0000000000..8fbfcd330e --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vddrd.conf @@ -0,0 +1,2 @@ +LABEL_in1=vddrd +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf new file mode 100644 index 0000000000..afe6fcead4 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdn0 +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf new file mode 100644 index 0000000000..5141b29699 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vdn1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vdn1 +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf new file mode 100644 index 0000000000..bf8e352e52 --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio0.conf @@ -0,0 +1,2 @@ +LABEL_in1=vio0 +GAIN_in1=1 diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf new file mode 100644 index 0000000000..d81958530e --- /dev/null +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/mihawk/obmc/hwmon/iio-hwmon-vio1.conf @@ -0,0 +1,2 @@ +LABEL_in1=vio1 +GAIN_in1=1
\ No newline at end of file diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend index d9d606bd2b..420c0e049e 100644 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend +++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend @@ -34,9 +34,38 @@ CHIPS_append_swift = " \ bus@1e78a000/i2c-bus@3c0/ir35221@71 \ bus@1e78a000/i2c-bus@3c0/ir35221@72 \ " +CHIPS_mihawk = " \ + bus@1e78a000/i2c-bus@100/power-supply@58 \ + bus@1e78a000/i2c-bus@100/power-supply@5b \ + bus@1e78a000/i2c-bus@140/ir35221@70 \ + bus@1e78a000/i2c-bus@140/ir35221@72 \ + bus@1e78a000/i2c-bus@180/ir35221@70 \ + bus@1e78a000/i2c-bus@180/ir35221@72 \ + bus@1e78a000/i2c-bus@400/tmp275@48 \ + bus@1e78a000/i2c-bus@400/tmp275@49 \ + pwm-tacho-controller@1e786000 \ + bus@1e78a000/i2c-bus@400/emc1403@4c \ + bus@1e78a000/i2c-bus@440/pca9545@70/i2c@3/tmp275@48 \ + " ITEMSFMT = "ahb/apb/{0}.conf" ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}" +ITEMS_append_mihawk += " iio-hwmon-vdd0.conf" +ITEMS_append_mihawk += " iio-hwmon-vdd1.conf" +ITEMS_append_mihawk += " iio-hwmon-vcs0.conf" +ITEMS_append_mihawk += " iio-hwmon-vcs1.conf" +ITEMS_append_mihawk += " iio-hwmon-vdn0.conf" +ITEMS_append_mihawk += " iio-hwmon-vdn1.conf" +ITEMS_append_mihawk += " iio-hwmon-vio0.conf" +ITEMS_append_mihawk += " iio-hwmon-vio1.conf" +ITEMS_append_mihawk += " iio-hwmon-vddra.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrb.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrc.conf" +ITEMS_append_mihawk += " iio-hwmon-vddrd.conf" +ITEMS_append_mihawk += " iio-hwmon-12v.conf" +ITEMS_append_mihawk += " iio-hwmon-5v.conf" +ITEMS_append_mihawk += " iio-hwmon-3v.conf" +ITEMS_append_mihawk += " iio-hwmon-battery.conf" OCCS = " \ 00--00--00--06/sbefifo1-dev0/occ-hwmon.1 \ @@ -48,6 +77,8 @@ OCCITEMS = "${@compose_list(d, 'OCCSFMT', 'OCCS')}" ENVS = "obmc/hwmon/{0}" SYSTEMD_ENVIRONMENT_FILE_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'ENVS', 'ITEMS')}" SYSTEMD_ENVIRONMENT_FILE_${PN}_append_ibm-ac-server = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_mihawk = " ${@compose_list(d, 'ENVS', 'ITEMS')}" +SYSTEMD_ENVIRONMENT_FILE_${PN}_append_mihawk = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}" SYSTEMD_ENVIRONMENT_FILE_max31785-msl_append_ibm-ac-server = " obmc/hwmon-max31785/max31785.conf" SYSTEMD_LINK_max31785-msl_append_ibm-ac-server = " ../phosphor-max31785-msl@.service:multi-user.target.wants/phosphor-max31785-msl@${MACHINE}.service" |