Add recipe for openpower-vpd-parser

openpower-vpd-parser includes an application which reads OpenPOWER VPD
from an eeprom, parses it and writes the parsed content to the
inventory.

Change-Id: Id50d2c48e1f084777dd445753779426045c52428
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/classes/openpower-fru-vpd.bbclass b/meta-openbmc-machines/meta-openpower/classes/openpower-fru-vpd.bbclass
index 19f34e0..e86a219 100644
--- a/meta-openbmc-machines/meta-openpower/classes/openpower-fru-vpd.bbclass
+++ b/meta-openbmc-machines/meta-openpower/classes/openpower-fru-vpd.bbclass
@@ -1,3 +1,4 @@
 vpdlayout_datadir="${datadir}/openpower-fru-vpd/vpdlayout"
 inventory_datadir_name="/openpower-fru-inventory/inventory"
 inventory_datadir_native="${datadir}${inventory_datadir_name}"
+inventory_envdir="${envfiledir}/obmc"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.bb b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.bb
new file mode 100644
index 0000000..801b85d
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Parser for OpenPOWER-format FRU VPD"
+DESCRIPTION = "Parse OpenPOWER-format FRU VPD and update inventory"
+PR = "r1"
+
+inherit autotools pkgconfig
+inherit openpower-fru-vpd
+inherit pythonnative
+inherit obmc-phosphor-systemd
+
+require ${PN}.inc
+
+DEPENDS += " \
+        virtual/openpower-fru-vpd-layout \
+        virtual/openpower-fru-inventory \
+        sdbusplus \
+        phosphor-logging \
+        python-mako-native \
+        python-pyyaml-native \
+        autoconf-archive-native \
+        "
+
+RDEPENDS_${PN} += " \
+               sdbusplus \
+               phosphor-logging \
+               "
+
+SYSTEMD_SERVICE_${PN} += "op-vpd-parser.service"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "FRU_YAML=${STAGING_DIR_NATIVE}${vpdlayout_datadir}/layout.yaml"
+
+do_install_append() {
+        SRC=${STAGING_DATADIR_NATIVE}${inventory_datadir_name}
+        DEST=${D}${inventory_envdir}
+        install -d ${DEST}
+        install ${SRC}/inventory ${DEST}
+}
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.inc b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.inc
new file mode 100644
index 0000000..35bb81d
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd.inc
@@ -0,0 +1,5 @@
+HOMEPAGE = "https://github.com/openbmc/openpower-vpd-parser"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+SRC_URI += "git://github.com/openbmc/openpower-vpd-parser"
+SRCREV = "cd6d2416f02125819605f1274c7cf50c59d6ee2a"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd/op-vpd-parser.service b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd/op-vpd-parser.service
new file mode 100644
index 0000000..4c0add1
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/vpd/openpower-fru-vpd/op-vpd-parser.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Read OpenPOWER-format VPD from EEPROM
+ConditionFileNotEmpty={envfiledir}/obmc/inventory
+Wants=mapper-wait@-xyz-openbmc_project-Inventory-Manager.service
+After=mapper-wait@-xyz-openbmc_project-Inventory-Manager.service
+
+[Service]
+Restart=no
+Type=oneshot
+EnvironmentFile={envfiledir}/obmc/inventory
+ExecStart={sbindir}/openpower-read-vpd --vpd=$EEPROM --fru=$FRUS --object=$PATHS