meta-facebook: yosemite4: Fix do power policy fail problem

We found out the power policy failed after doing 12v cycle.
Because the 12v power on and cycles execute using pldmtool cmd,
we need to wait until the mctp connection is done, so it can send
cmd to BIC normally.


Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
Change-Id: I519340e786a5eaf4dcb27d0eff149c137658434d
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service
index b95bbf7..34fcb2a 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service
@@ -4,6 +4,7 @@
 [Service]
 Type=oneshot
 ExecStart=/usr/libexec/phosphor-state-manager/chassis-powercycle %i
+ExecStartPost=/usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done %i
 ExecStartPost=/bin/systemctl restart phosphor-discover-system-state@%i.service
 
 [Install]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service
index f147737..86f8e7e 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service
@@ -4,6 +4,7 @@
 [Service]
 Type=oneshot
 ExecStart=/usr/libexec/phosphor-state-manager/chassis-poweron %i
+ExecStartPost=/usr/libexec/phosphor-state-manager/wait-until-mctp-connection-done %i
 ExecStartPost=/bin/systemctl restart phosphor-discover-system-state@%i.service
 
 [Install]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/wait-until-mctp-connection-done b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/wait-until-mctp-connection-done
new file mode 100644
index 0000000..9273851
--- /dev/null
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/wait-until-mctp-connection-done
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+EID=$(($1*10))
+
+while true; do
+    busctl get-property xyz.openbmc_project.MCTP /xyz/openbmc_project/mctp/1/"$EID" xyz.openbmc_project.MCTP.Endpoint EID
+    isMctpConnect=$?;
+    echo $isMctpConnect
+    if [ $isMctpConnect -eq 0 ]; then
+        break;
+    fi
+    sleep 5;
+done
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager_%.bbappend b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager_%.bbappend
index e231984..a699610 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager_%.bbappend
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager_%.bbappend
@@ -34,6 +34,7 @@
     file://host-powercycle \
     file://host-powerreset \
     file://power-cmd \
+    file://wait-until-mctp-connection-done \
     "
 
 RDEPENDS:${PN}:append:yosemite4 = " bash"
@@ -51,6 +52,7 @@
     install -m 0777 ${WORKDIR}/host-powercycle ${D}${libexecdir}/${PN}/
     install -m 0777 ${WORKDIR}/host-powerreset ${D}${libexecdir}/${PN}/
     install -m 0777 ${WORKDIR}/power-cmd ${D}${libexecdir}/${PN}/
+    install -m 0777 ${WORKDIR}/wait-until-mctp-connection-done ${D}${libexecdir}/${PN}/
 }
 
 FILES:${PN} += " ${systemd_system_unitdir}/*.service"