summaryrefslogtreecommitdiff
path: root/meta-facebook/meta-harma
diff options
context:
space:
mode:
Diffstat (limited to 'meta-facebook/meta-harma')
-rw-r--r--meta-facebook/meta-harma/conf/machine/harma.conf3
-rw-r--r--meta-facebook/meta-harma/recipes-kernel/linux/linux-aspeed/harma.cfg14
-rw-r--r--meta-facebook/meta-harma/recipes-networking/mctp/files/setup-bic-eid39
-rw-r--r--meta-facebook/meta-harma/recipes-networking/mctp/files/setup-eid.conf9
-rw-r--r--meta-facebook/meta-harma/recipes-networking/mctp/files/setup-local-eid45
-rw-r--r--meta-facebook/meta-harma/recipes-networking/mctp/mctp_%.bbappend26
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/blacklist.json5
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/device-driver-probe33
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/xyz.openbmc_project.EntityManager.conf3
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager_%.bbappend12
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing4
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing.conf2
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/console/obmc-console_%.bbappend11
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control/config.json545
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control_%.bbappend10
-rwxr-xr-xmeta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update (renamed from meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh)7
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service2
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager_%.bbappend4
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-power-good3
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good3
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good6
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good.service8
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button23
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button.service8
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off10
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off.service8
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on.service8
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/multi-gpios-sys-init.service5
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json141
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-presence.json9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend14
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager/led-group-config.json4
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager_%.bbappend6
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff (renamed from meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset)3
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff@.service9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron2
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff (renamed from meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff)3
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff@.service14
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff (renamed from meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle)7
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff@.service15
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle@.service9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff@.service9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset@.service9
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/phosphor-wait-power-off@.service19
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd33
-rw-r--r--meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager_%.bbappend94
48 files changed, 1080 insertions, 194 deletions
diff --git a/meta-facebook/meta-harma/conf/machine/harma.conf b/meta-facebook/meta-harma/conf/machine/harma.conf
index 3beb5e19f5..be5086a0d4 100644
--- a/meta-facebook/meta-harma/conf/machine/harma.conf
+++ b/meta-facebook/meta-harma/conf/machine/harma.conf
@@ -4,7 +4,7 @@ KMACHINE = "aspeed"
KERNEL_DEVICETREE = "aspeed/${KMACHINE}-bmc-facebook-${MACHINE}.dtb"
UBOOT_MACHINE = "ast2600_openbmc_spl_defconfig"
-UBOOT_DEVICETREE = "ast2600-bletchley"
+UBOOT_DEVICETREE = "ast2600-facebook"
SPL_BINARY = "spl/u-boot-spl.bin"
SOCSEC_SIGN_ENABLE = "0"
@@ -12,6 +12,7 @@ SOCSEC_SIGN_ENABLE = "0"
OBMC_COMPATIBLE_NAMES = "com.meta.Hardware.BMC.Model.Harma"
require conf/distro/include/phosphor-static-norootfs.inc
+require conf/distro/include/pldm.inc
require conf/machine/include/facebook-compute-singlehost.inc
require conf/machine/include/ast2600.inc
require conf/machine/include/obmc-bsp-common.inc
diff --git a/meta-facebook/meta-harma/recipes-kernel/linux/linux-aspeed/harma.cfg b/meta-facebook/meta-harma/recipes-kernel/linux/linux-aspeed/harma.cfg
index c49f3f855e..4c83fe4af2 100644
--- a/meta-facebook/meta-harma/recipes-kernel/linux/linux-aspeed/harma.cfg
+++ b/meta-facebook/meta-harma/recipes-kernel/linux/linux-aspeed/harma.cfg
@@ -74,9 +74,21 @@ CONFIG_AD5272=y
CONFIG_MCP9600=y
# APML
-CONFIG_I3C=y
CONFIG_APML_SBRMI=y
CONFIG_APML_SBTSI=y
+# I3C drivers
+CONFIG_I3C=y
+CONFIG_DW_I3C_MASTER=y
+CONFIG_AST2600_I3C_MASTER=y
+
# SPI GPIO
CONFIG_SPI_GPIO=y
+
+# I2C mqueue for mctp
+CONFIG_I2C_SLAVE_MQUEUE=m
+CONFIG_I2C_SLAVE_MQUEUE_QUEUE_SIZE=32
+CONFIG_I2C_SLAVE_MQUEUE_MESSAGE_SIZE=256
+
+# RTC sensor
+CONFIG_RTC_DRV_PCF8563=y
diff --git a/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-bic-eid b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-bic-eid
new file mode 100644
index 0000000000..da51310abc
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-bic-eid
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# Set BIC EID
+bic_addr=0x20
+busnum=9
+maxRetries=10
+retryInterval=1
+
+retry_command() {
+
+ command="$1"
+ retries=0
+
+ while [ $retries -lt $maxRetries ]; do
+ if bash -c "$command"; then
+ return 0
+ else
+ retries=$((retries + 1))
+ echo "Retry $retries/$maxRetries: Command failed. Retrying in $retryInterval seconds..."
+ sleep $retryInterval
+ fi
+ done
+
+ return 1
+}
+
+command="
+ busctl call xyz.openbmc_project.MCTP \
+ /xyz/openbmc_project/mctp \
+ au.com.CodeConstruct.MCTP \
+ LearnEndpoint \
+ say mctpi2c${busnum} 1 ${bic_addr}"
+
+if ! retry_command "$command"; then
+ echo "Failed to busctl call after $maxRetries attempts."
+ exit 1
+fi
+echo "BIC EID set to ${bic_addr}"
+exit 0 \ No newline at end of file
diff --git a/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-eid.conf b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-eid.conf
new file mode 100644
index 0000000000..3074382d2d
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-eid.conf
@@ -0,0 +1,9 @@
+[Unit]
+After=mctpd.service
+Requires=mctpd.service
+
+[Service]
+ExecStartPre=-/usr/libexec/mctp/setup-local-eid
+ExecStartPost=-/usr/libexec/mctp/setup-bic-eid
+Restart=always
+RestartSec=10
diff --git a/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-local-eid b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-local-eid
new file mode 100644
index 0000000000..a72606fcf2
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-networking/mctp/files/setup-local-eid
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+# Set mctpi2c link up and assign local address.
+localEid=8
+busNum=9
+maxRetries=5
+retryInterval=1
+
+retry_command() {
+
+ command="$1"
+ retries=0
+
+ while [ $retries -lt $maxRetries ]; do
+ if bash -c "$command"; then
+ return 0
+ else
+ retries=$((retries + 1))
+ echo "Retry $retries/$maxRetries: Command failed. Retrying in $retryInterval seconds..."
+ sleep $retryInterval
+ fi
+ done
+
+ return 1
+}
+
+# Retry mctp link command
+if ! retry_command "mctp link set mctpi2c${busNum} up"; then
+ echo "Failed to set mctp link after $maxRetries attempts."
+ exit 1
+fi
+
+# Check if local EID is already set
+mctpOutput=$(mctp address show)
+if echo "$mctpOutput" | grep -q "mctpi2c${busNum}"; then
+ echo "mctpi2c${busNum} local EID already set"
+else
+ # Retry mctp addr add command
+ if ! retry_command "mctp addr add ${localEid} dev mctpi2c${busNum}"; then
+ echo "Failed to add mctp address after $maxRetries attempts."
+ exit 1
+ fi
+fi
+echo "mctpi2c${busNum} local EID set to ${localEid}"
+exit 0 \ No newline at end of file
diff --git a/meta-facebook/meta-harma/recipes-networking/mctp/mctp_%.bbappend b/meta-facebook/meta-harma/recipes-networking/mctp/mctp_%.bbappend
new file mode 100644
index 0000000000..c33d4da9a1
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-networking/mctp/mctp_%.bbappend
@@ -0,0 +1,26 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+
+SRC_URI += " \
+ file://setup-eid.conf \
+ file://setup-local-eid \
+ file://setup-bic-eid \
+"
+
+RDEPENDS:${PN} += " bash"
+FILES:${PN} += "${systemd_system_unitdir}/*"
+
+do_install:append () {
+ override_dir=${D}${systemd_system_unitdir}/mctpd.service.d
+ install -d ${D}${systemd_system_unitdir}/mctpd.service.d
+
+ install -m 0644 ${WORKDIR}/setup-eid.conf \
+ ${override_dir}/setup-eid.conf
+
+ install -d ${D}${libexecdir}/mctp
+
+ install -m 0755 ${WORKDIR}/setup-local-eid \
+ ${D}${libexecdir}/mctp/
+ install -m 0755 ${WORKDIR}/setup-bic-eid \
+ ${D}${libexecdir}/mctp/
+}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/blacklist.json b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/blacklist.json
index a000e689c9..f6789eb5d5 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/blacklist.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/blacklist.json
@@ -3,8 +3,7 @@
8,
{
"bus": 9,
- "addresses": ["0x30", "0x31", "0x3F", "0x43", "0x49", "0x4A", "0x4B", "0x4C", "0x71"]
- },
- 11
+ "addresses": [ "0x20", "0x30", "0x31", "0x3F", "0x43", "0x49", "0x4A", "0x4B", "0x4C", "0x71"]
+ }
]
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/device-driver-probe b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/device-driver-probe
new file mode 100644
index 0000000000..4e7fb08683
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/device-driver-probe
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+read_i2c_dev() {
+ local bus="$1"
+ local addr="$2"
+
+ for _ in {1..3}; do
+ if /usr/sbin/i2cget -f -y "$bus" "$addr" 2>/dev/null; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+probe_sitv_pttv_mux() {
+ if read_i2c_dev 9 0x71; then
+ echo pca9546 0x71 > /sys/bus/i2c/devices/i2c-9/new_device
+ else
+ echo pca9546 0x71 > /sys/bus/i2c/devices/i2c-11/new_device
+ fi
+}
+
+set_hsc_sample_rate() {
+ if read_i2c_dev 4 0x44; then
+ # set ltc4287 sample to 4096/1.16s
+ i2cset -f -y 4 0x44 0xD9 0x8b
+ fi
+}
+
+
+probe_sitv_pttv_mux
+set_hsc_sample_rate
+exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/xyz.openbmc_project.EntityManager.conf b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/xyz.openbmc_project.EntityManager.conf
new file mode 100644
index 0000000000..e3f79cee63
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager/xyz.openbmc_project.EntityManager.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStartPre=/usr/libexec/entity-manager/device-driver-probe
+
diff --git a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager_%.bbappend
index 6e89557dec..23e7ed4c3b 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/configuration/entity-manager_%.bbappend
@@ -1,9 +1,19 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-SRC_URI:append = " \
+inherit obmc-phosphor-systemd systemd
+
+SRC_URI += "\
file://blacklist.json \
+ file://device-driver-probe \
"
+RDEPENDS:${PN}:append = " bash"
+
+SYSTEMD_OVERRIDE:${PN} += "xyz.openbmc_project.EntityManager.conf:xyz.openbmc_project.EntityManager.service.d/xyz.openbmc_project.EntityManager.conf"
+
do_install:append() {
install -m 0644 -D ${WORKDIR}/blacklist.json ${D}${datadir}/${PN}/blacklist.json
+
+ install -d ${D}${libexecdir}/${PN}
+ install -m 0755 ${WORKDIR}/device-driver-probe ${D}${libexecdir}/${PN}/
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing b/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing
index 9df066b72c..ecf3cdf173 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing
+++ b/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing
@@ -1,8 +1,8 @@
#!/bin/bash
connect_uart_route() {
- echo -ne "$1" > /sys/devices/platform/ahb/ahb:apb/1e789000.lpc/1e789098.uart-routing/"$2"
- echo -ne "$2" > /sys/devices/platform/ahb/ahb:apb/1e789000.lpc/1e789098.uart-routing/"$1"
+ echo -ne "$1" > /sys/devices/platform/ahb/1e780000.apb/1e789000.lpc/1e789098.uart-routing/"$2"
+ echo -ne "$2" > /sys/devices/platform/ahb/1e780000.apb/1e789000.lpc/1e789098.uart-routing/"$1"
}
connect_uart_route "uart1" "uart4"
diff --git a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing.conf b/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing.conf
deleted file mode 100644
index c91a0b1bcd..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console/setup-uart-routing.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-ExecStartPre=/usr/libexec/obmc-console/setup-uart-routing
diff --git a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console_%.bbappend
index e500001bed..f85aac0c45 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/console/obmc-console_%.bbappend
@@ -4,22 +4,13 @@ RDEPENDS:${PN}:append = " bash"
inherit obmc-phosphor-systemd
SRC_URI:append = " \
- file://setup-uart-routing \
- file://setup-uart-routing.conf \
file://server.ttyUSB1.conf \
file://plat-80-obmc-console-uart.rules \
"
-do_install:append() {
- install -d ${D}${libexecdir}/${PN}
- install -m 0755 ${WORKDIR}/setup-uart-routing ${D}${libexecdir}/${PN}
-}
-
OBMC_CONSOLE_TTYS:append = " ttyUSB1"
-
-SYSTEMD_OVERRIDE:${PN}:append = " setup-uart-routing.conf:obmc-console@ttyS2.service.d/setup-uart-routing.conf"
+OBMC_SOL_ROUTING = "uart1:uart4 uart4:uart1 io1:uart2 uart2:io1"
do_install:append() {
install -d ${D}${base_libdir}/udev/rules.d/
- install -m 0644 ${WORKDIR}/plat-80-obmc-console-uart.rules ${D}${base_libdir}/udev/rules.d/80-obmc-console-uart.rules
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control/config.json b/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control/config.json
new file mode 100644
index 0000000000..8e741cb25c
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control/config.json
@@ -0,0 +1,545 @@
+{
+ "sensors": [
+ {
+ "name": "MB_CPU_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_CPU_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A0_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A0_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A10_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A10_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A1_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A1_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A2_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A2_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A4_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A4_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A6_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A6_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A7_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A7_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_DIMM_A8_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_DIMM_A8_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_VR_CPU_PDDIO_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_VR_CPU_PDDIO_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_VR_CPU_PVDD11_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_VR_CPU_PVDD11_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_VR_CPU_SOC_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_VR_CPU_SOC_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_VR_CPU_VCORE0_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_VR_CPU_VCORE0_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_VR_CPU_VCORE1_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_VR_CPU_VCORE1_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_RETIMER0_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_RETIMER0_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "MB_RETIMER1_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/MB_RETIMER1_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "NIC_Temp_1",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/NIC_Temp_1",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "SCM_INLET_TEMP_C",
+ "type": "temp",
+ "readPath": "/xyz/openbmc_project/sensors/temperature/SCM_INLET_TEMP_C",
+ "timeout": 0,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN0_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN0_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN0_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN0_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN1_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN1_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN1_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN1_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN2_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN2_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN2_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN2_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN3_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN3_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP0_FAN3_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP0_FAN3_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP0_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN0_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN0_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN0_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN0_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN1_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN1_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN1_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN1_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN2_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN2_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN2_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN2_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN3_TACH_IL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN3_TACH_IL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ },
+ {
+ "name": "FAN_BP1_FAN3_TACH_OL_SPEED_RPM",
+ "type": "fan",
+ "readPath": "/xyz/openbmc_project/sensors/fan_tach/FAN_BP1_FAN3_TACH_OL_SPEED_RPM",
+ "writePath": "/xyz/openbmc_project/control/fanpwm/FAN_BP1_FAN_PWM",
+ "min": 0,
+ "max": 255,
+ "ignoreDbusMinMax": true
+ }
+ ],
+
+ "zones": [
+ {
+ "id": 1,
+ "failsafePercent": 100.0,
+ "minThermalOutput": 0.0,
+ "cycleTimeBaseMS": 1000,
+ "updateThermalsTimeMS": 1000,
+ "accumulateSetPoint": true,
+ "pids": [
+ {
+ "name": "All Fan",
+ "type": "fan",
+ "inputs": [
+ "FAN_BP0_FAN0_TACH_IL_SPEED_RPM",
+ "FAN_BP0_FAN0_TACH_OL_SPEED_RPM",
+ "FAN_BP0_FAN1_TACH_IL_SPEED_RPM",
+ "FAN_BP0_FAN1_TACH_OL_SPEED_RPM",
+ "FAN_BP0_FAN2_TACH_IL_SPEED_RPM",
+ "FAN_BP0_FAN2_TACH_OL_SPEED_RPM",
+ "FAN_BP0_FAN3_TACH_IL_SPEED_RPM",
+ "FAN_BP0_FAN3_TACH_OL_SPEED_RPM",
+ "FAN_BP1_FAN0_TACH_IL_SPEED_RPM",
+ "FAN_BP1_FAN0_TACH_OL_SPEED_RPM",
+ "FAN_BP1_FAN1_TACH_IL_SPEED_RPM",
+ "FAN_BP1_FAN1_TACH_OL_SPEED_RPM",
+ "FAN_BP1_FAN2_TACH_IL_SPEED_RPM",
+ "FAN_BP1_FAN2_TACH_OL_SPEED_RPM",
+ "FAN_BP1_FAN3_TACH_IL_SPEED_RPM",
+ "FAN_BP1_FAN3_TACH_OL_SPEED_RPM"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "proportionalCoeff": 0.0,
+ "integralCoeff": 0.0,
+ "derivativeCoeff": 0.0,
+ "feedFwdOffsetCoeff": 0.0,
+ "feedFwdGainCoeff": 1.0,
+ "integralLimit_min": 0.0,
+ "integralLimit_max": 0.0,
+ "outLim_min": 0.0,
+ "outLim_max": 100.0,
+ "slewNeg": 0.0,
+ "slewPos": 0.0,
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 0
+ }
+ },
+ {
+ "name": "Stepwise_MB_CPU",
+ "type": "stepwise",
+ "inputs": [
+ "MB_CPU_TEMP_C"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 55,
+ "1": 60,
+ "2": 65,
+ "3": 70,
+ "4": 75
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "2": 30,
+ "3": 35,
+ "4": 40
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ },
+ {
+ "name": "PID_MB_CPU",
+ "type": "temp",
+ "inputs": [
+ "MB_CPU_TEMP_C"
+ ],
+ "setpoint": 79.0,
+ "pid": {
+ "samplePeriod": 1,
+ "proportionalCoeff": -3.0,
+ "integralCoeff": -0.0035,
+ "derivativeCoeff": 0.0,
+ "feedFwdOffsetCoeff": 0.0,
+ "feedFwdGainCoeff": 0.0,
+ "integralLimit_min": -50.0,
+ "integralLimit_max": 100.0,
+ "outLim_min": 0.0,
+ "outLim_max": 100.0,
+ "slewNeg": 0.0,
+ "slewPos": 0.0,
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2,
+ "checkHysterWithSetpt": true
+ }
+ },
+ {
+ "name": "Stepwise_MB_DIMM",
+ "type": "stepwise",
+ "inputs": [
+ "MB_DIMM_A0_TEMP_C",
+ "MB_DIMM_A1_TEMP_C",
+ "MB_DIMM_A2_TEMP_C",
+ "MB_DIMM_A4_TEMP_C",
+ "MB_DIMM_A6_TEMP_C",
+ "MB_DIMM_A7_TEMP_C",
+ "MB_DIMM_A8_TEMP_C",
+ "MB_DIMM_A10_TEMP_C"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 60,
+ "1": 70,
+ "2": 75
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "3": 30
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ },
+ {
+ "name": "PID_MB_DIMM",
+ "type": "temp",
+ "inputs": [
+ "MB_DIMM_A0_TEMP_C",
+ "MB_DIMM_A1_TEMP_C",
+ "MB_DIMM_A2_TEMP_C",
+ "MB_DIMM_A4_TEMP_C",
+ "MB_DIMM_A6_TEMP_C",
+ "MB_DIMM_A7_TEMP_C",
+ "MB_DIMM_A8_TEMP_C",
+ "MB_DIMM_A10_TEMP_C"
+ ],
+ "setpoint": 79.0,
+ "pid": {
+ "samplePeriod": 1,
+ "proportionalCoeff": -3.0,
+ "integralCoeff": -0.0035,
+ "derivativeCoeff": 0.0,
+ "feedFwdOffsetCoeff": 0.0,
+ "feedFwdGainCoeff": 0.0,
+ "integralLimit_min": -50.0,
+ "integralLimit_max": 100.0,
+ "outLim_min": 0.0,
+ "outLim_max": 100.0,
+ "slewNeg": 0.0,
+ "slewPos": 0.0,
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2,
+ "checkHysterWithSetpt": true
+ }
+ },
+ {
+ "name": "Stepwise_MB_VR",
+ "type": "stepwise",
+ "inputs": [
+ "MB_VR_CPU_VCORE0_TEMP_C",
+ "MB_VR_CPU_VCORE1_TEMP_C",
+ "MB_VR_CPU_PVDD11_TEMP_C",
+ "MB_VR_CPU_PDDIO_TEMP_C",
+ "MB_VR_CPU_SOC_TEMP_C"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 80,
+ "1": 90,
+ "2": 100
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "2": 90
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ },
+ {
+ "name": "Stepwise_MB_RETIMER",
+ "type": "stepwise",
+ "inputs": [
+ "MB_RETIMER0_TEMP_C",
+ "MB_RETIMER1_TEMP_C"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 80,
+ "1": 90,
+ "2": 100
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "2": 90
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ },
+ {
+ "name": "Stepwise_NIC",
+ "type": "stepwise",
+ "inputs": [
+ "NIC_Temp_1"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 80,
+ "1": 90,
+ "2": 100
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "2": 90
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ },
+ {
+ "name": "Stepwise_SCM_INLET",
+ "type": "stepwise",
+ "inputs": [
+ "SCM_INLET_TEMP_C"
+ ],
+ "setpoint": 0.0,
+ "pid": {
+ "samplePeriod": 1,
+ "isCeiling": false,
+ "reading": {
+ "0": 25,
+ "1": 30,
+ "2": 35,
+ "3": 40
+ },
+ "output": {
+ "0": 20,
+ "1": 25,
+ "2": 35,
+ "3": 90
+ },
+ "positiveHysteresis": 0,
+ "negativeHysteresis": 2
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
new file mode 100644
index 0000000000..56632d8fd8
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS:prepend:= "${THISDIR}/${PN}:"
+SRC_URI:append = " file://config.json \
+ "
+
+FILES:${PN}:append = " ${datadir}/swampd/config.json"
+
+do_install:append() {
+ install -d ${D}${datadir}/swampd
+ install -m 0644 -D ${WORKDIR}/config.json ${D}${datadir}/swampd/config.json
+}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update
index b21c5d2ead..e29ca90a62 100755
--- a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update.sh
+++ b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/bios-update
@@ -30,9 +30,10 @@ set_gpio_to_cpu()
echo "Bios upgrade started at $(date)"
#Power off host server.
-echo "Power off host server"
-power_off
-sleep 15
+echo "Power off host server by force off"
+obmcutil chassisoff
+
+sleep 10
if [ "$(power_status)" != "off" ];
then
echo "Host server didn't power off"
diff --git a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service
index 7e098908e5..7d1dc08a03 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service
+++ b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-host-bios@.service
@@ -4,4 +4,4 @@ Description=Flash Host Bios image %I to Host
[Service]
Type=oneshot
RemainAfterExit=no
-ExecStart=/usr/sbin/bios-update.sh /tmp/images/%i
+ExecStart=/usr/sbin/bios-update /tmp/images/%i
diff --git a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager_%.bbappend
index 047f01970a..6dd496f071 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/flash/phosphor-software-manager_%.bbappend
@@ -1,10 +1,10 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-SRC_URI += "file://bios-update.sh"
+SRC_URI += "file://bios-update"
PACKAGECONFIG:append = " flash_bios"
RDEPENDS:${PN} += "bash"
do_install:append() {
install -d ${D}/${sbindir}
- install -m 0755 ${WORKDIR}/bios-update.sh ${D}/${sbindir}/
+ install -m 0755 ${WORKDIR}/bios-update ${D}/${sbindir}/
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-power-good b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-power-good
index a8cbda483c..4bec537265 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-power-good
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-power-good
@@ -3,8 +3,5 @@
# Set Host Power Status Off
busctl set-property xyz.openbmc_project.State.Host0 /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Host CurrentHostState s xyz.openbmc_project.State.Host.HostState.Off
-# Set Chassis Power Status Off
-busctl set-property xyz.openbmc_project.State.Chassis0 /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState s xyz.openbmc_project.State.Chassis.PowerState.Off
-
systemctl start obmc-led-group-stop@power_on.service
exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good
index 36ede163b2..cc2258f373 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-good
@@ -3,9 +3,6 @@
# Set Host Power Status Running
busctl set-property xyz.openbmc_project.State.Host0 /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Host CurrentHostState s xyz.openbmc_project.State.Host.HostState.Running
-# Set Chassis Power Status On
-busctl set-property xyz.openbmc_project.State.Chassis0 /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis CurrentPowerState s xyz.openbmc_project.State.Chassis.PowerState.On
-
systemctl start obmc-led-group-start@power_on.service
# The hardware disables the multiplexer in standby
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good
deleted file mode 100644
index ad9fc7c98a..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# Set Host Power On
-obmcutil poweron
-
-exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good.service
deleted file mode 100644
index 9c5aee1d26..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-power-hsc-good.service
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=Deassert Power HSC Good Status
-
-[Service]
-Type=oneshot
-ExecStart=/usr/libexec/phosphor-gpio-monitor/deassert-power-hsc-good
-
-SyslogIdentifier=deassert-power-hsc-good
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button
new file mode 100644
index 0000000000..1da52ed361
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# shellcheck source=meta-facebook/recipes-fb/obmc_functions/files/fb-common-functions
+source /usr/libexec/fb-common-functions
+
+uart_lsb=$(get_gpio "uart-switch-lsb")
+uart_msb=$(get_gpio "uart-switch-msb")
+uart_lsb=$((1 - uart_lsb))
+uart_msb=$((1 - uart_msb))
+
+uart_sel=$((uart_msb+(uart_lsb<<1)))
+
+set_postcode_leds() {
+ num=$1
+ for i in {0..7}; do
+ bit_value=$(( (num >> i) & 1 ))
+ set_gpio "led-postcode-$i" $bit_value
+ done
+}
+
+set_postcode_leds "$uart_sel"
+
+exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button.service
new file mode 100644
index 0000000000..b7e491ecca
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-uart-switch-button.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Deassert Uart Switch Button
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/deassert-uart-switch-button
+
+SyslogIdentifier=deassert-uart-switch-button
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off
new file mode 100644
index 0000000000..1eed8d1fab
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+#To avoid AC cycle trigger this script.
+sleep 5
+
+# Set Host Power Off
+obmcutil poweroff
+
+# Turn off the power Led
+systemctl start obmc-led-group-stop@power_on.service
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off.service
new file mode 100644
index 0000000000..ad9dfaa21d
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-off.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Host power off assertion
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/host-power-off
+
+SyslogIdentifier=host-power-off
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on
new file mode 100644
index 0000000000..122a89f7d3
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+sleep 1
+
+# Set Host Power On
+obmcutil poweron
+
+# Turn on the power Led
+systemctl start obmc-led-group-start@power_on.service
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on.service
new file mode 100644
index 0000000000..c4bc3f1b57
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/host-power-on.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Host power on assertion
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/host-power-on
+
+SyslogIdentifier=host-power-on
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/multi-gpios-sys-init.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/multi-gpios-sys-init.service
index 1ee870bd36..37da7d731d 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/multi-gpios-sys-init.service
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/multi-gpios-sys-init.service
@@ -1,6 +1,7 @@
[Unit]
-Wants=xyz.openbmc_project.State.Host@0.service
-After=xyz.openbmc_project.State.Host@0.service
+Wants=mapper-wait@-xyz-openbmc_project-state-host0.service
+After=mapper-wait@-xyz-openbmc_project-state-host0.service
+
[Service]
Type=oneshot
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
index 8d14905570..eb6c78943e 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
@@ -1,13 +1,23 @@
[
{
- "Name": "reset-button",
+ "Name": "reset-cause-platrst",
"ChipId": "0",
- "GpioNum": 122,
+ "GpioNum": 16,
"EventMon": "BOTH",
"Targets": {
- "RISING": ["deassert-gpio-log@reset-button.service","deassert-reset-button.service"],
- "FALLING": ["assert-gpio-log@reset-button.service","assert-reset-button.service"]
-
+ "RISING": ["deassert-gpio-log@reset-cause-platrst.service"],
+ "FALLING": ["assert-gpio-log@reset-cause-platrst.service"]
+ },
+ "Continue": true
+ },
+ {
+ "Name": "power-hsc-good",
+ "ChipId": "0",
+ "GpioNum": 21,
+ "EventMon": "BOTH",
+ "Targets": {
+ "RISING": ["host-power-on.service"],
+ "FALLING": ["host-power-off.service"]
},
"Continue": true
},
@@ -23,13 +33,24 @@
"Continue": true
},
{
- "Name": "presence-post-card",
+ "Name": "reset-button",
"ChipId": "0",
- "GpioNum": 206,
+ "GpioNum": 122,
"EventMon": "BOTH",
"Targets": {
- "RISING": ["deassert-gpio-log@presence-post-card.service"],
- "FALLING": ["assert-gpio-log@presence-post-card.service"]
+ "RISING": ["deassert-gpio-log@reset-button.service","deassert-reset-button.service"],
+ "FALLING": ["assert-gpio-log@reset-button.service","assert-reset-button.service"]
+
+ },
+ "Continue": true
+ },
+ {
+ "Name": "uart-switch-button",
+ "ChipId": "0",
+ "GpioNum": 135,
+ "EventMon": "RISING",
+ "Targets": {
+ "RISING": ["deassert-uart-switch-button.service"]
},
"Continue": true
},
@@ -44,77 +65,80 @@
"Continue": true
},
{
- "Name": "irq-uv-detect-alert",
+ "Name": "power-host-good",
"ChipId": "2",
- "GpioNum": 174,
- "EventMon": "FALLING",
+ "GpioNum": 60,
+ "EventMon": "BOTH",
"Targets": {
- "FALLING": ["assert-gpio-log@irq-uv-detect-alert.service"]
+ "RISING": ["deassert-power-good.service", "deassert-gpio-log@power-host-good.service"],
+ "FALLING": ["assert-power-good.service", "assert-gpio-log@power-host-good.service"]
+
},
"Continue": true
},
{
- "Name": "irq-hsc-alert",
+ "Name": "post-end-n",
"ChipId": "2",
- "GpioNum": 176,
+ "GpioNum": 66,
"EventMon": "BOTH",
"Targets": {
- "RISING": ["deassert-gpio-log@irq-hsc-alert.service"],
- "FALLING": ["assert-gpio-log@irq-hsc-alert.service"]
+ "RISING": ["deassert-post-end.service"],
+ "FALLING": ["assert-post-end.service"]
+
},
"Continue": true
},
{
- "Name": "cpu0-prochot-alert",
- "ChipId": "2",
- "GpioNum": 178,
+ "Name": "leakage-detect-alert",
+ "ChipId": "0",
+ "GpioNum": 92,
"EventMon": "BOTH",
"Targets": {
- "RISING": ["deassert-gpio-log@cpu0-prochot-alert.service"],
- "FALLING": ["assert-gpio-log@cpu0-prochot-alert.service"]
+ "RISING": ["deassert-gpio-log@leakage-detect-alert.service"],
+ "FALLING": ["assert-gpio-log@leakage-detect-alert.service"]
},
"Continue": true
},
{
- "Name": "cpu0-thermtrip-alert",
+ "Name": "irq-uv-detect-alert",
"ChipId": "2",
- "GpioNum": 180,
- "EventMon": "FALLING",
+ "GpioNum": 174,
+ "EventMon": "BOTH",
"Targets": {
- "FALLING": ["assert-gpio-log@cpu0-thermtrip-alert.service"]
+ "RISING": ["deassert-gpio-log@irq-uv-detect-alert.service"],
+ "FALLING": ["assert-gpio-log@irq-uv-detect-alert.service"]
},
"Continue": true
},
{
- "Name": "cpu0-err-alert",
- "ChipId": "0",
- "GpioNum": 21,
- "EventMon": "FALLING",
+ "Name": "irq-hsc-alert",
+ "ChipId": "2",
+ "GpioNum": 176,
+ "EventMon": "BOTH",
"Targets": {
- "FALLING": ["assert-gpio-log@cpu0-err-alert.service"]
+ "RISING": ["deassert-gpio-log@irq-hsc-alert.service"],
+ "FALLING": ["assert-gpio-log@irq-hsc-alert.service"]
},
"Continue": true
},
{
- "Name": "reset-cause-platrst",
- "ChipId": "0",
- "GpioNum": 16,
+ "Name": "cpu0-prochot-alert",
+ "ChipId": "2",
+ "GpioNum": 178,
"EventMon": "BOTH",
"Targets": {
- "RISING": ["deassert-gpio-log@reset-cause-platrst.service"],
- "FALLING": ["assert-gpio-log@reset-cause-platrst.service"]
+ "RISING": ["deassert-gpio-log@cpu0-prochot-alert.service"],
+ "FALLING": ["assert-gpio-log@cpu0-prochot-alert.service"]
},
"Continue": true
},
{
- "Name": "power-host-good",
+ "Name": "cpu0-thermtrip-alert",
"ChipId": "2",
- "GpioNum": 60,
- "EventMon": "BOTH",
+ "GpioNum": 180,
+ "EventMon": "FALLING",
"Targets": {
- "RISING": ["deassert-power-good.service", "deassert-gpio-log@power-host-good.service"],
- "FALLING": ["assert-power-good.service", "assert-gpio-log@power-host-good.service"]
-
+ "FALLING": ["assert-gpio-log@cpu0-thermtrip-alert.service"]
},
"Continue": true
},
@@ -139,38 +163,5 @@
"FALLING": ["assert-gpio-log@pvdd11-ocp-alert.service"]
},
"Continue": true
- },
- {
- "Name": "post-end-n",
- "ChipId": "2",
- "GpioNum": 66,
- "EventMon": "BOTH",
- "Targets": {
- "RISING": ["deassert-post-end.service"],
- "FALLING": ["assert-post-end.service"]
-
- },
- "Continue": true
- },
- {
- "Name": "leakage-detect-alert",
- "ChipId": "0",
- "GpioNum": 92,
- "EventMon": "BOTH",
- "Targets": {
- "RISING": ["deassert-gpio-log@leakage-detect-alert.service"],
- "FALLING": ["assert-gpio-log@leakage-detect-alert.service"]
- },
- "Continue": true
- },
- {
- "Name": "power-hsc-good",
- "ChipId": "2",
- "GpioNum": 10,
- "EventMon": "RISING",
- "Targets": {
- "RISING": ["deassert-power-hsc-good.service"]
- },
- "Continue": true
}
]
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-presence.json b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-presence.json
index d406147211..d1d7e6e7b9 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-presence.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-presence.json
@@ -33,5 +33,12 @@
"ActiveLow": true,
"Bias": "DISABLE",
"Inventory": "/system/board/Harma_MB/presence_asic_modules_1"
+ },
+ {
+ "Name": "presence-post-card",
+ "LineName": "presence-post-card",
+ "ActiveLow": true,
+ "Bias": "DISABLE",
+ "Inventory": "/system/board/Harma_MB/presence_post_card"
}
-] \ No newline at end of file
+]
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
index 19bb06fa58..6787b885b9 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -14,10 +14,14 @@ SRC_URI += "file://assert-gpio-log@.service \
file://deassert-post-end.service \
file://deassert-power-good \
file://deassert-power-good.service \
- file://deassert-power-hsc-good \
- file://deassert-power-hsc-good.service \
file://deassert-reset-button \
file://deassert-reset-button.service \
+ file://deassert-uart-switch-button \
+ file://deassert-uart-switch-button.service \
+ file://host-power-off \
+ file://host-power-off.service \
+ file://host-power-on \
+ file://host-power-on.service \
file://logging \
file://multi-gpios-sys-init \
file://multi-gpios-sys-init.service \
@@ -36,6 +40,7 @@ SYSTEMD_SERVICE:${PN} += " \
deassert-power-good.service \
deassert-post-end.service \
deassert-reset-button.service \
+ deassert-uart-switch-button.service \
multi-gpios-sys-init.service \
"
@@ -67,7 +72,10 @@ do_install:append:() {
install -m 0755 ${WORKDIR}/assert-power-good ${D}${libexecdir}/${PN}/
install -m 0755 ${WORKDIR}/deassert-power-good ${D}${libexecdir}/${PN}/
- install -m 0755 ${WORKDIR}/deassert-power-hsc-good ${D}${libexecdir}/${PN}/
+ install -m 0755 ${WORKDIR}/deassert-uart-switch-button ${D}${libexecdir}/${PN}/
+
+ install -m 0755 ${WORKDIR}/host-power-off ${D}${libexecdir}/${PN}/
+ install -m 0755 ${WORKDIR}/host-power-on ${D}${libexecdir}/${PN}/
}
SYSTEMD_OVERRIDE:${PN}-monitor += "phosphor-multi-gpio-monitor.conf:phosphor-multi-gpio-monitor.service.d/phosphor-multi-gpio-monitor.conf"
diff --git a/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager/led-group-config.json b/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager/led-group-config.json
index 00e2293225..23e7f8b041 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager/led-group-config.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager/led-group-config.json
@@ -6,6 +6,7 @@
{
"Name" : "bmc_heartbeat_amber",
"Action" : "Blink",
+ "Priority" : "Blink",
"DutyOn" : 50,
"Period" : 1000
}
@@ -27,8 +28,9 @@
{
"Name": "fp_id_amber",
"Action": "Blink",
+ "Priority" : "Blink",
"DutyOn": 50,
- "Period": 250
+ "Period": 1000
}
]
}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
index 6b12a398f7..0aa18444ad 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
@@ -1,3 +1,4 @@
+# phosphor led configuration
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append = " file://led-group-config.json"
@@ -5,3 +6,8 @@ SRC_URI:append = " file://led-group-config.json"
do_install:append() {
install -m 0644 ${WORKDIR}/led-group-config.json ${D}${datadir}/phosphor-led-manager/
}
+
+# Harma power led is follows the host status.
+CHASSIS_TARGETS = ""
+TGTFMT = ""
+
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff
index bd3a3fd84d..4a0d7e02e9 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff
@@ -2,4 +2,5 @@
# shellcheck source=meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
source /usr/libexec/phosphor-state-manager/power-cmd
-power_reset
+
+force_power_off
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff@.service
new file mode 100644
index 0000000000..09494c1cd9
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweroff@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=power off chassis:%i
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-state-manager/chassis-poweroff %i
+
+[Install]
+WantedBy=obmc-chassis-hard-poweroff@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
new file mode 100644
index 0000000000..06bd986563
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
@@ -0,0 +1,2 @@
+#!/bin/bash
+exit 0
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service
new file mode 100644
index 0000000000..e65c96369b
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/chassis-poweron@.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=power on chassis:%i
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-state-manager/chassis-poweron %i
+
+[Install]
+RequiredBy=obmc-chassis-poweron@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff
index 506879e96e..4a0d7e02e9 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff
@@ -2,4 +2,5 @@
# shellcheck source=meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
source /usr/libexec/phosphor-state-manager/power-cmd
-power_off
+
+force_power_off
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff@.service
new file mode 100644
index 0000000000..062d4f2098
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-force-poweroff@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=power off host:%i
+After=obmc-host-stop-pre@%i.target
+Before=obmc-host-stopping@%i.target
+Conflicts=obmc-host-startmin@%i.target
+
+[Service]
+Restart=no
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/libexec/phosphor-state-manager/host-force-poweroff %i
+
+[Install]
+RequiredBy=obmc-host-stop@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff
index b2a09f09be..b83c8c6aad 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff
@@ -2,8 +2,5 @@
# shellcheck source=meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
source /usr/libexec/phosphor-state-manager/power-cmd
-if [ "$(power_status)" == "on" ]; then
- power_off
- sleep 10
- power_on
-fi
+
+graceful_power_off
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff@.service
new file mode 100644
index 0000000000..c8af4ee700
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-graceful-poweroff@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=power off host:%i
+Wants=obmc-host-stop-pre@%i.target
+Before=obmc-host-stop-pre@%i.target
+Conflicts=obmc-host-start@%i.target
+ConditionPathExists=!/run/openbmc/host@%i-request
+
+[Service]
+Restart=no
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/libexec/phosphor-state-manager/host-graceful-poweroff %i
+
+[Install]
+WantedBy=obmc-host-shutdown@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle@.service
deleted file mode 100644
index f45e71f8fe..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powercycle@.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Host Power Cycle: %i
-
-[Service]
-Type=oneshot
-ExecStart=/usr/libexec/phosphor-state-manager/host-powercycle %i
-
-[Install]
-WantedBy=obmc-host-reboot@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff@.service
deleted file mode 100644
index 3ead57e051..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-poweroff@.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=power off host:%i
-
-[Service]
-Type=oneshot
-ExecStart=/usr/libexec/phosphor-state-manager/host-poweroff %i
-
-[Install]
-WantedBy=obmc-host-shutdown@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset@.service
deleted file mode 100644
index 0fd059ce16..0000000000
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/host-powerreset@.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Host Power Reset: %i
-
-[Service]
-Type=oneshot
-ExecStart=/usr/libexec/phosphor-state-manager/host-powerreset %i
-
-[Install]
-WantedBy=obmc-host-force-warm-reboot@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/phosphor-wait-power-off@.service b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/phosphor-wait-power-off@.service
new file mode 100644
index 0000000000..74368c273e
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/phosphor-wait-power-off@.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=Wait for Power%i to turn off
+Before=obmc-power-off@%i.target
+Wants=obmc-power-stop@%i.target
+Before=obmc-power-stop@%i.target
+Wants=obmc-power-stop-pre@%i.target
+After=obmc-power-stop-pre@%i.target
+Conflicts=obmc-chassis-poweron@%i.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+# This is wrong, but at least gives us something since we're not using
+# skeleton.
+ExecStart=sleep 15
+ExecStart=/bin/rm -f /run/openbmc/host@%i-request
+
+[Install]
+RequiredBy=obmc-host-stop@%i.target
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
index 6f6f411b53..9587dce7fc 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd
@@ -12,10 +12,9 @@ power_status() {
fi
}
-# DC off
-power_off() {
+# Force DC off
+force_power_off() {
if [ "$(power_status)" == "on" ]; then
- echo "Set Host Power Off"
set_gpio power-host-control 0
sleep 6
set_gpio power-host-control 1
@@ -23,6 +22,22 @@ power_off() {
fi
}
+# Graceful DC off
+graceful_power_off() {
+ if [ "$(power_status)" == "on" ]; then
+ set_gpio power-host-control 0
+ sleep 1
+ set_gpio power-host-control 1
+ sleep 1
+
+ # wait host power off
+ sleep 10
+ if [ "$(power_status)" == "on" ]; then
+ force_power_off
+ fi
+ fi
+}
+
# DC on
power_on() {
if [ "$(power_status)" == "off" ]; then
@@ -35,25 +50,13 @@ power_on() {
do
sleep 1
if [ "$(power_status)" == "on" ]; then
-
- echo "Set Host Power On"
return 0
fi
if [ "$i" -eq 10 ]; then
- echo "Set Host Power On Fail"
return 1
fi
done
fi
return 0
}
-
-# Host reset
-power_reset() {
- echo "Set Host Reset"
- set_gpio reset-control 0
- sleep 1
- set_gpio reset-control 1
- sleep 1
-}
diff --git a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager_%.bbappend
index d89a0ba8a9..72f7faa2a5 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager_%.bbappend
@@ -1,8 +1,11 @@
+#
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
PACKAGECONFIG:remove = "only-run-apr-on-power-loss"
PACKAGECONFIG:append = " host-gpio"
+# Chassis Config
+# TODO: Remove it when 69903 applied
CHASSIS_DEFAULT_TARGETS:remove = " \
obmc-chassis-powerreset@{}.target.requires/phosphor-reset-chassis-on@{}.service \
obmc-chassis-powerreset@{}.target.requires/phosphor-reset-chassis-running@{}.service \
@@ -10,32 +13,88 @@ CHASSIS_DEFAULT_TARGETS:remove = " \
obmc-chassis-poweron@{}.target.requires/obmc-power-start@{}.service \
"
+# TODO: Remove it when 69903 applied
+CHASSIS_DEFAULT_TARGETS:remove = " \
+ obmc-chassis-poweron@{}.target.wants/chassis-poweron@{}.service \
+ obmc-chassis-hard-poweroff@{}.target.wants/chassis-poweroff@{}.service \
+ obmc-chassis-powercycle@{}.target.wants/chassis-powercycle@{}.service \
+ "
+
+# TODO: Remove it when 69903 applied
+CHASSIS_DEFAULT_TARGETS:append = " \
+ obmc-chassis-poweron@{}.target.requires/chassis-poweron@{}.service \
+ obmc-chassis-powercycle@{}.target.requires/chassis-powercycle@{}.service \
+ "
+# TODO: Remove it when 69903 commit
CHASSIS_DEFAULT_TARGETS:append = " \
- obmc-chassis-hard-poweroff@{}.target.wants/host-poweroff@0.service \
+ obmc-chassis-poweroff@{}.target.requires/obmc-powered-off@{}.service \
"
+# Harma Chassis off is host force off
+CHASSIS_DEFAULT_TARGETS:append = " \
+ obmc-chassis-hard-poweroff@{}.target.requires/host-force-poweroff@{}.service \
+ "
+
+# Host Config
HOST_DEFAULT_TARGETS:remove = " \
- obmc-host-start@{}.target.wants/host-poweron@{}.service \
- obmc-host-force-warm-reboot@{}.target.requires/obmc-host-stop@{}.target \
- obmc-host-force-warm-reboot@{}.target.requires/phosphor-reboot-host@{}.service \
-"
+ obmc-host-warm-reboot@{}.target.requires/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service \
+ "
+# TODO: Remove it when 69903 applied.
HOST_DEFAULT_TARGETS:append = " \
obmc-host-startmin@{}.target.requires/host-poweron@{}.service \
-"
+ "
+
+# TODO: Remove it when 69903 applied.
+HOST_DEFAULT_TARGETS:append = " \
+ obmc-host-shutdown@{}.target.requires/host-graceful-poweroff@{}.service \
+ obmc-host-warm-reboot@{}.target.requires/host-graceful-poweroff@{}.service \
+ "
+
+# TODO: Remove it when 69903 applied.
+HOST_DEFAULT_TARGETS:append = " \
+ obmc-host-stop@{}.target.requires/host-force-poweroff@{}.service \
+ "
+
+# TODO: Remove it when 69903 applied.
+HOST_DEFAULT_TARGETS:remove = " \
+ obmc-host-shutdown@{}.target.wants/host-poweroff@{}.service \
+ obmc-host-start@{}.target.wants/host-poweron@{}.service \
+ obmc-host-reboot@{}.target.wants/host-powercycle@{}.service \
+ obmc-host-force-warm-reboot@{}.target.wants/host-powerreset@{}.service \
+ "
+
+# TODO: Remove when 69903 applied.
+HOST_DEFAULT_TARGETS:remove = " \
+ obmc-host-reboot@{}.target.requires/obmc-host-shutdown@{}.service \
+ "
+
+#We need to ensure that the chassis power is always on.
+CHASSIS_DEFAULT_TARGETS:remove = " \
+ obmc-host-shutdown@{}.target.requires/obmc-chassis-poweroff@{}.target \
+ "
+
+HARD_OFF_TMPL_CTRL=""
+HARD_OFF_TGTFMT_CTRL=""
+HARD_OFF_FMT_CTRL=""
+HARD_OFF_INSTFMT_CTRL=""
+
SRC_URI:append = " \
- file://chassis-powercycle@.service \
- file://host-poweroff@.service \
- file://host-poweron@.service \
- file://host-powercycle@.service \
- file://host-powerreset@.service \
file://chassis-powercycle \
- file://host-poweroff \
+ file://chassis-powercycle@.service \
+ file://chassis-poweroff \
+ file://chassis-poweroff@.service \
+ file://chassis-poweron \
+ file://chassis-poweron@.service \
+ file://host-force-poweroff \
+ file://host-force-poweroff@.service \
+ file://host-graceful-poweroff \
+ file://host-graceful-poweroff@.service \
file://host-poweron \
- file://host-powercycle \
- file://host-powerreset \
+ file://host-poweron@.service \
file://power-cmd \
+ file://phosphor-wait-power-off@.service \
file://discover-sys-init.conf \
file://phosphor-state-manager-init \
file://phosphor-state-manager-init.conf \
@@ -48,11 +107,12 @@ do_install:append() {
install -m 0644 ${WORKDIR}/*.service ${D}${systemd_system_unitdir}/
install -d ${D}${libexecdir}/${PN}
+ install -m 0755 ${WORKDIR}/chassis-poweroff ${D}${libexecdir}/${PN}/
+ install -m 0755 ${WORKDIR}/chassis-poweron ${D}${libexecdir}/${PN}/
install -m 0755 ${WORKDIR}/chassis-powercycle ${D}${libexecdir}/${PN}/
- install -m 0755 ${WORKDIR}/host-poweroff ${D}${libexecdir}/${PN}/
+ install -m 0755 ${WORKDIR}/host-force-poweroff ${D}${libexecdir}/${PN}/
+ install -m 0755 ${WORKDIR}/host-graceful-poweroff ${D}${libexecdir}/${PN}/
install -m 0755 ${WORKDIR}/host-poweron ${D}${libexecdir}/${PN}/
- install -m 0755 ${WORKDIR}/host-powercycle ${D}${libexecdir}/${PN}/
- install -m 0755 ${WORKDIR}/host-powerreset ${D}${libexecdir}/${PN}/
install -m 0755 ${WORKDIR}/power-cmd ${D}${libexecdir}/${PN}/
install -m 0755 ${WORKDIR}/phosphor-state-manager-init ${D}${libexecdir}/${PN}/
}