Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,9 @@
[Unit]
Description=Configure GPIOs for Host Power Control
[Service]
Restart=no
RemainAfterExit=true
Type=oneshot
ExecStart=/usr/bin/env init_once.sh
SyslogIdentifier=init_once.sh
@@ -0,0 +1,14 @@
[Unit]
Description=Stop Host
Requires=host-gpio.service
After=host-gpio.service
Conflicts=obmc-chassis-power-on@0.target
[Service]
RemainAfterExit=yes
Type=oneshot
ExecStart=/usr/bin/env poweroff.sh
SyslogIdentifier=poweroff.sh
[Install]
WantedBy=obmc-chassis-power-off@0.target
@@ -0,0 +1,14 @@
[Unit]
Description=Start Host
Requires=host-gpio.service
After=host-gpio.service
Conflicts=obmc-chassis-poweroff@0.target
[Service]
RemainAfterExit=yes
Type=oneshot
ExecStart=/usr/bin/env poweron.sh
SyslogIdentifier=poweron.sh
[Install]
WantedBy=obmc-chassis-poweron@0.target
@@ -0,0 +1,32 @@
#!/bin/bash
# Set all output GPIOs as such and drive them with reasonable values.
function set_gpio_active_low() {
if [ $# -ne 2 ]; then
echo "set_gpio_active_low: need both GPIO# and initial level";
return;
fi
echo "$1" > /sys/class/gpio/export
echo 1 > "/sys/class/gpio/gpio$1/active_low"
echo "$2" > "/sys/class/gpio/gpio$1/direction"
}
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
# FM_BMC_READY_N, GPIO Q4, active low
set_gpio_active_low $((GPIO_BASE + 128 + 4)) high
# FM_BMC_SSB_SMI_LPC_N, GPIO Q6, active low
set_gpio_active_low $((GPIO_BASE + 128 + 6)) high
# FM_BMC_SYS_THROTTLE_N, GPIO A3, active low
set_gpio_active_low $((GPIO_BASE + 0 + 3)) high
# FM_BMC_SSB_SCI_LPC_N, GPIO E4, active low
set_gpio_active_low $((GPIO_BASE + 32 + 4)) high
# FP_PWR_BTN_PASS_R_N, GPIO D3, active low
set_gpio_active_low $((GPIO_BASE + 24 + 3)) high
exit 0;
@@ -0,0 +1,10 @@
#!/bin/bash
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
GPIO_NUM=$((GPIO_BASE + 24 + 3))
echo 1 > /sys/class/gpio/gpio${GPIO_NUM}/value
sleep 5
echo 0 > /sys/class/gpio/gpio${GPIO_NUM}/value
exit 0;
@@ -0,0 +1,10 @@
#!/bin/bash
GPIO_BASE=$(cat /sys/devices/platform/ahb/ahb:apb/1e780000.gpio/gpio/*/base)
GPIO_NUM=$((GPIO_BASE + 24 + 3))
echo 1 > /sys/class/gpio/gpio${GPIO_NUM}/value
sleep 1
echo 0 > /sys/class/gpio/gpio${GPIO_NUM}/value
exit 0;
@@ -0,0 +1,28 @@
FILESEXTRAPATHS:append := "${THISDIR}/files:"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
inherit systemd
inherit obmc-phosphor-systemd
S = "${WORKDIR}"
SRC_URI = "file://init_once.sh \
file://poweroff.sh \
file://poweron.sh \
file://host-gpio.service \
file://host-poweroff.service \
file://host-poweron.service"
DEPENDS = "systemd"
RDEPENDS:${PN} = "bash"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "host-gpio.service host-poweron.service host-poweroff.service"
do_install() {
install -d ${D}/${bindir}
install -m 0755 ${S}/init_once.sh ${D}/${bindir}/
install -m 0755 ${S}/poweroff.sh ${D}/${bindir}/
install -m 0755 ${S}/poweron.sh ${D}/${bindir}/
}