From 164a9c9f2d774276d5f5802e15e6c2299e43c04f Mon Sep 17 00:00:00 2001 From: XP Chen Date: Tue, 14 Sep 2021 14:37:46 -0500 Subject: meta-fii/meta-kudo: Modify init_once.sh to separate EVT/DVT HW GPIOs Signed-off-by: XP Chen Change-Id: I97ee9317df93480f68cd69ee3462f970970ba885 --- .../kudo-sys-utility/kudo-boot/init_once.sh | 82 +++++++++++++--------- 1 file changed, 49 insertions(+), 33 deletions(-) diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh index adb86f238..8231e3de8 100644 --- a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh @@ -1,51 +1,67 @@ #!/bin/bash source /usr/sbin/kudo-lib.sh -# 0 for EVT. DVT will have a non-zero board version + +function set_mux_default(){ + # set all mux route to CPU before power on host + # BMC_CPU_RTC_I2C_SEL #120 + set_gpio_ctrl 120 out 1 + # BMC_CPU_DDR_I2C_SEL #84 + set_gpio_ctrl 84 out 1 + # BMC_CPU_EEPROM_I2C_SEL #85 + set_gpio_ctrl 85 out 1 + # BMC_CPU_PMBUS_SEL #86 + set_gpio_ctrl 86 out 1 + # LED control + # LED_BMC_LIVE #7 + set_gpio_ctrl 7 out 1 + + # SPI control + # Send command to CPLD to switch the bios spi interface to host + i2cset -y -f -a 13 0x76 0x10 0x00 + +} + +# 0 - 63 EVT +# 64 + DVT/PVT boardver=$(printf '%d' `cat /sys/bus/i2c/drivers/fiicpld/34-0076/CMD00 | awk '{print $6}'`) -# sleep so that FRU and all ipmitool Devices are ready before HOST OS -# gpio 143 for HPM_STBY_RST_N do to DC-SCM spec -set_gpio_ctrl 143 out 1 -sleep 5 # for the MUX to get ready -# set all mux route to CPU before power on host -# BMC_CPU_RTC_I2C_SEL #120 -set_gpio_ctrl 120 out 1 -# BMC_CPU_DDR_I2C_SEL #84 -set_gpio_ctrl 84 out 1 + # On EVT machines, the secondary SCP EEPROM is used. # Set BMC_I2C_BACKUP_SEL to secondary. -if [[ $boardver == 0 ]]; then +if [[ $boardver -lt 64 ]]; then echo "EVT system. Choosing secondary SCP EEPROM." set_gpio_ctrl 168 out 0 -fi -# BMC_CPU_EEPROM_I2C_SEL #85 -set_gpio_ctrl 85 out 1 -# BMC_CPU_PMBUS_SEL #86 -set_gpio_ctrl 86 out 1 - -# LED control -# LED_BMC_LIVE #7 -set_gpio_ctrl 7 out 1 - -# SPI control -# Send command to CPLD to switch the bios spi interface to host -i2cset -y -f -a 13 0x76 0x10 0x00 - -# Power control -# MON_BMC_ALIVE, GPIO 10(EVT), GPIO137(DVT) -set_gpio_ctrl 10 out 1 -set_gpio_ctrl 137 out 1 -# S0_BMC_OK, GPIO 69 -set_gpio_ctrl 69 out 1 + set_mux_default + # Power control + # S0_BMC_OK, GPIO 69 + set_gpio_ctrl 69 out 1 + + # MON_BMC_ALIVE, GPIO 10(EVT), GPIO137(DVT) + set_gpio_ctrl 137 out 0 # setting unused GPIO + set_gpio_ctrl 10 out 1 +else + echo "DVT or PVT system" + # sleep so that FRU and all ipmitool Devices are ready before HOST OS + # gpio 143 for HPM_STBY_RST_N do to DC-SCM spec + set_gpio_ctrl 143 out 1 # on DVT this became HPM_STBY_RST_N (EVT1 came from CPLD) + sleep 5 # for the MUX to get ready + set_mux_default + # Power control + # S0_BMC_OK, GPIO 69 + set_gpio_ctrl 69 out 1 + + # MON_BMC_ALIVE GPIO137(DVT) + set_gpio_ctrl 10 out 0 # setting unused GPIO + set_gpio_ctrl 137 out 1 +fi # Disable CPU 1 CLK when cpu not detected -boardver=$(printf '%d' `cat /sys/bus/i2c/drivers/fiicpld/34-0076/CMD00 | awk '{print $6}'`) # echo init_once cpu $CPU1_STATUS > /dev/ttyS0 # echo init_once board $boardver > /dev/ttyS0 CPU1_STATUS_N=$(get_gpio_ctrl 136) if [[ $CPU1_STATUS_N == 1 ]]; then #Execute this only on DVT systems - if [[ $boardver == 0 ]]; then + if [[ $boardver -lt 64 ]]; then echo EVT system $boardver else echo DVT system $boardver -- cgit v1.2.3