Make libpeci dependency optional
This option is disabled by default as libpeci uses the old out-of-tree
PECI driver's API and is thus incompatible with current OpenBMC kernels.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Change-Id: I3516b6937a4da3d64e700eb727d67bdb4b8e8fee
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b8457ce..781209b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,8 +10,9 @@
OFF)
option (YOCTO "Enable Building in Yocto" OFF)
+option (LIBPECI "Enable use of old peci driver API via libpeci" OFF)
-if (NOT YOCTO)
+if (LIBPECI AND NOT YOCTO)
add_dependencies (host-error-monitor libpeci)
externalproject_add (libpeci PREFIX ${CMAKE_BINARY_DIR}/libpeci
GIT_REPOSITORY https://github.com/openbmc/libpeci.git
@@ -34,7 +35,7 @@
target_include_directories (host-error-monitor PRIVATE ${CMAKE_SOURCE_DIR})
-target_link_libraries (host-error-monitor sdbusplus -lsystemd gpiodcxx peci)
+target_link_libraries (host-error-monitor sdbusplus -lsystemd gpiodcxx)
include_directories (${CMAKE_CURRENT_SOURCE_DIR}/include)
@@ -53,6 +54,11 @@
add_definitions (-DBOOST_NO_TYPEID)
add_definitions (-DBOOST_ASIO_DISABLE_THREADS)
+if (LIBPECI)
+ add_definitions (-DLIBPECI)
+ target_link_libraries (host-error-monitor peci)
+endif ()
+
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti")
diff --git a/include/error_monitors/ierr_monitor.hpp b/include/error_monitors/ierr_monitor.hpp
index 213eb2e..7fda1af 100644
--- a/include/error_monitors/ierr_monitor.hpp
+++ b/include/error_monitors/ierr_monitor.hpp
@@ -82,6 +82,7 @@
bool checkIERRCPUs()
{
bool cpuIERRFound = false;
+#ifdef LIBPECI
for (size_t cpu = 0, addr = MIN_CLIENT_ADDR; addr <= MAX_CLIENT_ADDR;
cpu++, addr++)
{
@@ -300,6 +301,7 @@
}
}
}
+#endif
return cpuIERRFound;
}
diff --git a/include/host_error_monitor.hpp b/include/host_error_monitor.hpp
index d13202c..c28576f 100644
--- a/include/host_error_monitor.hpp
+++ b/include/host_error_monitor.hpp
@@ -14,7 +14,11 @@
// limitations under the License.
*/
#pragma once
+#ifdef LIBPECI
#include <peci.h>
+#else
+#define MAX_CPUS 8
+#endif
#include <sdbusplus/asio/object_server.hpp>
@@ -97,6 +101,7 @@
"com.intel.crashdump.Stored", "GenerateStoredLog", triggerType);
}
+#ifdef LIBPECI
static inline bool peciError(EPECIStatus peciStatus, uint8_t cc)
{
return (
@@ -111,6 +116,7 @@
<< addr << ". Error: " << peciStatus << ": cc: 0x" << std::hex
<< cc << "\n";
}
+#endif
static void beep(std::shared_ptr<sdbusplus::asio::connection> conn,
const uint8_t& beepPriority)
@@ -133,6 +139,7 @@
std::bitset<MAX_CPUS>& errPinCPUs)
{
errPinCPUs.reset();
+#ifdef LIBPECI
for (size_t cpu = 0, addr = MIN_CLIENT_ADDR; addr <= MAX_CLIENT_ADDR;
cpu++, addr++)
{
@@ -194,6 +201,7 @@
}
}
}
+#endif
}
} // namespace host_error_monitor