meta-fii/meta-kudo: configure kudo system during bmc boot
1. do initialize during BMC boot
Signed-off-by: Lancelot Kao <lancelot.kao@fii-usa.com>
Change-Id: I5d3ff526a973152a96d00433eb86f7d7dd59e2d3
Signed-off-by: Mohaimen Alsamarai <Mohaimen.Alsamarai@fii-na.com>
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 e42795f..1ef73cc 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 @@
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 @@
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 0000000..377257e
--- /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 0000000..ebb3207
--- /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 0000000..2a8d739
--- /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 0000000..1e928e5
--- /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 af6d080..4be1cab 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 @@
usb-network \
ncsid \
gbmc-mac-config \
+ kudo-boot \
"
SUMMARY_${PN}-kudo-fw = "KUDO Firmware"