From 96a7ee39b88ce3db86c65e21d3390d97b12166c6 Mon Sep 17 00:00:00 2001 From: Lancelot Kao Date: Mon, 22 Feb 2021 18:50:48 -0600 Subject: meta-fii/meta-kudo: configure kudo system during bmc boot 1. do initialize during BMC boot Signed-off-by: Lancelot Kao Change-Id: I5d3ff526a973152a96d00433eb86f7d7dd59e2d3 Signed-off-by: Mohaimen Alsamarai --- .../kudo-fw-utility/kudo-fw/kudo-fw.sh | 13 ++------- .../kudo-fw-utility/kudo-fw/kudo-lib.sh | 19 +++++++++++++ .../recipes-kudo/kudo-sys-utility/kudo-boot.bb | 31 ++++++++++++++++++++++ .../kudo-boot/host-powerctrl.service | 12 +++++++++ .../kudo-sys-utility/kudo-boot/init_once.sh | 27 +++++++++++++++++++ .../packagegroups/packagegroup-kudo-apps.bb | 1 + 6 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh create mode 100644 meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot.bb create mode 100644 meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/host-powerctrl.service create mode 100644 meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh (limited to 'meta-fii') diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh index e42795f0c..1ef73cc13 100644 --- a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh @@ -2,15 +2,7 @@ devpath="/sys/bus/i2c/devices/13-0077/driver" -# set_gpio_ctrl -# pin #, direction, high(1)/low(0) -function set_gpio_ctrl() { - echo $1 > /sys/class/gpio/export - echo $2 > /sys/class//gpio/gpio$1/direction - echo $3 > /sys/class/gpio/gpio$1/value - echo $1 > /sys/class/gpio/unexport - sleep 1 -} +source /usr/sbin/kudo-lib.sh function fwbios() { KERNEL_FIU_ID="c0000000.spi" @@ -32,8 +24,8 @@ function fwbios() { if [ ! -f $1 ]; then echo " Cannot find the" $1 "image file" exit 1 - fi + fi echo "Flashing BIOS @/dev/$BIOS_MTD" flashcp -v $1 /dev/$BIOS_MTD wait @@ -52,7 +44,6 @@ function fwbios() { rm -f $1 } - function fwbmccpld() { # BMC_JTAG_MUX_1 #218 0:BMC 1:MB set_gpio_ctrl 218 out 0 diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh new file mode 100644 index 000000000..377257eac --- /dev/null +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# set_gpio_ctrl +# pin #, direction, high(1)/low(0) +function set_gpio_ctrl() { + echo $1 > /sys/class/gpio/export + echo $2 > /sys/class//gpio/gpio$1/direction + echo $3 > /sys/class/gpio/gpio$1/value + echo $1 > /sys/class/gpio/unexport + sleep 1 +} + +# get_gpio_ctrl +# pin # +function get_gpio_ctrl() { + echo $1 > /sys/class/gpio/export + echo $(cat /sys/class/gpio/gpio$1/value) + echo $1 > /sys/class/gpio/unexport +} diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot.bb new file mode 100644 index 000000000..ebb32074d --- /dev/null +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot.bb @@ -0,0 +1,31 @@ +SUMMARY = "Phosphor OpenBMC Kudo System Power Control Service" +DESCRIPTION = "Phosphor OpenBMC Kudo System Power Control Daemon" + +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +inherit systemd +inherit obmc-phosphor-systemd + +DEPENDS += "systemd" +RDEPENDS_${PN} += "libsystemd" +RDEPENDS_${PN} += "bash" + +SRC_URI += " \ + file://init_once.sh \ + file://host-powerctrl.service \ + " + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = " \ + host-powerctrl.service \ + " + +do_install () { + install -d ${D}${bindir} + install -m 0755 ${WORKDIR}/init_once.sh ${D}${bindir}/ + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/host-powerctrl.service ${D}${systemd_unitdir}/system +} diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/host-powerctrl.service b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/host-powerctrl.service new file mode 100644 index 000000000..2a8d73930 --- /dev/null +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/host-powerctrl.service @@ -0,0 +1,12 @@ +[Unit] +Description = Ampere Host Power Control Sequence + +[Service] +Restart=no +RemainAfterExit=true +Type=oneshot +ExecStart=/usr/bin/init_once.sh +StandardOutput=syslog + +[Install] +WantedBy=sysinit.target 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 new file mode 100644 index 000000000..1e928e509 --- /dev/null +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +source /usr/sbin/kudo-lib.sh + +# 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 #0 +set_gpio_ctrl 0 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 +set_gpio_ctrl 10 out 1 +# S0_BMC_OK, GPIO 69 +set_gpio_ctrl 69 out 1 diff --git a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb index af6d08085..4be1cab83 100644 --- a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb +++ b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb @@ -26,6 +26,7 @@ RDEPENDS_${PN}-kudo-system = " \ usb-network \ ncsid \ gbmc-mac-config \ + kudo-boot \ " SUMMARY_${PN}-kudo-fw = "KUDO Firmware" -- cgit v1.2.3