meta-facebook: yosemite4: Adjust sled cycle method
Use FRU information to distinguish different sled cycle methods.
PVT or after : notify CPLD by GPIOO7
Before PVT : notify CPLD by CPLD IO expender
Tested:
Did sled cycle on EVT, DVT an PVT system.
Change-Id: Iad82056ff9a57ef6bf39ec1978c5d099b55706a9
Signed-off-by: Marshall Zhan <marshall.zhan.wiwynn@gmail.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
index 9d10248..437fd44 100644
--- a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
+++ b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-early-sys-init
@@ -23,23 +23,6 @@
done
}
-# probe devices behind mux for management board cpld
-
-rev_id_gpiochip=$(basename "/sys/bus/i2c/devices/13-0020/"*gpiochip*)
-rev_id_bit0=$(gpioget "$rev_id_gpiochip" 0)
-rev_id_bit1=$(gpioget "$rev_id_gpiochip" 1)
-rev_id_bit2=$(gpioget "$rev_id_gpiochip" 2)
-rev_id_bit3=$(gpioget "$rev_id_gpiochip" 3)
-
-# Default devicetree was set for EVT and later, only POC will do following manual devices' probing
-if [ "$rev_id_bit0" -eq 0 ] && [ "$rev_id_bit1" -eq 0 ] && [ "$rev_id_bit2" -eq 0 ] && [ "$rev_id_bit3" -eq 0 ]
-then
- echo 24c128 "0x50" > /sys/bus/i2c/devices/i2c-12/new_device
- echo 24c64 "0x54" > /sys/bus/i2c/devices/i2c-12/new_device
- echo tmp75 "0x48" > /sys/bus/i2c/devices/i2c-12/new_device
- echo nct3018y "0x6f" > /sys/bus/i2c/devices/i2c-12/new_device
-fi
-
# set initial value for GPIO output pins
set_gpio EN_P5V_USB_CPLD_R 1
set_gpio EN_NIC0_POWER_BMC_R 1
@@ -51,6 +34,7 @@
set_gpio FM_BMC_READY_R2 1
set_gpio SPI_LOCK_REQ_BMC_N 1
set_gpio EN_P3V_BAT_SCALED_R 0
+set_gpio FM_BMC_SLED_CYCLE_R 0
set_gpio NIC0_MAIN_PWR_EN 1
set_gpio NIC1_MAIN_PWR_EN 1
diff --git a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
index a68839e..e254977 100644
--- a/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
+++ b/meta-facebook/meta-yosemite4/recipes-yosemite4/plat-svc/files/yosemite4-schematic-init
@@ -3,13 +3,23 @@
source /usr/libexec/yosemite4-common-functions
# probe devices behind mux for management board cpld
+mgm_stage=$(get_product_version Management_Board)
-stage=$(busctl introspect xyz.openbmc_project.FruDevice /xyz/openbmc_project/FruDevice/Medusa_Board | grep '.PRODUCT_VERSION' | awk -F\" '{print $2}')
+if [ -z "$mgm_stage" ]; then
+ echo "Failed to check management board fru info, all CPLD I/O expender are keeping default setting"
+elif [ "$mgm_stage" = "DVT" ] || [ "$mgm_stage" = "EVT" ]; then
+ echo pca9506 "0x20" > /sys/bus/i2c/devices/i2c-13/new_device
+ echo pca9506 "0x21" > /sys/bus/i2c/devices/i2c-13/new_device
+ echo pca9506 "0x22" > /sys/bus/i2c/devices/i2c-13/new_device
+ echo pca9506 "0x23" > /sys/bus/i2c/devices/i2c-13/new_device
+fi
# set initial value for pca9555 i/o pins on medusa board
-if [ -z "$stage" ]; then
+medusa_stage=$(get_product_version Medusa_Board)
+
+if [ -z "$medusa_stage" ]; then
echo "Failed to check medusa board fru info, all I/O pins are keeping default input"
-elif [ "$stage" = "POC" ]; then
+elif [ "$medusa_stage" = "POC" ]; then
set_gpio P48V_OCP_GPIO1 0
set_gpio P48V_OCP_GPIO2 0
set_gpio P48V_OCP_GPIO3 0