summaryrefslogtreecommitdiffstats
path: root/meta-openpower/common/recipes-phosphor/debug
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openpower/common/recipes-phosphor/debug')
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.bb77
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.inc5
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-checkstop@.service13
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog-timeout@.service9
-rw-r--r--meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog@.service9
5 files changed, 113 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"
diff --git a/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.inc b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.inc
new file mode 100644
index 000000000..4b1435625
--- /dev/null
+++ b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector.inc
@@ -0,0 +1,5 @@
+HOMEPAGE = "https://github.com/openbmc/openpower-debug-collector"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+SRC_URI += "git://github.com/openbmc/openpower-debug-collector"
+SRCREV = "5bc32f24a05de75b3a11d93cdae7b99ee718efcb"
diff --git a/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-checkstop@.service b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-checkstop@.service
new file mode 100644
index 000000000..5e8cf3dcd
--- /dev/null
+++ b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-checkstop@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenPOWER debug data collector for host checkstop
+Before=obmc-host-quiesce@%i.target
+
+[Service]
+# Adding 10 seconds to allow OCC to collect debug data
+# before processing checkstop. OCC has to wait 5 seconds
+# for our driver to stop using the SBEFIFO.
+ExecStart={base_bindir}/sleep 10
+ExecStart=/usr/bin/env checkstop_app
+SyslogIdentifier=checkstop_app
+Type=oneshot
+Restart=no
diff --git a/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog-timeout@.service b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog-timeout@.service
new file mode 100644
index 000000000..55ba40351
--- /dev/null
+++ b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog-timeout@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=OpenPOWER debug data collector for host %I watchdog timeout
+Before=obmc-host-quiesce@%i.target
+
+[Service]
+ExecStart=/usr/bin/env openpower-proc-control collectSBEHBData
+SyslogIdentifier=openpower-proc-control
+Type=oneshot
+Restart=no
diff --git a/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog@.service b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog@.service
new file mode 100644
index 000000000..6fc3fec82
--- /dev/null
+++ b/meta-openpower/common/recipes-phosphor/debug/openpower-debug-collector/openpower-debug-collector-watchdog@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=OpenPOWER debug data collector for host watchdog timeout
+Before=obmc-host-quiesce@%i.target
+
+[Service]
+ExecStart=/usr/bin/env watchdog_timeout
+SyslogIdentifier=watchdog_timeout
+Type=oneshot
+Restart=no
OpenPOWER on IntegriCloud