summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta-facebook/meta-minerva/conf/machine/minerva.conf2
-rw-r--r--meta-facebook/meta-minerva/recipes-phosphor/images/fb-minerva-phosphor-image.inc4
-rw-r--r--meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle59
-rw-r--r--meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service9
-rw-r--r--meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager_%.bbappend15
5 files changed, 89 insertions, 0 deletions
diff --git a/meta-facebook/meta-minerva/conf/machine/minerva.conf b/meta-facebook/meta-minerva/conf/machine/minerva.conf
index 22b6a3db8e..7b2ee8a3b5 100644
--- a/meta-facebook/meta-minerva/conf/machine/minerva.conf
+++ b/meta-facebook/meta-minerva/conf/machine/minerva.conf
@@ -15,3 +15,5 @@ require conf/machine/include/obmc-bsp-common.inc
require conf/machine/include/facebook-tpm2.inc
FLASH_SIZE = "131072"
+
+OBMC_CHASSIS_INSTANCES = "0 1"
diff --git a/meta-facebook/meta-minerva/recipes-phosphor/images/fb-minerva-phosphor-image.inc b/meta-facebook/meta-minerva/recipes-phosphor/images/fb-minerva-phosphor-image.inc
index 72516c6215..fa5266988d 100644
--- a/meta-facebook/meta-minerva/recipes-phosphor/images/fb-minerva-phosphor-image.inc
+++ b/meta-facebook/meta-minerva/recipes-phosphor/images/fb-minerva-phosphor-image.inc
@@ -27,3 +27,7 @@ OBMC_IMAGE_EXTRA_INSTALL:append = " \
OBMC_IMAGE_EXTRA_INSTALL:append = " \
phosphor-sel-logger \
"
+
+OBMC_IMAGE_EXTRA_INSTALL:append = " \
+ phosphor-state-manager \
+"
diff --git a/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
new file mode 100644
index 0000000000..deaa7afe5a
--- /dev/null
+++ b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# shellcheck source=meta-facebook/meta-minerva/recipes-minerva/plat-tool/files/minerva-common-functions
+source /usr/libexec/minerva-common-functions
+
+# Minerva CMM Sled Power Cycle and Chassis Power Cycle
+
+cmm-hsc-power-cycle() {
+ #TBD: Since there has a 2nd HSC, it is necessary to determine which HSC it is now.
+
+ # LTC4287 MFR_REBOOT_CONTROL (FDh) Read/Write
+ # [3]:
+ # REBOOT 0 Write a 1 to reboot.
+ # [2:0]
+ # RBT_DL 100 Configures Auto-Reboot turn-on Delay (tDL(RBT)) after the REBOOT bit is set to 1
+ # RBT_DL[2:0] DELAY
+ # 000 0.580 s
+ # 001 1.16 s
+ # 010 2.32 s
+ # 011 4.64 s
+ # 100 9.28 s
+ # 101 18.6 s
+ # 110 37.1 s
+ # 111 74.2 s
+ i2cset -y -f 0 0x44 0xfd 0x00
+ i2cset -y -f 0 0x44 0xfd 0x0b
+}
+
+compute-blade-hsc-power-off() {
+ for i in {0..15}
+ do
+ set_gpio "PWREN_MTIA_BLADE${i}_HSC_EN_N" 1
+ done
+}
+
+network-blade-hsc-power-off() {
+ for i in {0..15}
+ do
+ set_gpio "PWREN_MTIA_BLADE${i}_HSC_EN_N" 1
+ done
+}
+
+# CMM Sled Power Cycle
+if [ "$1" == 0 ]
+then
+ echo "Staring CMM Sled Power Cycle"
+ cmm-hsc-power-cycle
+# CMM Chassis Power Cycle
+elif [ "$1" == 1 ]
+then
+ echo "Staring CMM Chassis Power Cycle"
+
+ compute-blade-hsc-power-off
+ network-blade-hsc-power-off
+ cmm-hsc-power-cycle
+else
+ echo "Invalid CMM Cycle"
+ exit 1
+fi
diff --git a/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service
new file mode 100644
index 0000000000..a8fa1e259c
--- /dev/null
+++ b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Chassis%i Power Cycle
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-state-manager/chassis-powercycle %i
+
+[Install]
+WantedBy=obmc-chassis-powercycle@%i.target
diff --git a/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager_%.bbappend b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager_%.bbappend
index ff214fa676..4f8d258055 100644
--- a/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager_%.bbappend
+++ b/meta-facebook/meta-minerva/recipes-phosphor/state/phosphor-state-manager_%.bbappend
@@ -6,3 +6,18 @@ CHASSIS_DEFAULT_TARGETS:remove = " \
obmc-chassis-poweroff@{}.target.requires/obmc-power-stop@{}.service \
obmc-chassis-poweron@{}.target.requires/obmc-power-start@{}.service \
"
+
+RDEPENDS:${PN}:append = " bash"
+
+SRC_URI:append:minerva = " \
+ file://chassis-powercycle \
+ file://chassis-powercycle@.service \
+ "
+
+do_install:append:minerva() {
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/*.service ${D}${systemd_system_unitdir}/
+
+ install -d ${D}${libexecdir}/${PN}
+ install -m 0755 ${WORKDIR}/chassis-powercycle ${D}${libexecdir}/${PN}/
+}