summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDeepak Kodihalli <dkodihal@in.ibm.com>2017-03-16 06:32:12 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2017-03-16 14:55:10 -0400
commit1f09d4ae2aa35b469578ff284c98579d23cdac4d (patch)
treee414ee93b46a54a493a17551ae1fda2a1968c009
parent3aa591fe9b9509fbdb0ea41ae6763448393294ac (diff)
downloadtalos-openbmc-1f09d4ae2aa35b469578ff284c98579d23cdac4d.tar.gz
talos-openbmc-1f09d4ae2aa35b469578ff284c98579d23cdac4d.zip
Add virtual/phosphor-logging-callouts
This virtual generates mappings between sysfs device paths and inventory items. Add a native recipe that builds the configuration from MRW. Set this recipe as the default for OpenPOWER systems. Resolves openbmc/openbmc#1093 Resolves openbmc/openbmc#1249 Change-Id: If67b4ef0850910a076ca212197a4bd0e704d0266 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
-rw-r--r--meta-phosphor/classes/phosphor-logging.bbclass1
-rw-r--r--meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb18
-rw-r--r--meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example/callouts.yaml1
-rw-r--r--meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb25
-rw-r--r--meta-phosphor/common/recipes-phosphor/logging/phosphor-logging.bb9
-rw-r--r--meta-phosphor/conf/distro/include/phosphor-defaults.inc9
6 files changed, 62 insertions, 1 deletions
diff --git a/meta-phosphor/classes/phosphor-logging.bbclass b/meta-phosphor/classes/phosphor-logging.bbclass
new file mode 100644
index 000000000..18f53d434
--- /dev/null
+++ b/meta-phosphor/classes/phosphor-logging.bbclass
@@ -0,0 +1 @@
+callouts_datadir="${datadir}/phosphor-logging/callouts"
diff --git a/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb
new file mode 100644
index 000000000..f76d202e1
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Generated callout information for phosphor-logging"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-logging
+
+SRC_URI += "file://callouts.yaml"
+
+PROVIDES += "virtual/phosphor-logging-callouts"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${callouts_datadir}
+ install -d ${DEST}
+ install callouts.yaml ${DEST}
+}
diff --git a/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example/callouts.yaml b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example/callouts.yaml
new file mode 100644
index 000000000..5b92a04c4
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-example/callouts.yaml
@@ -0,0 +1 @@
+/sys/devices/device: /system/chassis/motherboard/device
diff --git a/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb
new file mode 100644
index 000000000..49816260a
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging-callouts-mrw-native.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Generated callout information for phosphor-logging"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-logging
+
+DEPENDS += " \
+ mrw-native \
+ mrw-perl-tools-native \
+ "
+
+PROVIDES += "virtual/phosphor-logging-callouts"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${callouts_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_callouts.pl \
+ -m ${datadir}/obmc-mrw/${MACHINE}.xml \
+ -o ${DEST}/callouts.yaml
+}
diff --git a/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging.bb b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging.bb
index 14f2e6ebb..1d059c409 100644
--- a/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging.bb
+++ b/meta-phosphor/common/recipes-phosphor/logging/phosphor-logging.bb
@@ -8,6 +8,7 @@ inherit pythonnative
inherit obmc-phosphor-license
inherit obmc-phosphor-dbus-service
inherit phosphor-dbus-interfaces
+inherit phosphor-logging
DBUS_SERVICE_${PN} += "xyz.openbmc_project.Logging.service"
@@ -17,6 +18,7 @@ DEPENDS += "python-mako-native"
DEPENDS += "python-pyyaml-native"
DEPENDS += "sdbusplus sdbusplus-native"
DEPENDS += "phosphor-dbus-interfaces"
+DEPENDS += "virtual/phosphor-logging-callouts"
RDEPENDS_${PN} += "sdbusplus phosphor-dbus-interfaces"
PROVIDES += "virtual/obmc-logging-mgmt"
RPROVIDES_${PN} += "virtual-obmc-logging-mgmt"
@@ -26,4 +28,9 @@ SRCREV = "9cfe9f38d9ed2ddedea6d58040bed6bfc0831f08"
S = "${WORKDIR}/git"
-EXTRA_OECONF = "YAML_DIR=${STAGING_DIR_NATIVE}${yaml_dir}"
+EXTRA_OECONF = " \
+ YAML_DIR=${STAGING_DIR_NATIVE}${yaml_dir} \
+ CALLOUTS_YAML=${STAGING_DIR_NATIVE}${callouts_datadir}/callouts.yaml \
+ "
+
+TARGET_CXXFLAGS += "-DPROCESS_META"
diff --git a/meta-phosphor/conf/distro/include/phosphor-defaults.inc b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
index d9d532a72..f78ea3328 100644
--- a/meta-phosphor/conf/distro/include/phosphor-defaults.inc
+++ b/meta-phosphor/conf/distro/include/phosphor-defaults.inc
@@ -116,6 +116,15 @@ PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native ?= \
PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory ?= \
"${@cf_enabled(d, 'obmc-mrw', 'phosphor-ipmi-sensor-inventory-mrw-native', 'phosphor-ipmi-sensor-inventory-example-native')}"
+# The phosphor-logging application has a data driven plugin that adds FRU
+# callout information to error logs, when applications generating error logs
+# add the requisite callout metadata to the systemd journal. The plugin requires
+# an input mapping of Linux sysfs devices to OpenBMC DBus objects.
+# This virtual is a native recipe that provides that mapping by installing
+# configuration files in the format and native sysroot location expected by
+# the phosphor-logging build process in the native sysroot.
+PREFERRED_PROVIDER_virtual/phosphor-logging-callouts ?= \
+ "${@cf_enabled(d, 'obmc-mrw', 'phosphor-logging-callouts-mrw-native', 'phosphor-logging-callouts-example-native')}"
OBMC_DBUS_PATH_ROOT ?= "/xyz/openbmc_project"
OBMC_DBUS_IFACE_ROOT ?= "xyz.openbmc_project"
OpenPOWER on IntegriCloud