meta-fii/meta-kudo: support the scp update feature

1. add kudo-scp-update package to support scp update

Signed-off-by: Lancelot Kao <lancelot.kao@fii-usa.com>
Change-Id: I30e23ad270b87f52dcbf5fae54ada5b8a846612a
Signed-off-by: XP Chen <xiao-peng.chen@fii-na.com>
Signed-off-by: Mohaimen Alsamarai <Mohaimen.alsamarai@fii-na.com>
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb
new file mode 100644
index 0000000..8d2fb13
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Phosphor OpenBMC Kudo SCP Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo SCP Firmware Upgrade Comman Daemon"
+FILESEXTRAPATHS_prepend := "${THISDIR}/kudo-scp-update:"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+inherit obmc-phosphor-systemd
+
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-scp.json"
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-scpback.json"
+
+SRC_URI_append_kudo = " \
+    file://phosphor-ipmi-flash-scp-update.service \
+    file://phosphor-ipmi-flash-scpback-update.service \
+    file://config-scp.json \
+    file://config-scpback.json \
+    "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append_kudo = " \
+    phosphor-ipmi-flash-scp-update.service \
+    phosphor-ipmi-flash-scpback-update.service \
+    "
+
+do_install () {
+    install -d ${D}${datadir}/phosphor-ipmi-flash
+    install -m 0644 ${WORKDIR}/config-scp.json ${D}${datadir}/phosphor-ipmi-flash
+    install -m 0644 ${WORKDIR}/config-scpback.json ${D}${datadir}/phosphor-ipmi-flash
+
+    install -d ${D}${systemd_system_unitdir}
+    install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-scp-update.service ${D}${systemd_system_unitdir}
+    install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-scpback-update.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json
new file mode 100644
index 0000000..563238c
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json
@@ -0,0 +1,19 @@
+[{
+    "blob": "/flash/scp",
+    "handler": {
+        "type": "file",
+        "path": "/run/initramfs/scp-fw.slim"
+    },
+    "actions": {
+        "preparation": {
+            "type": "skip"
+        },
+        "verification": {
+            "type": "skip"
+        },
+        "update": {
+            "type": "systemd",
+            "unit": "phosphor-ipmi-flash-scp-update.service"
+        }
+    }
+}]
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json
new file mode 100644
index 0000000..0e6c614
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json
@@ -0,0 +1,20 @@
+[{
+    "blob": "/flash/scpb",
+    "handler": {
+        "type": "file",
+        "path": "/run/initramfs/scp-fw.slim"
+    },
+    "actions": {
+        "preparation": {
+            "type": "skip"
+        },
+        "verification": {
+            "type": "skip"
+        },
+        "update": {
+            "type": "systemd",
+            "unit": "phosphor-ipmi-flash-scpback-update.service"
+        }
+    }
+}]
+
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service
new file mode 100644
index 0000000..8d5e2da
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update main EEPROM SCP firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh scp /run/initramfs/scp-fw.slim
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-scp-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service
new file mode 100644
index 0000000..c247552
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update failover EEPROM SCP firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh scpback /run/initramfs/scp-fw.slim
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-scpback-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
index fe93898..e23aba4 100644
--- a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
+++ b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
@@ -30,4 +30,5 @@
     kudo-bios-update \
     kudo-bmc-update \
     kudo-cpld-update \
+    kudo-scp-update \
     "