Initial commit
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Hotswap Controller Setting Changing
|
||||
Before=xyz.openbmc_project.Hwmon@.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/gsj-hotswap-change-setting.sh
|
||||
Restart=no
|
||||
Type=oneshot
|
||||
RemainAfterExit=true
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Purpose:
|
||||
# The purpose of the script is to change the CB/CL ratio setting of the hotswap controller from 1.9x to 3.9x
|
||||
|
||||
I2C_BUS=11
|
||||
CHIP_ADDR=0x15
|
||||
GPIO_ID=91 #Revision ID
|
||||
GPIO_BasePath=/sys/class/gpio
|
||||
|
||||
function set_hotswap_reg()
|
||||
{
|
||||
#set reg "0xd9" bit 3 to 1
|
||||
i2cset -f -y $I2C_BUS $CHIP_ADDR 0xd9 0x08
|
||||
}
|
||||
|
||||
function get_hotswap_value()
|
||||
{
|
||||
#get the value of reg "0xd9", return value should be "0x08"
|
||||
i2cget -f -y $I2C_BUS $CHIP_ADDR 0xd9
|
||||
}
|
||||
|
||||
function export_gpio()
|
||||
{
|
||||
if [ -d "$GPIO_BasePath/gpio$GPIO_ID" ]; then
|
||||
echo "gpio$GPIO_ID folder exist, skip export."
|
||||
else
|
||||
echo "Export gpio$GPIO_ID..."
|
||||
echo $GPIO_ID > $GPIO_BasePath/export
|
||||
fi
|
||||
}
|
||||
|
||||
function get_gpio_value()
|
||||
{
|
||||
cat $GPIO_BasePath/gpio$GPIO_ID/value
|
||||
}
|
||||
|
||||
function setting_hotswap()
|
||||
{
|
||||
echo "setting hotswap controller..."
|
||||
set_hotswap_reg
|
||||
|
||||
for i in {0..3};
|
||||
do
|
||||
if [ "$i" == "3" ];then
|
||||
echo "change hotswap controller setting failed after retry 3 times."
|
||||
else
|
||||
hotswap_value=$(get_hotswap_value)
|
||||
echo "get hotswap controller return value : $hotswap_value"
|
||||
if [ "$hotswap_value" == "0x08" ];then
|
||||
echo "change hotswap controller setting success."
|
||||
break;
|
||||
else
|
||||
echo "hotswap controller setting failed, retry $i times..."
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
export_gpio
|
||||
gpio_value=$(get_gpio_value)
|
||||
if [ "$gpio_value" == "1" ];then
|
||||
echo "gpio$GPIO_ID value is: $gpio_value, setting hotswap."
|
||||
setting_hotswap
|
||||
else
|
||||
echo "gpio$GPIO_ID value is: $gpio_value, no need to set hotswap."
|
||||
fi
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
SUMMARY = "Hotswap Controller Setting Changing"
|
||||
DESCRIPTION = "Hotswap Controller Setting Changing Daemon"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit systemd
|
||||
|
||||
DEPENDS += "systemd"
|
||||
RDEPENDS:${PN} += "bash"
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
|
||||
SRC_URI:append = " file://gsj-hotswap-change-setting.sh \
|
||||
file://gsj-hotswap-change-setting.service \
|
||||
"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${WORKDIR}/gsj-hotswap-change-setting.sh ${D}${bindir}/
|
||||
|
||||
install -d ${D}${systemd_unitdir}/system/
|
||||
install -m 0644 ${WORKDIR}/gsj-hotswap-change-setting.service ${D}${systemd_unitdir}/system
|
||||
}
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "gsj-hotswap-change-setting.service"
|
||||
Reference in New Issue
Block a user