diff options
author | Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com> | 2024-04-10 15:06:19 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2024-04-15 22:15:32 +0300 |
commit | 5fd67bdf07831c2e60eb26acb3be9212eb7fe4b4 (patch) | |
tree | 9402735c5a3335d2c0f2693b2bb31c4ef65b9287 /meta-facebook/meta-yosemite4/recipes-phosphor/gpio | |
parent | 3b0a976b2f2d9807b9ea1c3bac5e8faf588e881d (diff) | |
download | openbmc-5fd67bdf07831c2e60eb26acb3be9212eb7fe4b4.tar.xz |
meta-facebook: yosemite4: Rescan WF BIC and CXL EID
The WF BIC and CXL might not ready when BMC setting up MCTP network.
Add rescan mechanism to make sure it get the EIDs.
Change-Id: I7d57f549a4b7c9441eadab08d4df0d1e4b46e4d1
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
Diffstat (limited to 'meta-facebook/meta-yosemite4/recipes-phosphor/gpio')
4 files changed, 57 insertions, 8 deletions
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic new file mode 100644 index 0000000000..fb4b9700aa --- /dev/null +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic @@ -0,0 +1,37 @@ +#!/bin/bash + +sd_eid=$(($1 * 10)) +wf_eid=$(($1 * 10 + 2)) + +# It takes about 6 seconds for setting up MCTP endpoint after slot plugged-in +sleep 10 +# Check if we got WF BIC's EID +wf_eid=$(($1 * 10 + 2)) +busctl get-property xyz.openbmc_project.MCTP /xyz/openbmc_project/mctp/1/"$wf_eid" xyz.openbmc_project.MCTP.Endpoint EID +status=$? +if [ $status -eq 0 ]; then + exit 0 +fi + +count=0 +while [ $count -lt 3 ]; do + # Check WF BIC status + output=$(pldmtool raw -m "$sd_eid" -d 0x80 0x02 0x3A 0x4c 0xff) + status=$? + if [ $status -ne 0 ]; then + echo "Error executing pldmtool command" + exit 1 + fi + # Get data at Rx line + rx_data=$(echo "$output" | grep "Rx:" | awk '{for (i=3; i<=NF; i++) print $i}') + # Get last byte + wf_ready=$(echo "$rx_data" | tail -n 1) + # 02 means WF BIC ready, otherwise 01. + if [ "$wf_ready" == "02" ]; then + busctl call xyz.openbmc_project.MCTP /xyz/openbmc_project/mctp au.com.CodeConstruct.MCTP SetupEndpointByConfigPath s /xyz/openbmc_project/inventory/system/board/Yosemite_4_Wailua_Falls_Slot_"$1"/BIC + break + else + count=$((count + 1)) + sleep 2 + fi +done diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic@.service b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic@.service new file mode 100644 index 0000000000..08fb2b15f2 --- /dev/null +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/rescan-wf-bic@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Rescan WF BIC's EID for slot %i + +[Service] +Type=oneshot +ExecStart=/usr/libexec/phosphor-gpio-monitor/rescan-wf-bic %i +SyslogIdentifier=rescan-wf-bic%i diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json index 925719c0d5..fc7169f599 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json @@ -15,7 +15,7 @@ "GpioNum": 10, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@1.service", "rescan-fru-device@1.service"], + "RISING": ["probe-slot-device@1.service", "rescan-fru-device@1.service", "rescan-wf-bic@1.service"], "FALLING": ["rescan-fru-device@1.service"] }, "Continue": true @@ -26,7 +26,7 @@ "GpioNum": 11, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@2.service", "rescan-fru-device@2.service"], + "RISING": ["probe-slot-device@2.service", "rescan-fru-device@2.service", "rescan-wf-bic@2.service"], "FALLING": ["rescan-fru-device@2.service"] }, "Continue": true @@ -37,7 +37,7 @@ "GpioNum": 12, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@3.service", "rescan-fru-device@3.service"], + "RISING": ["probe-slot-device@3.service", "rescan-fru-device@3.service", "rescan-wf-bic@3.service"], "FALLING": ["rescan-fru-device@3.service"] }, "Continue": true @@ -48,7 +48,7 @@ "GpioNum": 13, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@4.service", "rescan-fru-device@4.service"], + "RISING": ["probe-slot-device@4.service", "rescan-fru-device@4.service", "rescan-wf-bic@4.service"], "FALLING": ["rescan-fru-device@4.service"] }, "Continue": true @@ -59,7 +59,7 @@ "GpioNum": 190, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@5.service", "rescan-fru-device@5.service"], + "RISING": ["probe-slot-device@5.service", "rescan-fru-device@5.service", "rescan-wf-bic@5.service"], "FALLING": ["rescan-fru-device@5.service"] }, "Continue": true @@ -70,7 +70,7 @@ "GpioNum": 191, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@6.service", "rescan-fru-device@6.service"], + "RISING": ["probe-slot-device@6.service", "rescan-fru-device@6.service", "rescan-wf-bic@6.service"], "FALLING": ["rescan-fru-device@6.service"] }, "Continue": true @@ -81,7 +81,7 @@ "GpioNum": 195, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@7.service", "rescan-fru-device@7.service"], + "RISING": ["probe-slot-device@7.service", "rescan-fru-device@7.service", "rescan-wf-bic@7.service"], "FALLING": ["rescan-fru-device@7.service"] }, "Continue": true @@ -92,7 +92,7 @@ "GpioNum": 202, "EventMon": "BOTH", "Targets": { - "RISING": ["probe-slot-device@8.service", "rescan-fru-device@8.service"], + "RISING": ["probe-slot-device@8.service", "rescan-fru-device@8.service", "rescan-wf-bic@8.service"], "FALLING": ["rescan-fru-device@8.service"] }, "Continue": true diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend index 9033632150..14057f6b95 100644 --- a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend +++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend @@ -12,6 +12,8 @@ SRC_URI += "file://yosemite4-phosphor-multi-gpio-monitor.json \ file://rescan-fru-device@.service \ file://rescan-fru-device \ file://slot-hot-plug@.service \ + file://rescan-wf-bic \ + file://rescan-wf-bic@.service \ " RDEPENDS:${PN}:append = " bash" @@ -25,6 +27,7 @@ SYSTEMD_SERVICE:${PN} += " \ slot-hot-plug@.service \ setup-nic-endpoint-slot@.service \ remove-nic-endpoint-slot@.service \ + rescan-wf-bic@.service \ " SYSTEMD_AUTO_ENABLE = "enable" @@ -39,9 +42,11 @@ do_install:append:() { install -m 0644 ${WORKDIR}/slot-hot-plug@.service ${D}${systemd_system_unitdir}/slot-hot-plug@.service install -m 0644 ${WORKDIR}/setup-nic-endpoint-slot@.service ${D}${systemd_system_unitdir}/ install -m 0644 ${WORKDIR}/remove-nic-endpoint-slot@.service ${D}${systemd_system_unitdir}/ + install -m 0644 ${WORKDIR}/rescan-wf-bic@.service ${D}${systemd_system_unitdir}/ install -d ${D}${libexecdir}/${PN} install -m 0755 ${WORKDIR}/probe-slot-device ${D}${libexecdir}/${PN}/ install -m 0755 ${WORKDIR}/rescan-fru-device ${D}${libexecdir}/${PN}/ + install -m 0755 ${WORKDIR}/rescan-wf-bic ${D}${libexecdir}/${PN}/ install -d ${D}/${bindir} install -m 0755 ${WORKDIR}/configure-nic-mctp-endpoint.sh ${D}/${bindir}/ } |