summaryrefslogtreecommitdiff
path: root/meta-facebook
diff options
context:
space:
mode:
Diffstat (limited to 'meta-facebook')
-rw-r--r--meta-facebook/conf/machine/include/facebook.inc1
-rw-r--r--meta-facebook/meta-bletchley/conf/bblayers.conf.sample15
-rw-r--r--meta-facebook/meta-bletchley/conf/machine/bletchley.conf10
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff@.service10
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron@.service10
-rwxr-xr-xmeta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-ctrl101
-rwxr-xr-xmeta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init185
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init-calibration@.service11
-rwxr-xr-xmeta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl178
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb37
-rwxr-xr-xmeta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-early-sys-init82
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.service11
-rw-r--r--meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb25
-rw-r--r--meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed/bletchley.cfg30
-rw-r--r--meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed_%.bbappend2
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config.bb23
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config/bletchley-ipmi-fru.yaml38
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/images/fb-bletchley-phosphor-image.inc5
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc2
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend26
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend5
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config-native.bb18
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config/led.yaml89
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network/config.json3
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network_%.bbappend12
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme/nvme_config.json36
-rw-r--r--meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme_%.bbappend8
-rw-r--r--meta-facebook/meta-tiogapass/conf/bblayers.conf.sample14
-rw-r--r--meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample14
-rw-r--r--meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch61
-rw-r--r--[-rwxr-xr-x]meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch57
-rwxr-xr-xmeta-facebook/recipes-fb/ipmi/fb-ipmi-oem_git.bb2
-rw-r--r--meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/bmc-set-time.service12
-rw-r--r--meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/set-bmc-time-from-host116
-rw-r--r--meta-facebook/recipes-phosphor/datetime/phosphor-time-manager_%.bbappend19
-rw-r--r--meta-facebook/recipes-phosphor/images/fb-phosphor-image.inc9
-rw-r--r--meta-facebook/recipes-phosphor/images/obmc-phosphor-image.bbappend12
-rw-r--r--meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host1.json2
-rw-r--r--meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host2.json10
-rw-r--r--meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host3.json10
-rw-r--r--meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host4.json10
-rw-r--r--meta-facebook/recipes-x86/chassis/x86-power-control_%.bbappend2
42 files changed, 1181 insertions, 142 deletions
diff --git a/meta-facebook/conf/machine/include/facebook.inc b/meta-facebook/conf/machine/include/facebook.inc
index 47b641dfc..c61237934 100644
--- a/meta-facebook/conf/machine/include/facebook.inc
+++ b/meta-facebook/conf/machine/include/facebook.inc
@@ -15,6 +15,7 @@ PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_wo
PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-fb-apps"
IMAGE_FEATURES:remove = "obmc-ikvm"
+IMAGE_FEATURES:append = " allow-root-login"
# Most of our hardware uses the default ttyS4 but at 57600.
SERIAL_CONSOLES:facebook = "57600;ttyS4"
diff --git a/meta-facebook/meta-bletchley/conf/bblayers.conf.sample b/meta-facebook/meta-bletchley/conf/bblayers.conf.sample
index 3b24ed861..84dcddfbb 100644
--- a/meta-facebook/meta-bletchley/conf/bblayers.conf.sample
+++ b/meta-facebook/meta-bletchley/conf/bblayers.conf.sample
@@ -20,18 +20,3 @@ BBLAYERS ?= " \
##OEROOT##/meta-facebook \
##OEROOT##/meta-facebook/meta-bletchley \
"
-BBLAYERS_NON_REMOVABLE ?= " \
- ##OEROOT##/meta \
- ##OEROOT##/meta-poky \
- ##OEROOT##/meta-openembedded/meta-oe \
- ##OEROOT##/meta-openembedded/meta-networking \
- ##OEROOT##/meta-openembedded/meta-perl \
- ##OEROOT##/meta-openembedded/meta-python \
- ##OEROOT##/meta-openembedded/meta-webserver \
- ##OEROOT##/meta-security \
- ##OEROOT##/meta-security/meta-tpm \
- ##OEROOT##/meta-phosphor \
- ##OEROOT##/meta-aspeed \
- ##OEROOT##/meta-facebook \
- ##OEROOT##/meta-facebook/meta-bletchley \
- "
diff --git a/meta-facebook/meta-bletchley/conf/machine/bletchley.conf b/meta-facebook/meta-bletchley/conf/machine/bletchley.conf
index 9427df28a..6b7711a62 100644
--- a/meta-facebook/meta-bletchley/conf/machine/bletchley.conf
+++ b/meta-facebook/meta-bletchley/conf/machine/bletchley.conf
@@ -1,6 +1,5 @@
-#KMACHINE = "aspeed"
-#KERNEL_DEVICETREE = "${KMACHINE}-bmc-facebook-${MACHINE}.dtb"
-KERNEL_DEVICETREE = "aspeed-ast2600-evb.dtb"
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-facebook-${MACHINE}.dtb"
UBOOT_MACHINE = "ast2600_openbmc_spl_defconfig"
UBOOT_DEVICETREE = "ast2600a1-evb"
@@ -12,3 +11,8 @@ require conf/machine/include/obmc-bsp-common.inc
require conf/machine/include/facebook-tpm2.inc
FLASH_SIZE = "131072"
+
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "bletchley-led-manager-config-native"
+
+OBMC_HOST_INSTANCES = "0 1 2 3 4 5 "
+
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff@.service b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff@.service
new file mode 100644
index 000000000..50cd53283
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Power off System in Sled%i by Step Motor
+Requires=motor-init-calibration@%i.service
+After=motor-init-calibration@%i.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/sbin/power-ctrl sled%i off
+SyslogIdentifier=power-ctrl
+
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron@.service b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron@.service
new file mode 100644
index 000000000..6ff11202d
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Power on System in Sled%i by Step Motor
+Requires=motor-init-calibration@%i.service
+After=motor-init-calibration@%i.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/sbin/power-ctrl sled%i on
+SyslogIdentifier=power-ctrl
+
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-ctrl b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-ctrl
new file mode 100755
index 000000000..3f8f2ca21
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-ctrl
@@ -0,0 +1,101 @@
+#!/bin/bash -e
+#
+# Control step motor rotate of sled
+
+function set_gpio()
+{
+ NET_NAME=$1
+ OUT_VAL=$2
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "set_gpio: can not find gpio, $NET_NAME"
+ return 1
+ fi
+ echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
+ if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
+ echo " failed"
+ return 1
+ fi
+ echo " success"
+ return 0
+}
+
+#Get i2c bus number for sledN
+function get_bus_num() {
+ SLED_NUM=$1
+ local bus=0
+
+ if [[ "$SLED_NUM" = [0-5] ]]; then
+ bus="$SLED_NUM"
+ fi
+ echo "$bus"
+}
+
+#Enable sledN Motor VRef
+function open_vref() {
+ i2cset -f -y "${1}" 0x67 0x06 0x95
+}
+
+#Disable sledN Motor VRef
+function close_vref() {
+ i2cset -f -y "${1}" 0x67 0x06 0x55
+}
+
+#######################################
+# Setting step motor control pins to start/stop motor
+# Arguments:
+# 1. SLED NUMBER
+# 2. Value of STBY RESET PIN
+# 3. Value of ENABLE PIN
+# 4. Value of DIRECTION PIN
+#######################################
+function set_motor() {
+ STBY_PIN="SLED${1}_MD_STBY_RESET"
+ EN_PIN="SLED${1}_MD_IOEXP_EN_FAULT"
+ DIR_PIN="SLED${1}_MD_DIR"
+ set_gpio "$STBY_PIN" "$2"
+ set_gpio "$EN_PIN" "$3"
+ set_gpio "$DIR_PIN" "$4"
+}
+
+function show_usage(){
+ echo "Usage: motor-ctrl [sled0 | sled1 | sled2 | sled3 | sled4 | sled5] [f r s]"
+ echo " f : Step Motor go forward"
+ echo " r : Step Motor go reverse"
+ echo " s : Step Motor stop "
+}
+
+if [ $# -ne 2 ]; then
+ show_usage
+ exit 1;
+fi
+
+if [[ "$1" =~ ^(slot[0-5]{1})$ ]] || [[ "$1" =~ ^(sled[0-5]{1})$ ]]; then
+ SLED=$1
+ SLED_NUM=${SLED:4}
+ I2C_NUM=$(get_bus_num "$SLED_NUM")
+ ACTION=$2
+else
+ echo "invalid sled name: $1"
+ exit 1;
+fi
+
+if [[ "$ACTION" == "s" ]]; then
+ echo "stop motor"
+ set_motor "$SLED_NUM" 1 0 0
+ close_vref "$I2C_NUM"
+elif [[ "$ACTION" == "f" ]];then
+ echo "start motor, direction:forward"
+ set_motor "$SLED_NUM" 1 1 0
+ open_vref "$I2C_NUM"
+elif [[ "$ACTION" == "r" ]];then
+ echo "start motor, direction:reverse"
+ set_motor "$SLED_NUM" 1 1 1
+ open_vref "$I2C_NUM"
+else
+ echo "Error: Unknown action!"
+ exit 1
+fi
+
+exit 0
+
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init
new file mode 100755
index 000000000..cecb99618
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init
@@ -0,0 +1,185 @@
+#!/bin/bash -e
+
+# Initialize for step motor of sled:
+# Enable pwm and setup pwm duty
+# Setup gpio pins for step motor control
+# Moving step motor back to initial position
+
+export PATH=$PATH:/usr/libexec
+
+PWM_BASE_ADDR="0x1e61"
+DEV_FILE="/dev/mem"
+CALIBRATE_TIMEOUT=120
+
+#Get pwm register address for sledN
+function get_pwm_offset() {
+ local offset=0
+ case $1 in
+ 0)
+ offset="0080"
+ ;;
+ 1)
+ offset="0090"
+ ;;
+ 2)
+ offset="00a0"
+ ;;
+ 3)
+ offset="00b0"
+ ;;
+ 4)
+ offset="00c0"
+ ;;
+ 5)
+ offset="00d0"
+ ;;
+ esac
+
+ echo ${PWM_BASE_ADDR}${offset}
+}
+
+#Get pwm duty register address for sledN
+function get_duty_offset() {
+ local offset=0
+ case $1 in
+ 0)
+ offset="0084"
+ ;;
+ 1)
+ offset="0094"
+ ;;
+ 2)
+ offset="00a4"
+ ;;
+ 3)
+ offset="00b4"
+ ;;
+ 4)
+ offset="00c4"
+ ;;
+ 5)
+ offset="00d4"
+ ;;
+ esac
+
+ echo ${PWM_BASE_ADDR}${offset}
+}
+
+#Enable pwm for sledN
+function open_pwm() {
+ local SLED_NUM="$1"
+ echo "Open pwm of sled$SLED_NUM"
+ #enable BMC PWM
+ if [ ! -c "$DEV_FILE" ]; then
+ mknod /dev/mem c 1 1
+ fi
+
+ PWM_OFFSET=$(get_pwm_offset "$SLED_NUM")
+ DUTY_OFFSET=$(get_duty_offset "$SLED_NUM")
+ echo "setting ${PWM_OFFSET} to 0x000113F3"
+ echo "setting ${DUTY_OFFSET} to 0xFF006400"
+ devmem "$PWM_OFFSET" 32 0x000113F3
+ devmem "$DUTY_OFFSET" 32 0xFF006400
+}
+
+function set_gpio()
+{
+ NET_NAME=$1
+ OUT_VAL=$2
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "set_gpio: can not find gpio, $NET_NAME"
+ return 1
+ fi
+ echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
+ if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
+ echo " failed"
+ return 1
+ fi
+ echo " success"
+ return 0
+}
+
+function get_gpio()
+{
+ NET_NAME=$1
+ RET_VAL=2
+
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "get_gpio: can not find gpio, $NET_NAME" >&2
+ return 1
+ fi
+ if ! RET_VAL=$(gpioget "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}") ; then
+ echo "get_gpio: get ${NET_NAME} failed" >&2
+ return 1
+ fi
+ echo "${RET_VAL}"
+ return 0
+}
+
+#Init gpio pins for step motor control
+function init_gpios() {
+ echo "Init GPIOs:"
+ motor_ctrl_gpio_pins_names=( "SLED${1}_MD_STBY_RESET"
+ "SLED${1}_MD_IOEXP_EN_FAULT"
+ "SLED${1}_MD_DIR"
+ "SLED${1}_MD_DECAY"
+ "SLED${1}_MD_MODE1"
+ "SLED${1}_MD_MODE2"
+ "SLED${1}_MD_MODE3" )
+
+ for gpio_name in "${motor_ctrl_gpio_pins_names[@]}"; do
+ set_gpio "$gpio_name" 0
+ done
+}
+
+if [[ "$1" =~ ^(slot[0-5]{1})$ ]] || [[ "$1" =~ ^(sled[0-5]{1})$ ]]; then
+ SLED=$1
+ SLED_NUM=${SLED:4}
+else
+ #show_usage
+ echo "invalid sled name: ${1}"
+ exit 1;
+fi
+
+#Check if sled is present
+SLED_PRESENT=$(get_gpio "presence-sled${SLED_NUM}")
+if [ "$SLED_PRESENT" != 0 ];then
+ echo "${SLED} is not present, skip motor initialize"
+ exit 1
+fi
+
+#Init gpios
+init_gpios "$SLED_NUM"
+
+#enable pwm
+open_pwm "$SLED_NUM"
+
+#SLED{N}_MS_DETECT1 (initial position)
+DETECT_PIN1="SLED${SLED_NUM}_MS_DETECT1"
+INIT_POS=$(get_gpio "$DETECT_PIN1")
+
+if [ "$INIT_POS" -eq 1 ];then
+ time_count=0
+ echo "Making motor back to initial position..."
+ motor-ctrl "$SLED" r >/dev/null
+ while [ "$INIT_POS" -eq 1 ] ;do
+ INIT_POS=$(get_gpio "$DETECT_PIN1")
+ sleep 0.1
+ time_count=$(( time_count + 1 ))
+ if [ $time_count -gt $CALIBRATE_TIMEOUT ];then
+ echo "Error: Step motor run over 1 cycle but switch never triggered"
+ break
+ fi
+ done
+ motor-ctrl "$SLED" s >/dev/null
+fi
+
+if [ "$INIT_POS" -eq 0 ];then
+ echo "Motor calibrated to initial position."
+ exit 0
+else
+ echo "Find motor initial position failed"
+ exit 1
+fi
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init-calibration@.service b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init-calibration@.service
new file mode 100644
index 000000000..aab61b7fe
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/motor-init-calibration@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Motor Initialize for sled%i
+
+[Service]
+ExecStart=/usr/libexec/motor-init sled%i
+SyslogIdentifier=Motor Initialize sled%i
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl
new file mode 100755
index 000000000..111ce8bbc
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/power-ctrl
@@ -0,0 +1,178 @@
+#!/bin/bash
+#
+# Power Control tool
+# Enable/disable AC relay
+# On/off System by step moter to press power key
+
+export PATH=$PATH:/usr/sbin:/usr/libexec
+
+DELAY_POWER_ON="0.5"
+DELAY_POWER_OFF="5"
+POWER_BTN_TIMEOUT_CNT=60
+
+#Switch pull low while it be touched
+function wait_for_switch() {
+ TARGET_PIN=$1
+ TARGET_SWITCH=1
+ TIME_CNT=0
+ while [ "$TARGET_SWITCH" -eq 1 ] ;do
+ TARGET_SWITCH=$(get_gpio "$TARGET_PIN")
+ sleep 0.1
+ TIME_CNT=$(( TIME_CNT +1))
+ if [ $TIME_CNT -gt $POWER_BTN_TIMEOUT_CNT ];then
+ echo "Error: Too long to get target switch, force exit" >&2
+ break
+ fi
+ done
+}
+
+function trigger_power_button() {
+ local sled_num=$1
+ local delay_time=$2
+
+ #SLED{N}_MS_DETECT1 (initial position)
+ GPIO_DETECT_PIN1="SLED${sled_num}_MS_DETECT1"
+ #SLED{N}_MS_DETECT0 (MAC position)
+ GPIO_DETECT_PIN0="SLED${sled_num}_MS_DETECT0"
+
+ echo "Motor go forward to press Power key"
+ motor-ctrl "sled${sled_num}" f >/dev/null
+ wait_for_switch "${GPIO_DETECT_PIN0}"
+ motor-ctrl "sled${sled_num}" s >/dev/null
+
+ if [ "$(get_gpio "$GPIO_DETECT_PIN0")" -eq 0 ];then
+ echo "Power key switch triggered"
+ echo "Press power key for Sled${1} ${delay_time} seconds..."
+ sleep "$delay_time"
+ else
+ echo "Power key switch not trigger, back motor to initail position"
+ fi
+
+ motor-ctrl "sled${sled_num}" r >/dev/null
+ wait_for_switch "${GPIO_DETECT_PIN1}"
+ motor-ctrl "sled${sled_num}" s >/dev/null
+ if [ "$(get_gpio "$GPIO_DETECT_PIN1")" -eq 0 ];then
+ echo "Motor reverse to initial position successful"
+ else
+ echo "Initail position switch not trigger, force stop motor"
+ fi
+}
+
+#Get i2c bus number for sledN
+function get_bus_num() {
+ SLED_NUM=$1
+ local bus=0
+
+ if [[ "$SLED_NUM" = [0-5] ]]; then
+ bus="$SLED_NUM"
+ fi
+ echo "$bus"
+}
+
+function set_gpio()
+{
+ NET_NAME=$1
+ OUT_VAL=$2
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "set_gpio: can not find gpio, $NET_NAME"
+ return 1
+ fi
+ echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
+ if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
+ echo " failed"
+ return 1
+ fi
+ echo " success"
+ return 0
+}
+
+function get_gpio()
+{
+ NET_NAME=$1
+ RET_VAL=2
+
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "get_gpio: can not find gpio, $NET_NAME" >&2
+ return 1
+ fi
+ if ! RET_VAL=$(gpioget "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}") ; then
+ echo "get_gpio: get ${NET_NAME} failed" >&2
+ return 1
+ fi
+ echo "${RET_VAL}"
+ return 0
+}
+
+function get_ac_status(){
+ i2c_bus=$(get_bus_num "$1")
+ p1_output_reg=$(i2cget -f -y "$i2c_bus" 0x76 0x03)
+ p1_config_reg=$(i2cget -f -y "$i2c_bus" 0x76 0x07)
+ host_pwr="$(( (p1_output_reg & 0x80)>>7 ))"
+ is_output="$(( (~p1_config_reg & 0x80)>>7 ))"
+
+ if [ "$(( host_pwr & is_output ))" -eq 1 ];then
+ echo "AC on"
+ else
+ echo "AC off"
+ fi
+}
+
+function show_usage(){
+ echo "Usage: power-ctrl [sled0 | sled1 | sled2 | sled3 | sled4 | sled5] [on off ac-on ac-off status]"
+ echo " power-ctrl chassis-cycle"
+}
+
+if [ $# -eq 1 ]; then
+ if [ "$1" = "chassis-cycle" ];then
+ echo "chassis cycle...."
+ i2cset -y -f 12 0x11 0xd9 c
+ exit 0
+ else
+ echo "Invalid argument: [ $1 ]"
+ show_usage
+ exit 1;
+ fi
+fi
+
+if [ $# -gt 2 ]; then
+ echo "Too many arguments"
+ show_usage
+ exit 1;
+fi
+
+if [[ "$1" =~ ^(slot[0-5]{1})$ ]] || [[ "$1" =~ ^(sled[0-5]{1})$ ]]; then
+ SLED=$1
+ ACTION=$2
+ SLED_NUM=${SLED:4}
+else
+ echo "invalid sled name: ${1}"
+ show_usage
+ exit 1;
+fi
+
+#Check if sled is present
+SLED_PRESENT=$(get_gpio "presence-sled${SLED_NUM}")
+if [ "$SLED_PRESENT" != 0 ];then
+ echo "${SLED} is not present!"
+ exit 1
+fi
+
+if [[ "$ACTION" == "on" ]]; then
+ echo "Power on ${SLED}"
+ trigger_power_button "$SLED_NUM" "$DELAY_POWER_ON"
+elif [[ "$ACTION" == "off" ]];then
+ echo "Power off ${SLED}"
+ trigger_power_button "$SLED_NUM" "$DELAY_POWER_OFF"
+elif [[ "$ACTION" == "status" ]];then
+ get_ac_status "$SLED_NUM"
+ #TODO : check or record Host(DC) power status
+elif [[ "$ACTION" == "ac-on" ]];then
+ set_gpio "power-host${SLED_NUM}" 1
+elif [[ "$ACTION" == "ac-off" ]];then
+ set_gpio "power-host${SLED_NUM}" 0
+else
+ echo "Unknown action: [ ${ACTION} ]"
+ show_usage
+fi
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb
new file mode 100644
index 000000000..2705eb850
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Bletchley Motor control"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit obmc-phosphor-systemd
+
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN} += "libgpiod-tools"
+RDEPENDS:${PN} += "i2c-tools"
+
+S = "${WORKDIR}"
+SRC_URI += "file://motor-init \
+ file://motor-ctrl \
+ file://power-ctrl "
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/power-ctrl ${D}${sbindir}
+
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/motor-init ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/motor-ctrl ${D}${libexecdir}
+}
+
+MOTOR_INIT_INSTFMT= "motor-init-calibration@{0}.service"
+PWR_ON_INSTFMT="host-poweron@.service:host-poweron@{0}.service"
+PWR_OFF_INSTFMT="host-poweroff@.service:host-poweroff@{0}.service"
+
+SYSTEMD_SERVICE:${PN} ="${@compose_list(d, 'MOTOR_INIT_INSTFMT', 'OBMC_HOST_INSTANCES')}"
+FILES:${PN} += "${systemd_system_unitdir}/motor-init-calibration@.service"
+
+SYSTEMD_SERVICE:${PN} +="host-poweron@.service"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'PWR_ON_INSTFMT', 'OBMC_HOST_INSTANCES')}"
+
+SYSTEMD_SERVICE:${PN} +="host-poweroff@.service"
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'PWR_OFF_INSTFMT', 'OBMC_HOST_INSTANCES')}"
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-early-sys-init b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-early-sys-init
new file mode 100755
index 000000000..90a3f72af
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-early-sys-init
@@ -0,0 +1,82 @@
+#!/bin/bash -e
+
+set_gpio()
+{
+ NET_NAME=$1
+ OUT_VAL=$2
+ mapfile -t -d " " GPIO_INFO < <(gpiofind "$NET_NAME")
+ if [ "${#GPIO_INFO[@]}" -ne 2 ]; then
+ echo "set_gpio: can not find gpio, $NET_NAME"
+ return 1
+ fi
+
+ echo -n "set_gpio: set $NET_NAME = $OUT_VAL"
+ if ! gpioset "${GPIO_INFO[0]}" "${GPIO_INFO[1]%$'\n'}"="$OUT_VAL"; then
+ echo " failed"
+ return 1
+ fi
+
+ echo " success"
+ return 0
+}
+
+set_fan()
+{
+ FAN_ID=$1
+ FAN_DUTY=$2
+ SYSFA_PWM_PATH=""
+
+ for file in /sys/devices/platform/pwm-fan"$FAN_ID"/hwmon/hwmon*/pwm1
+ do
+ if [ -e "$file" ]; then
+ SYSFA_PWM_PATH="$file"
+ break
+ fi
+ done
+
+ if [ -z "$SYSFA_PWM_PATH" ]; then
+ echo "set_fan: pwm file not found, chekc fan id ($FAN_ID)"
+ return 1
+ fi
+
+ if [ "$FAN_DUTY" -lt 0 ] || [ "$FAN_DUTY" -gt 100 ]; then
+ echo "set_fan: incorrect fan duty, $FAN_DUTY"
+ return 1
+ fi
+
+ # convert duty (0-100) to pwm value (0-255)
+ PWM_VAL=$(printf "%.0f" $((FAN_DUTY*255/100)))
+
+ echo -n "set_fan: set fan$FAN_ID = $FAN_DUTY"
+ if ! echo "$PWM_VAL" > "$SYSFA_PWM_PATH"; then
+ echo " failed"
+ return 1
+ fi
+
+ echo " success"
+ return 0
+}
+
+# set initial value for GPIO output pins
+set_gpio SEL_SPI2_MUX 1
+set_gpio SPI2_MUX1 1
+set_gpio SPI2_MUX2 1
+set_gpio SPI2_MUX3 1
+set_gpio SWITCH_FRU_MUX 1
+set_gpio BAT_DETECT 1
+set_gpio BMC_BT_WP0 1
+set_gpio BMC_BT_WP1 1
+set_gpio USB2_SEL0_A 1
+set_gpio USB2_SEL1_A 1
+set_gpio USB2_SEL0_B 1
+set_gpio USB2_SEL1_B 1
+set_gpio RST_FRONT_IOEXP 1
+set_gpio BSM_FLASH_LATCH 1
+
+# set initial duty value for each fan
+set_fan 0 70
+set_fan 1 70
+set_fan 2 70
+set_fan 3 70
+
+exit 0;
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.service b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.service
new file mode 100644
index 000000000..481225990
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Bletchley Early System Init
+Before=phosphor-pid-control.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/bletchley-early-sys-init
+SyslogIdentifier=Bletchley Early Init
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb
new file mode 100644
index 000000000..dcbf6e88a
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb
@@ -0,0 +1,25 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit allarch systemd
+
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN} += "libgpiod-tools"
+
+SRC_URI += " \
+ file://bletchley-early-sys-init \
+ file://bletchley-sys-init.service \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN}:append = " \
+ bletchley-sys-init.service \
+ "
+
+do_install() {
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/bletchley-early-sys-init ${D}${libexecdir}
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/bletchley-sys-init.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed/bletchley.cfg b/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed/bletchley.cfg
new file mode 100644
index 000000000..49e07a291
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed/bletchley.cfg
@@ -0,0 +1,30 @@
+# aspeed-pwm driver
+CONFIG_HAVE_CLK=y
+CONFIG_PWM=y
+CONFIG_OF=y
+CONFIG_PWM_ASPEED_AST2600=y
+# pwm-fan driver
+CONFIG_SENSORS_PWM_FAN=y
+# aspeed-tach driver
+CONFIG_SENSORS_TACH_ASPEED_AST2600=y
+# aspeed-adc driver
+CONFIG_COMMON_CLK=y
+CONFIG_ASPEED_ADC=y
+# devmem
+CONFIG_DEVMEM=y
+# fixed-link feature
+CONFIG_PHYLIB=y
+CONFIG_FIXED_PHY=y
+# humidity and temperature sensor
+CONFIG_HDC100X=y
+# interposer HSC driver
+CONFIG_SENSORS_MP5023=y
+# RTC
+CONFIG_RTC_DRV_PCF85363=y
+# FUSB302 driver
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_FUSB302=y
+# SPI GPIO
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_BITBANG=y
diff --git a/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..4727bdf73
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/linux-aspeed:"
+SRC_URI += "file://bletchley.cfg"
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config.bb b/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config.bb
new file mode 100644
index 000000000..7a8f8471c
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config.bb
@@ -0,0 +1,23 @@
+SUMMARY = "YAML configuration for bletchley"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit allarch
+
+SRC_URI = " \
+ file://bletchley-ipmi-fru.yaml \
+ "
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -m 0644 -D bletchley-ipmi-fru.yaml \
+ ${D}${datadir}/${BPN}/ipmi-fru-read.yaml
+}
+
+FILES:${PN}-dev = " \
+ ${datadir}/${BPN}/ipmi-fru-read.yaml \
+ "
+
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config/bletchley-ipmi-fru.yaml b/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config/bletchley-ipmi-fru.yaml
new file mode 100644
index 000000000..8c53a2a7c
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/configuration/bletchley-yaml-config/bletchley-ipmi-fru.yaml
@@ -0,0 +1,38 @@
+0:
+ /system/chassis/bmc:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: FRU File ID
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.Board:
+ xyz.openbmc_project.Inventory.Item.Bmc:
+
+ /system/chassis/bmc/ethernet:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item.NetworkInterface:
+ MACAddress:
+ IPMIFruProperty: Custom Field 3
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.Ethernet: \ No newline at end of file
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/images/fb-bletchley-phosphor-image.inc b/meta-facebook/meta-bletchley/recipes-phosphor/images/fb-bletchley-phosphor-image.inc
new file mode 100644
index 000000000..6636f5090
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/images/fb-bletchley-phosphor-image.inc
@@ -0,0 +1,5 @@
+OBMC_IMAGE_EXTRA_INSTALL:append = " \
+ phosphor-nvme \
+ plat-svc \
+ motor-ctrl \
+"
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc
new file mode 100644
index 000000000..b1bd018a6
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/bmc
@@ -0,0 +1,2 @@
+SYSFS_PATH=/sys/bus/i2c/devices/7-0054/eeprom
+FRUID=0 \ No newline at end of file
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
new file mode 100644
index 000000000..0c78a8f52
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
@@ -0,0 +1,26 @@
+inherit obmc-phosphor-systemd
+
+FILESEXTRAPATHS:prepend:bletchley := "${THISDIR}/${PN}:"
+
+DEPENDS:append:bletchley = " bletchley-yaml-config"
+
+EXTRA_OECONF:bletchley = " \
+ YAML_GEN=${STAGING_DIR_HOST}${datadir}/bletchley-yaml-config/ipmi-fru-read.yaml \
+ "
+
+EEPROM_NAMES = "bmc"
+
+EEPROMFMT = "system/chassis/{0}"
+EEPROM_ESCAPEDFMT = "system-chassis-{0}"
+EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}"
+EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}"
+
+ENVFMT = "obmc/eeproms/{0}"
+SYSTEMD_ENVIRONMENT_FILE:${PN}:append:bletchley := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}"
+
+TMPL = "obmc-read-eeprom@.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+INSTFMT = "obmc-read-eeprom@{0}.service"
+FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}"
+
+SYSTEMD_LINK:${PN}:append:bletchley := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}"
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
new file mode 100644
index 000000000..fd303a04b
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
@@ -0,0 +1,5 @@
+DEPENDS:append:bletchley = " bletchley-yaml-config"
+
+EXTRA_OECONF:bletchley = " \
+ FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/bletchley-yaml-config/ipmi-fru-read.yaml \
+ "
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config-native.bb b/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config-native.bb
new file mode 100644
index 000000000..d06ec861e
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Phosphor LED Group Management for Bletchley"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit native
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Copies example led layout yaml file
+do_install() {
+ SRC=${S}
+ DEST=${D}${datadir}/phosphor-led-manager
+ install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config/led.yaml b/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config/led.yaml
new file mode 100644
index 000000000..4fb482cca
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/leds/bletchley-led-manager-config/led.yaml
@@ -0,0 +1,89 @@
+bmc_booted:
+ sys_log_id:
+ Action: 'On'
+
+sys_identify:
+ sys_log_id:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+
+fan0_fault:
+ fan0_amber:
+ Action: 'On'
+
+fan0_good:
+ fan0_blue:
+ Action: 'On'
+
+fan1_fault:
+ fan1_amber:
+ Action: 'On'
+
+fan1_good:
+ fan1_blue:
+ Action: 'On'
+
+fan2_fault:
+ fan2_amber:
+ Action: 'On'
+
+fan2_good:
+ fan2_blue:
+ Action: 'On'
+
+fan3_fault:
+ fan3_amber:
+ Action: 'On'
+
+fan3_good:
+ fan3_blue:
+ Action: 'On'
+
+sled0_fault:
+ sled0_amber:
+ Action: 'On'
+
+sled0_good:
+ sled0_blue:
+ Action: 'On'
+
+sled1_fault:
+ sled1_amber:
+ Action: 'On'
+
+sled1_good:
+ sled1_blue:
+ Action: 'On'
+
+sled2_fault:
+ sled2_amber:
+ Action: 'On'
+
+sled2_good:
+ sled2_blue:
+ Action: 'On'
+
+sled3_fault:
+ sled3_amber:
+ Action: 'On'
+
+sled3_good:
+ sled3_blue:
+ Action: 'On'
+
+sled4_fault:
+ sled4_amber:
+ Action: 'On'
+
+sled4_good:
+ sled4_blue:
+ Action: 'On'
+
+sled5_fault:
+ sled5_amber:
+ Action: 'On'
+
+sled5_good:
+ sled5_blue:
+ Action: 'On'
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network/config.json b/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network/config.json
new file mode 100644
index 000000000..52280a4e6
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network/config.json
@@ -0,0 +1,3 @@
+{
+ "eth0":"ethernet"
+}
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network_%.bbappend
new file mode 100644
index 000000000..b91e82f91
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/network/phosphor-network_%.bbappend
@@ -0,0 +1,12 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+PACKAGECONFIG:append = " sync-mac"
+SRC_URI += " \
+ file://config.json \
+ "
+FILES:${PN} += "${datadir}/network/*.json"
+
+do_install:append() {
+ install -d ${D}${datadir}/network/
+ install -m 0644 ${WORKDIR}/config.json ${D}${datadir}/network/
+}
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme/nvme_config.json b/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme/nvme_config.json
new file mode 100644
index 000000000..f64382e9c
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme/nvme_config.json
@@ -0,0 +1,36 @@
+{
+ "config": [
+ {
+ "NVMeDriveIndex": 0,
+ "NVMeDriveBusID": 0
+ },
+ {
+ "NVMeDriveIndex": 1,
+ "NVMeDriveBusID": 1
+ },
+ {
+ "NVMeDriveIndex": 2,
+ "NVMeDriveBusID": 2
+ },
+ {
+ "NVMeDriveIndex": 3,
+ "NVMeDriveBusID": 3
+ },
+ {
+ "NVMeDriveIndex": 4,
+ "NVMeDriveBusID": 4
+ },
+ {
+ "NVMeDriveIndex": 5,
+ "NVMeDriveBusID": 5
+ }
+ ],
+ "threshold": [
+ {
+ "criticalHigh": 75,
+ "criticalLow": 0,
+ "maxValue": 127,
+ "minValue": -127
+ }
+ ]
+}
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme_%.bbappend
new file mode 100644
index 000000000..919cef113
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/sensors/phosphor-nvme_%.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://nvme_config.json"
+
+do_install:append() {
+ install -d ${D}/${sysconfdir}/nvme/
+ install -m 0644 ${WORKDIR}/nvme_config.json ${D}/${sysconfdir}/nvme/
+}
diff --git a/meta-facebook/meta-tiogapass/conf/bblayers.conf.sample b/meta-facebook/meta-tiogapass/conf/bblayers.conf.sample
index d8d02ae93..2d4f102a8 100644
--- a/meta-facebook/meta-tiogapass/conf/bblayers.conf.sample
+++ b/meta-facebook/meta-tiogapass/conf/bblayers.conf.sample
@@ -19,17 +19,3 @@ BBLAYERS ?= " \
##OEROOT##/meta-facebook \
##OEROOT##/meta-facebook/meta-tiogapass \
"
-BBLAYERS_NON_REMOVABLE ?= " \
- ##OEROOT##/meta \
- ##OEROOT##/meta-poky \
- ##OEROOT##/meta-openembedded/meta-oe \
- ##OEROOT##/meta-openembedded/meta-networking \
- ##OEROOT##/meta-openembedded/meta-perl \
- ##OEROOT##/meta-openembedded/meta-python \
- ##OEROOT##/meta-openembedded/meta-webserver \
- ##OEROOT##/meta-security \
- ##OEROOT##/meta-phosphor \
- ##OEROOT##/meta-aspeed \
- ##OEROOT##/meta-facebook \
- ##OEROOT##/meta-facebook/meta-tiogapass \
- "
diff --git a/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample b/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample
index 18dc94472..25e19f17f 100644
--- a/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample
+++ b/meta-facebook/meta-yosemitev2/conf/bblayers.conf.sample
@@ -19,17 +19,3 @@ BBLAYERS ?= " \
##OEROOT##/meta-facebook \
##OEROOT##/meta-facebook/meta-yosemitev2 \
"
-BBLAYERS_NON_REMOVABLE ?= " \
- ##OEROOT##/meta \
- ##OEROOT##/meta-poky \
- ##OEROOT##/meta-openembedded/meta-oe \
- ##OEROOT##/meta-openembedded/meta-networking \
- ##OEROOT##/meta-openembedded/meta-perl \
- ##OEROOT##/meta-openembedded/meta-python \
- ##OEROOT##/meta-openembedded/meta-webserver \
- ##OEROOT##/meta-security \
- ##OEROOT##/meta-phosphor \
- ##OEROOT##/meta-aspeed \
- ##OEROOT##/meta-facebook \
- ##OEROOT##/meta-facebook/meta-yosemitev2 \
- "
diff --git a/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch
index 5634ce936..9f2799f68 100644
--- a/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch
+++ b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-board-aspeed-Add-Mux-for-yosemitev2.patch
@@ -1,22 +1,21 @@
-From c2e01a4cc220b9a1c1a6bb52e5f58bcc8d2edc55 Mon Sep 17 00:00:00 2001
-From: manikandan-e <manikandan.hcl.ers.epl@gmail.com>
-Date: Wed, 30 Oct 2019 19:43:51 +0530
-Subject: [PATCH 2/2] board-aspeed-Add-Mux-for-yosemitev2
-
-Signed-off-by: manikandan-e <manikandan.hcl.ers.epl@gmail.com>
+From f09b84e61569f2b991cc3e257c34517a222922d3 Mon Sep 17 00:00:00 2001
+From: Logananth Sundararaj <logananth.s@hcl.com>
+Date: Fri, 3 Dec 2021 15:21:50 +0530
+Subject: [PATCH] board-aspeed-Add-Mux-for-yosemitev2
+Signed-off-by: Logananth Sundararaj <logananth.s@hcl.com>
---
- arch/arm/mach-aspeed/platform_g5.S | 213 +++++++++++++++++++++++++++++++------
- 1 file changed, 183 insertions(+), 30 deletions(-)
+ arch/arm/mach-aspeed/platform_g5.S | 191 ++++++++++++++++++++++++-----
+ 1 file changed, 162 insertions(+), 29 deletions(-)
diff --git a/arch/arm/mach-aspeed/platform_g5.S b/arch/arm/mach-aspeed/platform_g5.S
-index 2ac1ca4..c3ce077 100644
+index 2ac1ca4721..e1c17ae4a3 100644
--- a/arch/arm/mach-aspeed/platform_g5.S
+++ b/arch/arm/mach-aspeed/platform_g5.S
@@ -302,6 +302,156 @@ TIME_TABLE_DDR4_1600:
ldr r2, =0x00000800
.endm
-
+
+ .macro console_bmc
+ ldr r0, =0x1e780024
+ldr r1, [r0]
@@ -149,8 +148,8 @@ index 2ac1ca4..c3ce077 100644
+ mov r2, r2, lsr #12
+ tst r2, #0x01
+ ldr r0, =0x1E784000
-+ moveq r1, #0x0D @ Baudrate 115200
-+ movne r1, #0x01 @ Baudrate 115200, div13
++ moveq r1, #0x1A @ Baudrate 57600
++ movne r1, #0x02 @ Baudrate 57600, div13
+
+ str r1, [r0]
+
@@ -170,7 +169,7 @@ index 2ac1ca4..c3ce077 100644
.macro print_hex_char
and r1, r1, #0xF
cmp r1, #9
-@@ -324,6 +474,36 @@ init_dram:
+@@ -324,6 +474,16 @@ init_dram:
/********************************************
Initial Reset Procedure : Begin
*******************************************/
@@ -180,26 +179,6 @@ index 2ac1ca4..c3ce077 100644
+
+ uart_console_setup
+
-+ /* Debug - UART console message */
-+ ldr r0, =0x1E784000
-+ mov r1, #0x0D @ '\r'
-+ str r1, [r0]
-+ mov r1, #0x0A @ '\n'
-+ str r1, [r0]
-+ mov r1, #0x54 @ 'S'
-+ str r1, [r0]
-+ mov r1, #0x50 @ 'P'
-+ str r1, [r0]
-+ mov r1, #0x4C @ 'L'
-+ str r1, [r0]
-+ mov r1, #0x0D @ '\r'
-+ str r1, [r0]
-+ mov r1, #0x0A @ '\n'
-+ str r1, [r0]
-+ /* End Debug - UART console message */
-+
-+
-+
+ ldr r0, =0x1E720204
+ mov r1, #0x0
+ str r1, [r0]
@@ -207,21 +186,19 @@ index 2ac1ca4..c3ce077 100644
/* Clear AHB bus lock condition */
ldr r0, =0x1e600000
ldr r1, =0xAEED1A03
-@@ -793,7 +973,9 @@ wait_ddr_reset:
+@@ -793,6 +953,8 @@ wait_ddr_reset:
clear_delay_timer
/* end delay 10ms */
-
--/* Debug - UART console message */
+
+ uart_console_setup
+
-+ /* Debug - UART console message */
+ /* Debug - UART console message */
#ifdef CONFIG_DRAM_UART_TO_UART1
ldr r0, =0x1e78909c @ route UART5 to UART Port1, 2016.08.29
- ldr r1, =0x10000004
-@@ -806,35 +988,6 @@ wait_ddr_reset:
+@@ -806,35 +968,6 @@ wait_ddr_reset:
str r1, [r0]
#endif
-
+
- ldr r0, =0x1e78400c
- mov r1, #0x83
- str r1, [r0]
@@ -254,6 +231,6 @@ index 2ac1ca4..c3ce077 100644
ldr r0, =0x1e784000
mov r1, #0x0D @ '\r'
str r1, [r0]
---
-2.7.4
+--
+2.17.1
diff --git a/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch
index cccdd04b5..b39659506 100755..100644
--- a/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch
+++ b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0002-spl-host-console-handle.patch
@@ -1,6 +1,6 @@
-From ca2c08a7e710e4beff2fdf17bba5a74adff13db8 Mon Sep 17 00:00:00 2001
-From: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
-Date: Wed, 10 Jun 2020 17:53:59 +0530
+From 99fdec9719987ce93e4582d31cb7d08c5beb51ef Mon Sep 17 00:00:00 2001
+From: Logananth Sundararaj <logananth.s@hcl.com>
+Date: Mon, 20 Dec 2021 16:51:22 +0530
Subject: [PATCH] spl-host-console-handle
This patch adds four 1S server console through debug card
@@ -13,25 +13,25 @@ GPIOAA5 ---SW_ID2
GPIOAA4 ---SW_ID1
SW_ID8 SW_ID4 SW_ID2 SW_ID1 Position Descritpion
-L L L L 1 1s server slot1 select
+L L L L 1 1s server slot1 select
-L L H 2 1s server slot2 select
+L L L H 2 1s server slot2 select
-L L H L 3 1s server slot3 select
+L L H L 3 1s server slot3 select
-L L H H 4 1s server slot4 select
+L L H H 4 1s server slot4 select
-L H L L 5 BMC Debug port select
+L H L L 5 BMC Debug port select
-L H L H 6 1s server slot1 select
+L H L H 6 1s server slot1 select
-L H H L 7 1s server slot2 select
+L H H L 7 1s server slot2 select
-L H H H 8 1s server slot3 select
+L H H H 8 1s server slot3 select
-H L L L 9 1s server slot4 select
+H L L L 9 1s server slot4 select
-H L L H 10 BMC Debug port select
+H L L H 10 BMC Debug port select
BMC and Hosts UART control flow
GPIOE0 --- DEBUG_UART_SEL_0
@@ -40,25 +40,25 @@ GPIOE2 --- DEBUG_UART_SEL_2
GPIOE2 --- DEBUG_UART_RX_SEL_N
SEL_2 SEL_1 SEL_0 RX_SEL_N CONSOLE
-0 0 0 0 SLOT1
-0 0 1 0 SLOT2
-0 1 0 0 SLOT3
-0 1 1 0 SLOT4
-1 0 0 1 BMC Debug
+0 0 0 0 SLOT1
+0 0 1 0 SLOT2
+0 1 0 0 SLOT3
+0 1 1 0 SLOT4
+1 0 0 1 BMC Debug
-Signed-off-by: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
+Signed-off-by: Logananth Sundararaj <logananth.s@hcl.com>
---
- arch/arm/mach-aspeed/platform_g5.S | 68 +++++++++++++++++++++++++++++++++-----
- 1 file changed, 60 insertions(+), 8 deletions(-)
+ arch/arm/mach-aspeed/platform_g5.S | 69 ++++++++++++++++++++++++++----
+ 1 file changed, 61 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-aspeed/platform_g5.S b/arch/arm/mach-aspeed/platform_g5.S
-index c3ce077..29daa7a 100644
+index f14b5acc6b..340d7b2b91 100644
--- a/arch/arm/mach-aspeed/platform_g5.S
+++ b/arch/arm/mach-aspeed/platform_g5.S
-@@ -315,6 +315,58 @@ orr r1, r1, #0xC
+@@ -315,6 +315,59 @@ orr r1, r1, #0xC
str r1, [r0]
.endm
-
+
+ .macro console_slot1
+ ldr r0, =0x1e780024
+ ldr r1, [r0]
@@ -111,10 +111,11 @@ index c3ce077..29daa7a 100644
+ str r1, [r0]
+ .endm
+
++
.macro console_sel
-
+
// Disable SoL UARTs[1-4]
-@@ -354,28 +406,28 @@ dbg_card_pres\@:
+@@ -354,28 +407,28 @@ dbg_card_pres\@:
ldr r1, =0x00
cmp r0, r1
bne case_pos2\@
@@ -147,7 +148,7 @@ index c3ce077..29daa7a 100644
b case_end\@
case_pos5\@:
//Test for position#5
-@@ -389,28 +441,28 @@ case_pos6\@:
+@@ -389,28 +442,28 @@ case_pos6\@:
ldr r1, =0x05
cmp r0, r1
bne case_pos7\@
@@ -181,4 +182,4 @@ index c3ce077..29daa7a 100644
case_pos10\@:
//Test for position#10
--
-2.7.4
+2.17.1
diff --git a/meta-facebook/recipes-fb/ipmi/fb-ipmi-oem_git.bb b/meta-facebook/recipes-fb/ipmi/fb-ipmi-oem_git.bb
index 5dc4a60c7..e76e94bbb 100755
--- a/meta-facebook/recipes-fb/ipmi/fb-ipmi-oem_git.bb
+++ b/meta-facebook/recipes-fb/ipmi/fb-ipmi-oem_git.bb
@@ -12,7 +12,7 @@ PV = "0.1+git${SRCPV}"
DEPENDS = "boost phosphor-ipmi-host phosphor-logging systemd "
-inherit cmake obmc-phosphor-ipmiprovider-symlink
+inherit cmake pkgconfig obmc-phosphor-ipmiprovider-symlink
EXTRA_OECMAKE="-DENABLE_TEST=0 -DYOCTO=1"
EXTRA_OECMAKE:append:yosemitev2 = " -DBIC=1"
diff --git a/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/bmc-set-time.service b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/bmc-set-time.service
new file mode 100644
index 000000000..e148b535f
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/bmc-set-time.service
@@ -0,0 +1,12 @@
+[Unit]
+Description= Sync time from host via ipmb
+Wants=ipmb.service xyz.openbmc_project.Network.service
+After=ipmb.service xyz.openbmc_project.Network.service
+
+[Service]
+Type=onshot
+ExecStart=/usr/libexec/set-bmc-time-from-host
+RemainAfterExit=no
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/set-bmc-time-from-host b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/set-bmc-time-from-host
new file mode 100644
index 000000000..40b3b8cbc
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager/set-bmc-time-from-host
@@ -0,0 +1,116 @@
+#!/bin/bash
+#BMC set time from host
+set -e
+
+echo "set-bmc-time-from-host is started"
+# Sync BMC's date with one of the four servers
+
+HOST_INSTANCES="HOST_INSTANCES_SED_REPLACEMENT_VALUE"
+MAX_RETRY_LIMIT=6
+
+check_NTP_status()
+{
+ timedatectl show --property=NTPSynchronized --value
+}
+
+get_single_host_time()
+{
+ for (( retry=1; retry<=5; retry++ ))
+ do
+ #request the single host time via ipmb command
+ # which will be set as bmc time
+ # 0x01 - me channel | 0x0a - storage net fn | 0x00 - lun
+ # 0x48 - get SEL time
+ ipmi_cmd_output=$(busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb \
+ "/xyz/openbmc_project/Ipmi/Channel/Ipmb" org.openbmc.Ipmb sendRequest \
+ yyyyay 0x01 0x0a 0x00 0x48 0)
+ ipmb_result=$?
+ if [ "$ipmb_result" == "0" ];then
+ sleep 1
+ break
+ fi
+ done
+
+ if [ "$retry" == "$MAX_RETRY_LIMIT" ];then
+ exit 1
+ fi
+
+ echo "$ipmi_cmd_output"
+
+}
+
+get_multi_host_datetime()
+{
+ ipmbAddr=$1
+ for (( retry=1; retry<=5; retry++ ))
+ do
+ #request the multihost host time via ipmb command
+ # which will be set as bmc time
+ # 0x38 - oem net fn | 0x00 - lun | 0x02 - request to bridge ic cmd
+ # 0x6 - length | IANA id 0x15 0xA0 0x0 |0x48 - get SEL time
+
+ ipmi_cmd_output=$(busctl call xyz.openbmc_project.Ipmi.Channel.Ipmb \
+ /xyz/openbmc_project/Ipmi/Channel/Ipmb org.openbmc.Ipmb sendRequest \
+ yyyyay "$ipmbAddr" 0x38 0 0x2 6 0x15 0xA0 0x0 0x1 0x28 0x48)
+ ipmb_result=$?
+ if [ $ipmb_result == 0 ];then
+ break
+ fi
+ sleep 1
+ done
+
+ echo "$ipmi_cmd_output"
+}
+sync_multi_host_datetime()
+{
+ for index in $HOST_INSTANCES
+ do
+ ipmb_addr=$(((index-1)*4))
+ # Use standard IPMI command 'SendRequest method' to read RTC time
+ echo "chosen ipmb addr : "$ipmb_addr
+ multi_host_time_result=$(get_multi_host_datetime $ipmb_addr)
+
+ if [[ $(echo "$multi_host_time_result" | awk '{ print NF }') -eq 18 ]];
+ then
+ echo "syncing up host " $index " date time with bmc..."
+ date -s @$((0x$(echo "$multi_host_time_result" | \
+ awk '{printf "%02x%02x%02x%02x",$18,$17,$16,$15}')))
+ sync
+ break
+ fi
+ done
+
+}
+sync_single_host_datetime()
+{
+ single_host_time_result=$(get_single_host_time)
+
+ if [[ $(echo "$single_host_time_result" | awk '{ print NF }') -eq 11 ]];
+ then
+ echo "Syncing up host date time with bmc..."
+ date -s @$((0x$(echo "$single_host_time_result" | \
+ awk '{printf "%02x%02x%02x%02x",$11,$10,$9,$8}')))
+ sync
+ fi
+
+}
+
+#wait for the NTP server start if available.
+sleep 60
+
+NTP_STATUS=$(check_NTP_status)
+
+echo "NTP status :""$NTP_STATUS"
+
+if [ "$NTP_STATUS" == "yes" ]; then
+ echo "NTP is running and system clock is in sync.skiping host time sync..."
+ exit 0
+fi
+
+if [ "$HOST_INSTANCES" == "0" ]; then
+ echo "single host instance"
+ sync_single_host_datetime
+else
+ echo "multiple host instance"
+ sync_multi_host_datetime
+fi
diff --git a/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager_%.bbappend b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager_%.bbappend
new file mode 100644
index 000000000..97ea50d80
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/datetime/phosphor-time-manager_%.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI:append:fb-withhost += "file://set-bmc-time-from-host"
+
+
+RDEPENDS:${PN}:append:fb-withhost += "bash"
+
+do_install:append:fb-withhost(){
+
+ # Store the bitbake variable OBMC_HOST_INSTANCES inside time sync script as HOST_INSTANCES variable using sed.
+ sed -i -e "s,HOST_INSTANCES_SED_REPLACEMENT_VALUE,${OBMC_HOST_INSTANCES},g" ${WORKDIR}/set-bmc-time-from-host
+
+ install -d ${D}$/lib/systemd/system
+ install -m 0644 ${WORKDIR}/bmc-set-time.service ${D}$/lib/systemd/system
+ install -d ${D}/usr/libexec
+ install -m 0777 ${WORKDIR}/set-bmc-time-from-host ${D}/usr/libexec
+}
+
+SYSTEMD_SERVICE:${PN}:fb-withhost += "bmc-set-time.service"
diff --git a/meta-facebook/recipes-phosphor/images/fb-phosphor-image.inc b/meta-facebook/recipes-phosphor/images/fb-phosphor-image.inc
new file mode 100644
index 000000000..fbc80809c
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/images/fb-phosphor-image.inc
@@ -0,0 +1,9 @@
+IMAGE_FEATURES:remove:fb-nohost = "obmc-console"
+
+OBMC_IMAGE_EXTRA_INSTALL:append = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'tpm', \
+ bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'packagegroup-security-tpm2', '', d), \
+ '', d)} \
+ "
+
+include recipes-phosphor/images/fb-${MACHINE}-phosphor-image.inc
diff --git a/meta-facebook/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-facebook/recipes-phosphor/images/obmc-phosphor-image.bbappend
index 5755aa58b..23979e66d 100644
--- a/meta-facebook/recipes-phosphor/images/obmc-phosphor-image.bbappend
+++ b/meta-facebook/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -1,9 +1,5 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+require recipes-phosphor/images/fb-phosphor-image.inc
-IMAGE_FEATURES:remove:fb-nohost = "obmc-console"
-
-OBMC_IMAGE_EXTRA_INSTALL:append = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'tpm', \
- bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm2-tools', '', d), \
- '', d)} \
- "
+# Please do not add any content directly to this file. Instead add it to
+# the corresponding .inc file. Otherwise, builds from facebook/openbmc will
+# not be able to pick up your content.
diff --git a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host1.json b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host1.json
index 8c8379e1e..708f95729 100644
--- a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host1.json
+++ b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host1.json
@@ -31,7 +31,7 @@
{
"Name" : "PowerOk",
"DbusName" : "xyz.openbmc_project.IpmbSensor",
- "Path" : "/xyz/openbmc_project/gpio/volt/1_CPU_Good",
+ "Path" : "/xyz/openbmc_project/gpio/ipmbGpioState/1_CPU_Good",
"Interface" : "xyz.openbmc_project.Chassis.Control.Power",
"Property" : "PGood",
"Type" : "DBUS"
diff --git a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host2.json b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host2.json
index ebf7bf029..2455c620c 100644
--- a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host2.json
+++ b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host2.json
@@ -2,28 +2,28 @@
"gpio_configs":[
{
"Name" : "PostComplete",
- "LineName" : "POST_COMPLETE",
+ "LineName" : "POST_COMPLETE2",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "SlotPower",
- "LineName" : "SLOT1_POWER",
+ "LineName" : "SLOT2_POWER",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "PowerOut",
- "LineName" : "POWER_OUT1",
+ "LineName" : "POWER_OUT2",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "ResetOut",
- "LineName" : "RESET_OUT1",
+ "LineName" : "RESET_OUT2",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
@@ -31,7 +31,7 @@
{
"Name" : "PowerOk",
"DbusName" : "xyz.openbmc_project.IpmbSensor",
- "Path" : "/xyz/openbmc_project/gpio/volt/2_CPU_Good",
+ "Path" : "/xyz/openbmc_project/gpio/ipmbGpioState/2_CPU_Good",
"Interface" : "xyz.openbmc_project.Chassis.Control.Power",
"Property" : "PGood",
"Type" : "DBUS"
diff --git a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host3.json b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host3.json
index 3631dc392..66077a238 100644
--- a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host3.json
+++ b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host3.json
@@ -2,28 +2,28 @@
"gpio_configs":[
{
"Name" : "PostComplete",
- "LineName" : "POST_COMPLETE",
+ "LineName" : "POST_COMPLETE3",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "SlotPower",
- "LineName" : "SLOT1_POWER",
+ "LineName" : "SLOT3_POWER",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "PowerOut",
- "LineName" : "POWER_OUT1",
+ "LineName" : "POWER_OUT3",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "ResetOut",
- "LineName" : "RESET_OUT1",
+ "LineName" : "RESET_OUT3",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
@@ -31,7 +31,7 @@
{
"Name" : "PowerOk",
"DbusName" : "xyz.openbmc_project.IpmbSensor",
- "Path" : "/xyz/openbmc_project/gpio/volt/3_CPU_Good",
+ "Path" : "/xyz/openbmc_project/gpio/ipmbGpioState/3_CPU_Good",
"Interface" : "xyz.openbmc_project.Chassis.Control.Power",
"Property" : "PGood",
"Type" : "DBUS"
diff --git a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host4.json b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host4.json
index dac58ae34..0e7bc3c1c 100644
--- a/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host4.json
+++ b/meta-facebook/recipes-x86/chassis/x86-power-control/yosemitev2/power-config-host4.json
@@ -2,28 +2,28 @@
"gpio_configs":[
{
"Name" : "PostComplete",
- "LineName" : "POST_COMPLETE",
+ "LineName" : "POST_COMPLETE4",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "SlotPower",
- "LineName" : "SLOT1_POWER",
+ "LineName" : "SLOT4_POWER",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "PowerOut",
- "LineName" : "POWER_OUT1",
+ "LineName" : "POWER_OUT4",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
{
"Name" : "ResetOut",
- "LineName" : "RESET_OUT1",
+ "LineName" : "RESET_OUT4",
"Type" : "GPIO",
"Polarity" : "ActiveLow"
},
@@ -31,7 +31,7 @@
{
"Name" : "PowerOk",
"DbusName" : "xyz.openbmc_project.IpmbSensor",
- "Path" : "/xyz/openbmc_project/gpio/volt/4_CPU_Good",
+ "Path" : "/xyz/openbmc_project/gpio/ipmbGpioState/4_CPU_Good",
"Interface" : "xyz.openbmc_project.Chassis.Control.Power",
"Property" : "PGood",
"Type" : "DBUS"
diff --git a/meta-facebook/recipes-x86/chassis/x86-power-control_%.bbappend b/meta-facebook/recipes-x86/chassis/x86-power-control_%.bbappend
index 862f2f179..59f307877 100644
--- a/meta-facebook/recipes-x86/chassis/x86-power-control_%.bbappend
+++ b/meta-facebook/recipes-x86/chassis/x86-power-control_%.bbappend
@@ -1,5 +1,5 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-EXTRA_OECMAKE += "-DCHASSIS_SYSTEM_RESET=ON"
+EXTRA_OEMESON += "-Dchassis-system-reset=enabled"
SRC_URI:append:yosemitev2 = " file://power-config-host1.json"
SRC_URI:append:yosemitev2 = " file://power-config-host2.json"