summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch')
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch194
1 files changed, 194 insertions, 0 deletions
diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch
new file mode 100644
index 000000000..17f16cce5
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch
@@ -0,0 +1,194 @@
+From 1b2df626b20aa14c0de7f46915758d10394d01b4 Mon Sep 17 00:00:00 2001
+From: "Jason M. Bills" <jason.m.bills@intel.com>
+Date: Tue, 15 Dec 2020 10:05:31 -0800
+Subject: [PATCH] Configure host error monitors for meta-wht
+
+The new host error monitor architecture allows the list of error
+monitors to be customized through a platform-specific patch file.
+
+This patch configures the host error monitors for meta-wht.
+
+Change-Id: I7070a3409b1471d7f9c93eca3e36b477f484e5d7
+Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
+---
+ include/error_monitors.hpp | 137 ++++++++++++++++++++++++++++++++++---
+ 1 file changed, 129 insertions(+), 8 deletions(-)
+
+diff --git a/include/error_monitors.hpp b/include/error_monitors.hpp
+index 55b8790d..8d1651d3 100644
+--- a/include/error_monitors.hpp
++++ b/include/error_monitors.hpp
+@@ -14,23 +14,88 @@
+ // limitations under the License.
+ */
+ #pragma once
++#include <error_monitors/cpu_mismatch_monitor.hpp>
++#include <error_monitors/cpu_thermtrip_monitor.hpp>
++#include <error_monitors/err2_monitor.hpp>
++#include <error_monitors/err_pin_monitor.hpp>
++#include <error_monitors/ierr_monitor.hpp>
++#include <error_monitors/mem_thermtrip_monitor.hpp>
++#include <error_monitors/pch_thermtrip_monitor.hpp>
++#include <error_monitors/smi_monitor.hpp>
++#include <error_monitors/vr_hot_monitor.hpp>
+ #include <sdbusplus/asio/object_server.hpp>
+-// #include <error_monitors/smi_monitor.hpp>
+
+ #include <memory>
+
+ namespace host_error_monitor::error_monitors
+ {
+ // Error signals to monitor
+-// static std::unique_ptr<host_error_monitor::smi_monitor::SMIMonitor>
+-// smiMonitor;
++static std::unique_ptr<host_error_monitor::smi_monitor::SMIMonitor> smiMonitor;
++static std::unique_ptr<
++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>
++ cpu1MismatchMonitor;
++static std::unique_ptr<
++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>
++ cpu2MismatchMonitor;
++static std::unique_ptr<host_error_monitor::err_pin_monitor::ErrPinMonitor>
++ err0Monitor;
++static std::unique_ptr<host_error_monitor::err_pin_monitor::ErrPinMonitor>
++ err1Monitor;
++static std::unique_ptr<host_error_monitor::err2_monitor::Err2Monitor>
++ err2Monitor;
++static std::unique_ptr<host_error_monitor::ierr_monitor::IERRMonitor>
++ ierrMonitor;
++static std::unique_ptr<
++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>
++ cpu1ThermtripMonitor;
++static std::unique_ptr<
++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>
++ cpu2ThermtripMonitor;
++static std::unique_ptr<
++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>
++ mem1ThermtripMonitor;
++static std::unique_ptr<
++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>
++ mem2ThermtripMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu1VRHotMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu1MemABCDVRHotMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu1MemEFGHVRHotMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu2VRHotMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu2MemABCDVRHotMonitor;
++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor>
++ cpu2MemEFGHVRHotMonitor;
++static std::unique_ptr<
++ host_error_monitor::pch_thermtrip_monitor::PCHThermtripMonitor>
++ pchThermtripMonitor;
+
+ // Check if all the signal monitors started successfully
+ bool checkMonitors()
+ {
+ bool ret = true;
+
+- // ret &= smiMonitor->isValid();
++ ret &= smiMonitor->isValid();
++ ret &= cpu1MismatchMonitor->isValid();
++ ret &= cpu2MismatchMonitor->isValid();
++ ret &= err0Monitor->isValid();
++ ret &= err1Monitor->isValid();
++ ret &= err2Monitor->isValid();
++ ret &= ierrMonitor->isValid();
++ ret &= cpu1ThermtripMonitor->isValid();
++ ret &= cpu2ThermtripMonitor->isValid();
++ ret &= mem1ThermtripMonitor->isValid();
++ ret &= mem2ThermtripMonitor->isValid();
++ ret &= cpu1VRHotMonitor->isValid();
++ ret &= cpu1MemABCDVRHotMonitor->isValid();
++ ret &= cpu1MemEFGHVRHotMonitor->isValid();
++ ret &= cpu2VRHotMonitor->isValid();
++ ret &= cpu2MemABCDVRHotMonitor->isValid();
++ ret &= cpu2MemEFGHVRHotMonitor->isValid();
++ ret &= pchThermtripMonitor->isValid();
+
+ return ret;
+ }
+@@ -39,9 +104,59 @@ bool checkMonitors()
+ bool startMonitors(boost::asio::io_service& io,
+ std::shared_ptr<sdbusplus::asio::connection> conn)
+ {
+- // smiMonitor =
+- // std::make_unique<host_error_monitor::smi_monitor::SMIMonitor>(
+- // io, conn, "SMI");
++ smiMonitor = std::make_unique<host_error_monitor::smi_monitor::SMIMonitor>(
++ io, conn, "SMI");
++ cpu1MismatchMonitor = std::make_unique<
++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>(
++ io, conn, "CPU1_MISMATCH", 1);
++ cpu2MismatchMonitor = std::make_unique<
++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>(
++ io, conn, "CPU2_MISMATCH", 2);
++ err0Monitor =
++ std::make_unique<host_error_monitor::err_pin_monitor::ErrPinMonitor>(
++ io, conn, "CPU_ERR0", 0);
++ err1Monitor =
++ std::make_unique<host_error_monitor::err_pin_monitor::ErrPinMonitor>(
++ io, conn, "CPU_ERR1", 1);
++ err2Monitor =
++ std::make_unique<host_error_monitor::err2_monitor::Err2Monitor>(
++ io, conn, "CPU_ERR2");
++ ierrMonitor =
++ std::make_unique<host_error_monitor::ierr_monitor::IERRMonitor>(
++ io, conn, "CPU_CATERR");
++ cpu1ThermtripMonitor = std::make_unique<
++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>(
++ io, conn, "CPU1_THERMTRIP", 1, "CPU1_FIVR_FAULT");
++ cpu2ThermtripMonitor = std::make_unique<
++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>(
++ io, conn, "CPU2_THERMTRIP", 2, "CPU2_FIVR_FAULT");
++ mem1ThermtripMonitor = std::make_unique<
++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>(
++ io, conn, "CPU1_MEM_THERM_EVENT", 1);
++ mem2ThermtripMonitor = std::make_unique<
++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>(
++ io, conn, "CPU2_MEM_THERM_EVENT", 2);
++ cpu1VRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU1_VRHOT", "CPU 1");
++ cpu1MemABCDVRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU1_MEM_ABCD_VRHOT", "CPU 1 Memory ABCD");
++ cpu1MemEFGHVRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU1_MEM_EFGH_VRHOT", "CPU 1 Memory EFGH");
++ cpu2VRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU2_VRHOT", "CPU 2");
++ cpu2MemABCDVRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU2_MEM_ABCD_VRHOT", "CPU 2 Memory ABCD");
++ cpu2MemEFGHVRHotMonitor =
++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>(
++ io, conn, "CPU2_MEM_EFGH_VRHOT", "CPU 2 Memory EFGH");
++ pchThermtripMonitor = std::make_unique<
++ host_error_monitor::pch_thermtrip_monitor::PCHThermtripMonitor>(
++ io, conn, "PCH_BMC_THERMTRIP");
+
+ return checkMonitors();
+ }
+@@ -49,7 +164,13 @@ bool startMonitors(boost::asio::io_service& io,
+ // Notify the signal monitors of host on event
+ void sendHostOn()
+ {
+- // smiMonitor->hostOn();
++ smiMonitor->hostOn();
++ cpu1MismatchMonitor->hostOn();
++ cpu2MismatchMonitor->hostOn();
++ err0Monitor->hostOn();
++ err1Monitor->hostOn();
++ err2Monitor->hostOn();
++ ierrMonitor->hostOn();
+ }
+
+ } // namespace host_error_monitor::error_monitors
+--
+2.17.1
+