summaryrefslogtreecommitdiffstats
path: root/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb')
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb77
1 files changed, 77 insertions, 0 deletions
diff --git a/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb
new file mode 100644
index 000000000..ac4cd0141
--- /dev/null
+++ b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb
@@ -0,0 +1,77 @@
+SUMMARY = "OpenPOWER Debug Collector"
+DESCRIPTION = "Application to log error during host checkstop and watchdog timeout"
+
+PR = "r1"
+
+inherit autotools \
+ pkgconfig \
+ obmc-phosphor-systemd \
+ pythonnative \
+ phosphor-dbus-yaml
+
+require ${PN}.inc
+
+DEPENDS += " \
+ phosphor-logging \
+ autoconf-archive-native \
+ sdbus++-native \
+ "
+RDEPENDS_${PN} += " \
+ phosphor-logging \
+ "
+
+S = "${WORKDIR}/git"
+
+# This provides below 2 applications that are called into in case
+# of host checkstop and host watchdog timeout respectively.
+APPS = "checkstop watchdog"
+
+DEBUG_TMPL = "openpower-debug-collector-{0}@.service"
+SYSTEMD_SERVICE_${PN} += "${@compose_list(d, 'DEBUG_TMPL', 'APPS')}"
+
+# This needs to be executed as part of host crash
+CHECKSTOP_TMPL = "openpower-debug-collector-checkstop@.service"
+CRASH_TGTFMT = "obmc-host-crash@{0}.target"
+CHECKSTOP_INSTFMT = "openpower-debug-collector-checkstop@{0}.service"
+CRASH_CHECKSTOP_FMT = "../${CHECKSTOP_TMPL}:${CRASH_TGTFMT}.wants/${CHECKSTOP_INSTFMT}"
+
+# Make watchdog part of obmc-host-timeout target
+WDOG_TMPL = "openpower-debug-collector-watchdog@.service"
+TIMEOUT_TGTFMT = "obmc-host-timeout@{0}.target"
+WDOG_INSTFMT = "openpower-debug-collector-watchdog@{0}.service"
+TIMEOUT_WDOG_FMT = "../${WDOG_TMPL}:${TIMEOUT_TGTFMT}.wants/${WDOG_INSTFMT}"
+
+# Capture debug information on watchdog timeout
+DEBUG_WD_TIMEOUT_TMPL = "openpower-debug-collector-watchdog-timeout@.service"
+DEBUG_WD_TIMEOUT_INSTFMT = "openpower-debug-collector-watchdog-timeout@{0}.service"
+DEBUG_WD_TIMEOUT_FMT = "../${DEBUG_WD_TIMEOUT_TMPL}:${TIMEOUT_TGTFMT}.wants/${DEBUG_WD_TIMEOUT_INSTFMT}"
+
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'CRASH_CHECKSTOP_FMT', 'OBMC_HOST_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'TIMEOUT_WDOG_FMT', 'OBMC_HOST_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'DEBUG_WD_TIMEOUT_FMT', 'OBMC_HOST_INSTANCES')}"
+
+# Do not depend on phosphor-logging for native build
+DEPENDS_remove_class-native = "phosphor-logging"
+
+# Do not depend on phosphor-logging for native SDK build
+DEPENDS_remove_class-nativesdk = "phosphor-logging"
+
+# Provide a means to enable/disable install_error_yaml feature
+PACKAGECONFIG ??= "install_error_yaml"
+PACKAGECONFIG[install_error_yaml] = " \
+ --enable-install_error_yaml, \
+ --disable-install_error_yaml, ,\
+ "
+
+# Enable install_error_yaml during native and native SDK build
+PACKAGECONFIG_add_class-native = "install_error_yaml"
+PACKAGECONFIG_add_class-nativesdk = "install_error_yaml"
+
+# Disable install_error_yaml during target build
+PACKAGECONFIG_remove_class-target = "install_error_yaml"
+
+# Disable generating elog error header file during bitbake. Applications
+# should be using the elog header generated by phosphor-logging recipe
+EXTRA_OECONF += "--disable-gen_errors"
+
+BBCLASSEXTEND += "native nativesdk"
OpenPOWER on IntegriCloud