diff options
Diffstat (limited to 'meta-openpower/recipes-phosphor/debug/openpower-debug-collector.bb')
-rw-r--r-- | meta-openpower/recipes-phosphor/debug/openpower-debug-collector.bb | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/meta-openpower/recipes-phosphor/debug/openpower-debug-collector.bb b/meta-openpower/recipes-phosphor/debug/openpower-debug-collector.bb new file mode 100644 index 000000000..ac4cd0141 --- /dev/null +++ b/meta-openpower/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" |