Initial commit
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
require conf/distro/openbmc-phosphor.conf
|
||||
|
||||
DISTRO_FEATURES:remove = "avahi"
|
||||
DISTRO_FEATURES:remove = "slp"
|
||||
@@ -0,0 +1,11 @@
|
||||
# We have a conf and classes directory, add to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
|
||||
# We have recipes-* directories, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
||||
${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "gsj-layer"
|
||||
BBFILE_PATTERN_gsj-layer := "^${LAYERDIR}/"
|
||||
LAYERSERIES_COMPAT_gsj-layer = "langdale mickledore"
|
||||
LAYERDEPENDS_gsj-layer = "core phosphor-layer google-layer quanta-layer"
|
||||
@@ -0,0 +1,60 @@
|
||||
KMACHINE = "nuvoton"
|
||||
KERNEL_DEVICETREE = "${KMACHINE}-npcm730-gsj.dtb"
|
||||
|
||||
UBOOT_MACHINE = "PolegSVB_config"
|
||||
IGPS_MACHINE = "EB"
|
||||
|
||||
FLASH_SIZE = "32768"
|
||||
require conf/machine/include/npcm7xx.inc
|
||||
require conf/machine/include/obmc-bsp-common.inc
|
||||
|
||||
IMAGE_FSTYPES += " cpio.${INITRAMFS_CTYPE}.u-boot"
|
||||
IMAGE_FSTYPES += " mtd-ubi-tar"
|
||||
|
||||
MACHINE_FEATURES += "\
|
||||
obmc-phosphor-fan-mgmt \
|
||||
obmc-phosphor-chassis-mgmt \
|
||||
obmc-phosphor-flash-mgmt \
|
||||
obmc-host-state-mgmt \
|
||||
obmc-chassis-state-mgmt \
|
||||
obmc-bmc-state-mgmt \
|
||||
"
|
||||
# Remove unneeded binaries from image
|
||||
IMAGE_FEATURES:remove = "obmc-bmc-state-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-bmcweb"
|
||||
IMAGE_FEATURES:remove = "obmc-chassis-state-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-chassis-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-console"
|
||||
IMAGE_FEATURES:remove = "obmc-devtools"
|
||||
IMAGE_FEATURES:remove = "obmc-fan-control"
|
||||
IMAGE_FEATURES:remove = "obmc-fan-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-flash-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-fru-ipmi"
|
||||
IMAGE_FEATURES:remove = "obmc-health-monitor"
|
||||
IMAGE_FEATURES:remove = "obmc-host-ipmi"
|
||||
IMAGE_FEATURES:remove = "obmc-host-state-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-ikvm"
|
||||
IMAGE_FEATURES:remove = "obmc-inventory"
|
||||
IMAGE_FEATURES:remove = "obmc-leds"
|
||||
IMAGE_FEATURES:remove = "obmc-logging-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-remote-logging-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-rng"
|
||||
IMAGE_FEATURES:remove = "obmc-sensors"
|
||||
IMAGE_FEATURES:remove = "obmc-settings-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-software"
|
||||
IMAGE_FEATURES:remove = "obmc-system-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-user-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-user-mgmt-ldap"
|
||||
IMAGE_FEATURES:remove = "obmc-debug-collector"
|
||||
IMAGE_FEATURES:remove = "obmc-network-mgmt"
|
||||
IMAGE_FEATURES:remove = "obmc-telemetry"
|
||||
OBMC_IMAGE_BASE_INSTALL:remove = "packagegroup-obmc-apps-extras"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-gsj-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-gsj-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-gsj-apps"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "gsj-ipmi-inventory-map-native"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-properties = "gsj-ipmi-fru-properties-native"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "gsj-ipmi-fru-read-inventory-native"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory = "gsj-ipmi-sensor-map-native"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "gsj-led-manager-config-native"
|
||||
@@ -0,0 +1,19 @@
|
||||
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
|
||||
# changes incompatibly
|
||||
LCONF_VERSION = "8"
|
||||
|
||||
BBPATH = "${TOPDIR}"
|
||||
BBFILES ?= ""
|
||||
|
||||
BBLAYERS ?= " \
|
||||
##OEROOT##/meta \
|
||||
##OEROOT##/meta-security/meta-tpm \
|
||||
##OEROOT##/meta-openembedded/meta-oe \
|
||||
##OEROOT##/meta-openembedded/meta-networking \
|
||||
##OEROOT##/meta-openembedded/meta-python \
|
||||
##OEROOT##/meta-phosphor \
|
||||
##OEROOT##/meta-nuvoton \
|
||||
##OEROOT##/meta-google \
|
||||
##OEROOT##/meta-quanta \
|
||||
##OEROOT##/meta-quanta/meta-gsj \
|
||||
"
|
||||
@@ -0,0 +1,2 @@
|
||||
Common targets are:
|
||||
obmc-phosphor-image
|
||||
@@ -0,0 +1,18 @@
|
||||
MACHINE ??= "gsj"
|
||||
DISTRO ?= "openbmc-gsj"
|
||||
PACKAGE_CLASSES ?= "package_ipk"
|
||||
SANITY_TESTED_DISTROS:append ?= " *"
|
||||
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
|
||||
USER_CLASSES ?= "buildstats"
|
||||
PATCHRESOLVE = "noop"
|
||||
BB_DISKMON_DIRS ??= "\
|
||||
STOPTASKS,${TMPDIR},1G,100K \
|
||||
STOPTASKS,${DL_DIR},1G,100K \
|
||||
STOPTASKS,${SSTATE_DIR},1G,100K \
|
||||
STOPTASKS,/tmp,100M,100K \
|
||||
HALT,${TMPDIR},100M,1K \
|
||||
HALT,${DL_DIR},100M,1K \
|
||||
HALT,${SSTATE_DIR},100M,1K \
|
||||
HALT,/tmp,10M,1K"
|
||||
CONF_VERSION = "2"
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Configuration file for fw_(printenv/setenv) utility.
|
||||
# Up to two entries are valid, in this case the redundant
|
||||
# environment sector is assumed present.
|
||||
# Notice, that the "Number of sectors" is not required on NOR and SPI-dataflash.
|
||||
# Futhermore, if the Flash sector size is ommitted, this value is assumed to
|
||||
# be the same as the Environment size, which is valid for NOR and SPI-dataflash
|
||||
|
||||
# NOR example
|
||||
# MTD device name Device offset Env. size Flash sector size Number of sectors
|
||||
/dev/mtd2 0x0000 0x40000 0x4000
|
||||
|
||||
# MTD SPI-dataflash example
|
||||
# MTD device name Device offset Env. size Flash sector size Number of sectors
|
||||
#/dev/mtd5 0x4200 0x4200
|
||||
#/dev/mtd6 0x4200 0x4200
|
||||
|
||||
# NAND example
|
||||
#/dev/mtd0 0x4000 0x4000 0x20000 2
|
||||
|
||||
# Block device example
|
||||
#/dev/mmcblk0 0xc0000 0x20000
|
||||
|
||||
# VFAT example
|
||||
#/boot/uboot.env 0x0000 0x4000
|
||||
@@ -0,0 +1,7 @@
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:gsj = " file://fw_env.config"
|
||||
|
||||
do_install:append:gsj () {
|
||||
install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
SYSTEMD_SERVICE:${PN}:remove:gsj = " \
|
||||
gbmc-bare-metal-active.target \
|
||||
gbmc-host-poweroff.target \
|
||||
gbmc-psu-hardreset.target \
|
||||
gbmc-psu-hardreset-pre.target \
|
||||
gbmc-psu-hardreset-time.service \
|
||||
"
|
||||
|
||||
do_install:append:gsj() {
|
||||
rm -r ${D}${systemd_unitdir}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
SUMMARY = "OpenBMC Quanta Detect Fan Fail Service"
|
||||
DESCRIPTION = "OpenBMC Quanta Detect Fan Fail 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:append:gsj := "${THISDIR}/files:"
|
||||
SRC_URI:append:gsj = " file://detect-fan-fail.sh \
|
||||
file://detect-fan-fail.service \
|
||||
"
|
||||
|
||||
do_install:append:gsj() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${WORKDIR}/detect-fan-fail.sh ${D}${bindir}/
|
||||
|
||||
install -d ${D}${systemd_unitdir}/system/
|
||||
install -m 0644 ${WORKDIR}/detect-fan-fail.service ${D}${systemd_unitdir}/system
|
||||
}
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "detect-fan-fail.service"
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Detect Fan Fail Manager
|
||||
After=phosphor-pid-control.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/detect-fan-fail.sh
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# get fan state by d-bus command
|
||||
function get_fan_state() {
|
||||
get_property_path='xyz.openbmc_project.Sensor.Threshold.Critical CriticalAlarmLow'
|
||||
fan_state="$(busctl get-property "$1" "$2" "$get_property_path" | awk '{print $2}')"
|
||||
echo "$fan_state"
|
||||
}
|
||||
|
||||
# set fan pwm by d-bus command
|
||||
function set_fan_value() {
|
||||
set_property_path='xyz.openbmc_project.Control.FanPwm'
|
||||
busctl set-property "$1" "$2" $set_property_path Target t 255
|
||||
}
|
||||
|
||||
fan_tach_path=( '/xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM'
|
||||
'/xyz/openbmc_project/sensors/fan_tach/Fan0_1_RPM'
|
||||
'/xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM'
|
||||
'/xyz/openbmc_project/sensors/fan_tach/Fan1_1_RPM'
|
||||
'/xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM'
|
||||
'/xyz/openbmc_project/sensors/fan_tach/Fan2_1_RPM'
|
||||
)
|
||||
|
||||
check_fail_flag=0
|
||||
current_fan_state=()
|
||||
while true; do
|
||||
hwmon_path="$(mapper get-service "${fan_tach_path[0]}")"
|
||||
for i in "${!fan_tach_path[@]}";
|
||||
do
|
||||
current_fan_state[i%2]=$(get_fan_state "$hwmon_path" "${fan_tach_path[$i]}")
|
||||
|
||||
#Compare state of dual rotors with CriticalAlarmLow to check if fan fail
|
||||
if [ ${#current_fan_state[@]} -eq 2 ];then
|
||||
if [ "${current_fan_state[0]}" == "true" ] && \
|
||||
[ "${current_fan_state[1]}" == "true" ] ;then
|
||||
if [ $check_fail_flag -eq 0 ];then
|
||||
systemctl stop phosphor-pid-control
|
||||
for j in "${!fan_tach_path[@]}";
|
||||
do
|
||||
#If fan fail is detect, set other fan rpm to pwm 255.
|
||||
set_fan_value "$hwmon_path" "${fan_tach_path[$j]}"
|
||||
check_fail_flag=1
|
||||
done
|
||||
fi
|
||||
current_fan_state=()
|
||||
break
|
||||
fi
|
||||
current_fan_state=()
|
||||
fi
|
||||
|
||||
#fans are going to normal.
|
||||
if [ "$i" -eq $((${#fan_tach_path[@]}-1)) ] && [ $check_fail_flag -eq 1 ]; then
|
||||
check_fail_flag=0
|
||||
systemctl restart phosphor-pid-control
|
||||
fi
|
||||
done
|
||||
sleep 2
|
||||
done
|
||||
+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"
|
||||
@@ -0,0 +1,30 @@
|
||||
SUMMARY = "OpenBMC for GSJ system - Applications"
|
||||
PR = "r1"
|
||||
|
||||
inherit packagegroup
|
||||
|
||||
PROVIDES = "${PACKAGES}"
|
||||
PACKAGES = " \
|
||||
${PN}-chassis \
|
||||
${PN}-fans \
|
||||
${PN}-flash \
|
||||
"
|
||||
|
||||
PROVIDES += "virtual/obmc-chassis-mgmt"
|
||||
PROVIDES += "virtual/obmc-fan-mgmt"
|
||||
PROVIDES += "virtual/obmc-flash-mgmt"
|
||||
|
||||
RPROVIDES:${PN}-chassis += "virtual-obmc-chassis-mgmt"
|
||||
RPROVIDES:${PN}-fans += "virtual-obmc-fan-mgmt"
|
||||
RPROVIDES:${PN}-flash += "virtual-obmc-flash-mgmt"
|
||||
|
||||
SUMMARY:${PN}-chassis = "GSJ Chassis"
|
||||
RDEPENDS:${PN}-chassis = ""
|
||||
|
||||
SUMMARY:${PN}-fans = "GSJ Fans"
|
||||
RDEPENDS:${PN}-fans = ""
|
||||
|
||||
SUMMARY:${PN}-flash = "GSJ Flash"
|
||||
RDEPENDS:${PN}-flash = " \
|
||||
phosphor-ipmi-flash \
|
||||
"
|
||||
@@ -0,0 +1,46 @@
|
||||
### NVME SSD Power Control Manager
|
||||
|
||||
#### Description
|
||||
The package mantains for SSD power control and related noification handle Deamon
|
||||
|
||||
#### Design
|
||||
|
||||
The service power supply design follow PCI Express Card Electromechanical Specification Revision 3.0 in Section 2.2
|
||||
|
||||
nvme_gpio.service follow section 2.2.1 Initial power-Up to initinal and adjust related signal.
|
||||
|
||||
nvme_powermanager.service follow section 2.2.2 power management states monitor PRESENT signal and update related signal.
|
||||
|
||||
#### Process
|
||||
|
||||
* Plugging
|
||||
1. U2_[SSD_index] PRSNT_N will be input low
|
||||
2. Set PWR_U2_[SSD_index]_EN to high
|
||||
3. Check PWRGD_U2_[SSD_index] is high
|
||||
4-1. If PWRGD_U2_[SSD_index] is high (PWR Good)
|
||||
- Wait 5ms
|
||||
- Enable PCI Clock by SMBus 9FGL0851
|
||||
- Wait 100ms
|
||||
- Set RST_BMC_U2 to high
|
||||
|
||||
4-2. If PWRGD_U2_[SSD_index] is low (PWR Fail)
|
||||
- Set RST_BMC_U2_[SSD_index]_R_N to low
|
||||
- Wait 100ms
|
||||
- Disable PCI Clock by SMBus
|
||||
|
||||
* Removing
|
||||
1. U2_[SSD_index] PRSNT_N will be input high
|
||||
2. Set RST_BMC_U2 to low
|
||||
3. Wait 100ms
|
||||
4. Disable PCI Clock by SMBus
|
||||
5. Wait 5ms
|
||||
6. PWR_U2_[SSD_index]_EN to low
|
||||
|
||||
#### Test
|
||||
|
||||
1. PRESENT detect SSD: The hardware design has been implemented.
|
||||
2. Initial SSD slot Power output: nvme_gpio service has tested on Module. It could sucess initial gpios and set correct power output.
|
||||
3. Detect PRESENT and change power setting: nvme_powermanager service has tested on Module. It could success detect SSD plugged or removal change power output.
|
||||
4. Improve initial power-up sequence: For matched hardware default initial power-up setting, the nvme_gpio service only set unplugged slot related signal.
|
||||
5. Improve service execute sequence: nvme_powermanager.service must wait for nvme_gpio.service ensure gpio export complete.
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck source=meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh
|
||||
source /usr/libexec/nvme_powerctrl_library.sh
|
||||
|
||||
function set_gpio() {
|
||||
#$1 gpio pin
|
||||
echo "$1" > /sys/class/gpio/export
|
||||
}
|
||||
|
||||
echo "Read Clock Gen Value is: $CLOCK_GEN_VALUE"
|
||||
|
||||
## Initial U2_PRESENT_N
|
||||
for i in "${!U2_PRESENT[@]}";
|
||||
do
|
||||
set_gpio "${U2_PRESENT[$i]}";
|
||||
set_gpio_direction "${U2_PRESENT[$i]}" 'in';
|
||||
echo "Read $i SSD present: $(read_gpio_input "${U2_PRESENT[$i]}")"
|
||||
done
|
||||
|
||||
## Initial POWER_U2_EN
|
||||
for i in "${!POWER_U2[@]}";
|
||||
do
|
||||
set_gpio "${POWER_U2[$i]}";
|
||||
done
|
||||
|
||||
## Initial PWRGD_U2
|
||||
for i in "${!PWRGD_U2[@]}";
|
||||
do
|
||||
set_gpio "${PWRGD_U2[$i]}";
|
||||
set_gpio_direction "${PWRGD_U2[$i]}" 'in';
|
||||
echo "Read $i SSD Power Good: $(read_gpio_input "${PWRGD_U2[$i]}")"
|
||||
done
|
||||
|
||||
## Initial RST_BMC_U2
|
||||
for i in "${!RST_BMC_U2[@]}";
|
||||
do
|
||||
set_gpio "${RST_BMC_U2[$i]}";
|
||||
done
|
||||
|
||||
### Initial related Power by Present
|
||||
for i in {0..7};
|
||||
do
|
||||
update_value=$(printf '%x\n' "$((0x01 << i))")
|
||||
if [ "$(read_gpio_input "${U2_PRESENT[$i]}")" == $PLUGGED ];then
|
||||
CLOCK_GEN_VALUE=$(printf '0x%x\n' \
|
||||
"$((CLOCK_GEN_VALUE | 0x$update_value))")
|
||||
else
|
||||
set_gpio_direction "${RST_BMC_U2[$i]}" "low"
|
||||
set_gpio_direction "${POWER_U2[$i]}" "low"
|
||||
|
||||
CLOCK_GEN_VALUE=$(printf '0x%x\n' \
|
||||
"$((CLOCK_GEN_VALUE & ~0x$update_value))")
|
||||
fi
|
||||
done
|
||||
i2cset -y $I2C_BUS $CHIP_ADDR 0 "$CLOCK_GEN_VALUE" s
|
||||
echo "Read Clock Gen Value again is: $CLOCK_GEN_VALUE"
|
||||
|
||||
exit 0;
|
||||
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description = configure GPIO for SSD Power Control
|
||||
Before=nvme_powermanager.service
|
||||
|
||||
[Service]
|
||||
Restart=no
|
||||
RemainAfterExit=true
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/init_once.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
export U2_PRESENT=( 148 149 150 151 152 153 154 155 )
|
||||
export POWER_U2=( 195 196 202 199 198 197 127 126 )
|
||||
export PWRGD_U2=( 161 162 163 164 165 166 167 168 )
|
||||
export RST_BMC_U2=( 72 73 74 75 76 77 78 79 )
|
||||
export PLUGGED=0
|
||||
export I2C_BUS=8
|
||||
export CHIP_ADDR=0x68
|
||||
export CLOCK_GEN_VALUE=
|
||||
|
||||
CLOCK_GEN_VALUE=$(i2cget -y $I2C_BUS $CHIP_ADDR 0 i 2|cut -f3 -d' ')
|
||||
|
||||
function set_gpio_direction()
|
||||
{
|
||||
#$1 gpio pin, $2 'in','high','low'
|
||||
echo "$2" > "/sys/class/gpio/gpio$1/direction"
|
||||
}
|
||||
|
||||
function read_gpio_input()
|
||||
{
|
||||
#$1 read input gpio pin
|
||||
cat "/sys/class/gpio/gpio$1/value"
|
||||
}
|
||||
|
||||
function enable_nvme_power()
|
||||
{
|
||||
set_gpio_direction "${POWER_U2[$1]}" "high"
|
||||
sleep 0.04
|
||||
check_powergood "$1"
|
||||
}
|
||||
|
||||
function check_powergood()
|
||||
{
|
||||
if [ "$(read_gpio_input "${PWRGD_U2[$1]}")" == 1 ];then
|
||||
sleep 0.005
|
||||
update_clock_gen_chip_register "$1" 1
|
||||
sleep 0.1
|
||||
set_gpio_direction "${RST_BMC_U2[$1]}" "high"
|
||||
else
|
||||
disable_nvme_power "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
function disable_nvme_power()
|
||||
{
|
||||
set_gpio_direction "${RST_BMC_U2[$1]}" "low"
|
||||
sleep 0.1
|
||||
update_clock_gen_chip_register "$1" 0
|
||||
sleep 0.005
|
||||
set_gpio_direction "${POWER_U2[$1]}" "low"
|
||||
}
|
||||
|
||||
function update_clock_gen_chip_register(){
|
||||
#$1 nvme slot number, $2 enable/disable
|
||||
update_value=$(printf '%x\n' "$((0x01 <<$1))")
|
||||
if [ "$2" -eq 1 ];then
|
||||
CLOCK_GEN_VALUE=$(printf '0x%x\n' \
|
||||
"$((CLOCK_GEN_VALUE | 0x$update_value))")
|
||||
else
|
||||
CLOCK_GEN_VALUE=$(printf '0x%x\n' \
|
||||
"$((CLOCK_GEN_VALUE & ~0x$update_value))")
|
||||
fi
|
||||
i2cset -y $I2C_BUS $CHIP_ADDR 0 "$CLOCK_GEN_VALUE" s
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=SSD NVME Power Manager
|
||||
Requires=nvme_gpio.service
|
||||
After=nvme_gpio.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/nvme_powermanager.sh
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck source=meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh
|
||||
source /usr/libexec/nvme_powerctrl_library.sh
|
||||
U2_PRESENT_STATUS=( 1 1 1 1 1 1 1 1 )
|
||||
|
||||
function recovery_power()
|
||||
{
|
||||
set_gpio_direction "${POWER_U2[$1]}" "low"
|
||||
sleep 0.2
|
||||
set_gpio_direction "${POWER_U2[$1]}" "high"
|
||||
sleep 0.2
|
||||
check_powergood "$1"
|
||||
}
|
||||
|
||||
|
||||
##Initial U2 present status
|
||||
for i in {0..7};
|
||||
do
|
||||
U2_PRESENT_STATUS[i]=$(read_gpio_input "${U2_PRESENT[$i]}")
|
||||
done
|
||||
|
||||
## Loop while
|
||||
while :
|
||||
do
|
||||
for i in {0..7};
|
||||
do
|
||||
## 1 second scan all loop
|
||||
sleep 0.125
|
||||
read_present=$(read_gpio_input "${U2_PRESENT[$i]}")
|
||||
if [ "$read_present" != "${U2_PRESENT_STATUS[$i]}" ];then
|
||||
U2_PRESENT_STATUS[i]="$read_present"
|
||||
if [ "$read_present" == $PLUGGED ];then
|
||||
echo "NVME $i Enable Power"
|
||||
enable_nvme_power "$i"
|
||||
else
|
||||
echo "NVME $i Disable Power"
|
||||
disable_nvme_power "$i"
|
||||
fi
|
||||
else
|
||||
if [ "${U2_PRESENT_STATUS[$i]}" == $PLUGGED ] &&
|
||||
[ "$(read_gpio_input "${PWRGD_U2[$i]}")" == 0 ];then
|
||||
echo "NVME $i Recovery Power"
|
||||
recovery_power "$i"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
@@ -0,0 +1,37 @@
|
||||
SUMMARY = "Phosphor OpenBMC Quanta NVME Power Control Service"
|
||||
DESCRIPTION = "Phosphor OpenBMC Quanta NVME Power Control Daemon."
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
FILESEXTRAPATHS:append := "${THISDIR}/files:"
|
||||
|
||||
inherit systemd
|
||||
|
||||
DEPENDS += "systemd"
|
||||
RDEPENDS:${PN} += "libsystemd"
|
||||
RDEPENDS:${PN} += "bash"
|
||||
RDEPENDS:${PN} += "iotools"
|
||||
|
||||
SRC_URI += "file://init_once.sh \
|
||||
file://nvme_powermanager.sh \
|
||||
file://nvme_powerctrl_library.sh \
|
||||
file://nvme_gpio.service \
|
||||
file://nvme_powermanager.service \
|
||||
"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${WORKDIR}/init_once.sh ${D}${bindir}/
|
||||
install -m 0755 ${WORKDIR}/nvme_powermanager.sh ${D}${bindir}/
|
||||
|
||||
install -d ${D}${libexecdir}
|
||||
install -m 0755 ${WORKDIR}/nvme_powerctrl_library.sh ${D}${libexecdir}/
|
||||
|
||||
install -d ${D}${systemd_unitdir}/system/
|
||||
install -m 0644 ${WORKDIR}/nvme_gpio.service ${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/nvme_powermanager.service ${D}${systemd_unitdir}/system
|
||||
}
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "nvme_gpio.service nvme_powermanager.service"
|
||||
@@ -0,0 +1,7 @@
|
||||
[Match]
|
||||
Name=usb0
|
||||
[Address]
|
||||
Address=169.254.95.118/16
|
||||
[Network]
|
||||
LinkLocalAddressing=no
|
||||
IPv6AcceptRA=no
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=enable usb network
|
||||
After=phosphor-ipmi-host.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/bash -c '/usr/sbin/usb_network.sh'
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd /sys/kernel/config/usb_gadget || exit
|
||||
|
||||
if [ ! -f "g1" ]; then
|
||||
mkdir g1
|
||||
cd g1 || exit
|
||||
|
||||
echo 0x1d6b > idVendor # Linux foundation
|
||||
echo 0x0104 > idProduct # Multifunction composite gadget
|
||||
mkdir -p strings/0x409
|
||||
echo "Linux" > strings/0x409/manufacturer
|
||||
echo "Ethernet/RNDIS gadget" > strings/0x409/product
|
||||
|
||||
mkdir -p configs/c.1
|
||||
echo 100 > configs/c.1/MaxPower
|
||||
mkdir -p configs/c.1/strings/0x409
|
||||
echo "RNDIS" > configs/c.1/strings/0x409/configuration
|
||||
|
||||
mkdir -p functions/rndis.usb0
|
||||
|
||||
ln -s functions/rndis.usb0 configs/c.1
|
||||
|
||||
echo f0839000.udc > UDC
|
||||
|
||||
fi
|
||||
exit 0
|
||||
@@ -0,0 +1,29 @@
|
||||
FILESEXTRAPATHS:append := "${THISDIR}/files:"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
DEPENDS += "systemd"
|
||||
RDEPENDS:${PN} += "libsystemd"
|
||||
RDEPENDS:${PN} += "bash"
|
||||
|
||||
SRC_URI += "file://usb_network.sh \
|
||||
file://usb_network.service \
|
||||
file://00-bmc-usb0.network"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}/${sbindir}
|
||||
install -m 0755 ${WORKDIR}/usb_network.sh ${D}/${sbindir}
|
||||
|
||||
install -d ${D}${systemd_unitdir}/system/
|
||||
install -m 0644 ${WORKDIR}/usb_network.service ${D}${systemd_unitdir}/system
|
||||
|
||||
install -d ${D}${sysconfdir_native}/systemd/network/
|
||||
install -m 0644 ${WORKDIR}/00-bmc-usb0.network ${D}${sysconfdir_native}/systemd/network
|
||||
}
|
||||
|
||||
NATIVE_SYSTEMD_SUPPORT = "1"
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "usb_network.service"
|
||||
FILES:${PN} += "${sysconfdir_native}/systemd/network/00-bmc-usb0.network"
|
||||
|
||||
inherit allarch systemd
|
||||
@@ -0,0 +1,65 @@
|
||||
CONFIG_HWMON=y
|
||||
CONFIG_SENSORS_LM75=y
|
||||
CONFIG_SENSORS_FAN=y
|
||||
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_SQUASHFS=y
|
||||
CONFIG_SQUASHFS_XZ=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
|
||||
CONFIG_MTD_M25P80=y
|
||||
CONFIG_SPI_NPCM_FIU=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_NPCM_PSPI=y
|
||||
|
||||
CONFIG_NET_NCSI=y
|
||||
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_SLAVE_EEPROM=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_GPIO_PCF857X=y
|
||||
CONFIG_PMBUS=y
|
||||
CONFIG_SENSORS_PMBUS=y
|
||||
CONFIG_SENSORS_ADM1275=y
|
||||
CONFIG_MUX_MMIO=y
|
||||
CONFIG_USB_U_ETHER=y
|
||||
CONFIG_USB_F_ECM=y
|
||||
CONFIG_USB_F_EEM=y
|
||||
CONFIG_USB_F_SUBSET=y
|
||||
CONFIG_USB_F_RNDIS=y
|
||||
CONFIG_USB_F_MASS_STORAGE=y
|
||||
CONFIG_USB_CONFIGFS=y
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
|
||||
CONFIG_USB_CONFIGFS_RNDIS=y
|
||||
CONFIG_USB_CONFIGFS_EEM=y
|
||||
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||
CONFIG_USB_CONFIGFS_F_HID=y
|
||||
CONFIG_USB_GADGET_NPCM_USB2=y
|
||||
CONFIG_USB_NPCM_UDC=y
|
||||
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_FORCE_MAX_ZONEORDER=12
|
||||
CONFIG_SENSORS_LM25066=y
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_I2C_SLAVE_MQUEUE=y
|
||||
CONFIG_NUVOTON_JTAG=y
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_LEGACY_SYSFS=y
|
||||
CONFIG_EDAC_DEBUG=y
|
||||
CONFIG_EDAC_NPCM7XX=y
|
||||
CONFIG_RAS=y
|
||||
CONFIG_SENSORS_UCD9000=y
|
||||
@@ -0,0 +1,2 @@
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/linux-nuvoton:"
|
||||
SRC_URI:append:gsj = " file://gsj.cfg"
|
||||
@@ -0,0 +1,415 @@
|
||||
{
|
||||
"sensors" : [
|
||||
{
|
||||
"name": "Fan0_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan1_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan0_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan2_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan1_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan3_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan1_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan4_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan2_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan5_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan2_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan6_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "KL0",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/KL0",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme0",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme0",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme1",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme1",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
}
|
||||
],
|
||||
"zones" : [
|
||||
{
|
||||
"id": 0,
|
||||
"minThermalOutput": 0.0,
|
||||
"failsafePercent": 100.0,
|
||||
"pids": [
|
||||
{
|
||||
"name": "Fan0_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan0_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan0_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan0_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan1_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan1_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan1_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan1_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan2_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan2_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan2_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan2_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme0",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme0"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme1",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme1"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "KL0",
|
||||
"type": "stepwise",
|
||||
"inputs": ["KL0"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 0.0,
|
||||
"negativeHysteresis": 0.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 25,
|
||||
"1": 26,
|
||||
"2": 27,
|
||||
"3": 28,
|
||||
"4": 29,
|
||||
"5": 30,
|
||||
"6": 31,
|
||||
"7": 32,
|
||||
"8": 33,
|
||||
"9": 34,
|
||||
"10": 35,
|
||||
"11": 36,
|
||||
"12": 37,
|
||||
"13": 38,
|
||||
"14": 39,
|
||||
"15": 40,
|
||||
"16": 42,
|
||||
"17": 44,
|
||||
"18": 45,
|
||||
"19": 50
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 10,
|
||||
"3": 10,
|
||||
"4": 10,
|
||||
"5": 10,
|
||||
"6": 20,
|
||||
"7": 30,
|
||||
"8": 40,
|
||||
"9": 50,
|
||||
"10": 60,
|
||||
"11": 73,
|
||||
"12": 76,
|
||||
"13": 79,
|
||||
"14": 82,
|
||||
"15": 86,
|
||||
"16": 90,
|
||||
"17": 90,
|
||||
"18": 100,
|
||||
"19": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme00",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme0"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 5,
|
||||
"1": 5,
|
||||
"2": 5,
|
||||
"3": 6,
|
||||
"4": 6,
|
||||
"5": 7,
|
||||
"6": 7,
|
||||
"7": 8,
|
||||
"8": 10,
|
||||
"9": 12,
|
||||
"10": 14,
|
||||
"11": 16,
|
||||
"12": 18,
|
||||
"13": 20,
|
||||
"14": 21,
|
||||
"15": 21,
|
||||
"16": 22,
|
||||
"17": 22,
|
||||
"18": 25,
|
||||
"19": 25
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme10",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme1"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 5,
|
||||
"1": 5,
|
||||
"2": 5,
|
||||
"3": 6,
|
||||
"4": 6,
|
||||
"5": 7,
|
||||
"6": 7,
|
||||
"7": 8,
|
||||
"8": 10,
|
||||
"9": 12,
|
||||
"10": 14,
|
||||
"11": 16,
|
||||
"12": 18,
|
||||
"13": 20,
|
||||
"14": 21,
|
||||
"15": 21,
|
||||
"16": 22,
|
||||
"17": 22,
|
||||
"18": 25,
|
||||
"19": 25
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,937 @@
|
||||
{
|
||||
"sensors" : [
|
||||
{
|
||||
"name": "Fan0_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan1_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan0_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan2_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan1_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan3_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan1_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan4_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan2_0_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan5_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "Fan2_1_RPM",
|
||||
"type": "fan",
|
||||
"readPath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/fan6_input",
|
||||
"writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
|
||||
"min": 0,
|
||||
"max": 255
|
||||
},
|
||||
{
|
||||
"name": "KL0",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/KL0",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme0",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme0",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme1",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme1",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme2",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme2",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme3",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme3",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme4",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme4",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme5",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme5",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme6",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme6",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
},
|
||||
{
|
||||
"name": "nvme7",
|
||||
"type": "temp",
|
||||
"readPath": "/xyz/openbmc_project/sensors/temperature/nvme7",
|
||||
"writePath": "",
|
||||
"min": 0,
|
||||
"max": 0,
|
||||
"ignoreDbusMinMax": true,
|
||||
"timeout": 0
|
||||
}
|
||||
],
|
||||
"zones" : [
|
||||
{
|
||||
"id": 0,
|
||||
"minThermalOutput": 0.0,
|
||||
"failsafePercent": 100.0,
|
||||
"pids": [
|
||||
{
|
||||
"name": "Fan0_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan0_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan0_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan0_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan1_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan1_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan1_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan1_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan2_0_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan2_0_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Fan2_1_RPM",
|
||||
"type": "fan",
|
||||
"inputs": ["Fan2_1_RPM"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": 0.0,
|
||||
"integralCoeff": 0.0,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 1.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 3.0,
|
||||
"outLim_max": 100.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme0",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme0"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme1",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme1"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme2",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme2"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme3",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme3"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme4",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme4"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme5",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme5"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme6",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme6"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme7",
|
||||
"type": "temp",
|
||||
"inputs": ["nvme7"],
|
||||
"setpoint": 65.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"proportionalCoeff": -20.0,
|
||||
"integralCoeff": -0.1,
|
||||
"feedFwdOffsetCoeff": 0.0,
|
||||
"feedFwdGainCoeff": 0.0,
|
||||
"integralLimit_min": 0.0,
|
||||
"integralLimit_max": 0.0,
|
||||
"outLim_min": 0.0,
|
||||
"outLim_max": 16000.0,
|
||||
"slewNeg": 0.0,
|
||||
"slewPos": 0.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "KL0",
|
||||
"type": "stepwise",
|
||||
"inputs": ["KL0"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 0.0,
|
||||
"negativeHysteresis": 0.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 25,
|
||||
"1": 26,
|
||||
"2": 27,
|
||||
"3": 28,
|
||||
"4": 29,
|
||||
"5": 30,
|
||||
"6": 31,
|
||||
"7": 32,
|
||||
"8": 33,
|
||||
"9": 34,
|
||||
"10": 35,
|
||||
"11": 36,
|
||||
"12": 37,
|
||||
"13": 38,
|
||||
"14": 39,
|
||||
"15": 40,
|
||||
"16": 42,
|
||||
"17": 44,
|
||||
"18": 45,
|
||||
"19": 50
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 10,
|
||||
"3": 10,
|
||||
"4": 10,
|
||||
"5": 10,
|
||||
"6": 20,
|
||||
"7": 30,
|
||||
"8": 40,
|
||||
"9": 50,
|
||||
"10": 60,
|
||||
"11": 73,
|
||||
"12": 76,
|
||||
"13": 79,
|
||||
"14": 82,
|
||||
"15": 86,
|
||||
"16": 90,
|
||||
"17": 90,
|
||||
"18": 100,
|
||||
"19": 100
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme00",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme0"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme10",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme1"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme20",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme2"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme30",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme3"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme40",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme4"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme50",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme5"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme60",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme6"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nvme70",
|
||||
"type": "stepwise",
|
||||
"inputs": ["nvme7"],
|
||||
"setpoint": 30.0,
|
||||
"pid": {
|
||||
"samplePeriod": 1.0,
|
||||
"positiveHysteresis": 1.0,
|
||||
"negativeHysteresis": 1.0,
|
||||
"isCeiling": false,
|
||||
"reading": {
|
||||
"0": 45,
|
||||
"1": 46,
|
||||
"2": 47,
|
||||
"3": 48,
|
||||
"4": 49,
|
||||
"5": 50,
|
||||
"6": 51,
|
||||
"7": 52,
|
||||
"8": 53,
|
||||
"9": 54,
|
||||
"10": 55,
|
||||
"11": 56,
|
||||
"12": 57,
|
||||
"13": 58,
|
||||
"14": 59,
|
||||
"15": 60,
|
||||
"16": 61,
|
||||
"17": 62,
|
||||
"18": 63,
|
||||
"19": 64
|
||||
},
|
||||
"output": {
|
||||
"0": 10,
|
||||
"1": 10,
|
||||
"2": 13,
|
||||
"3": 15,
|
||||
"4": 18,
|
||||
"5": 21,
|
||||
"6": 24,
|
||||
"7": 26,
|
||||
"8": 28,
|
||||
"9": 30,
|
||||
"10": 32,
|
||||
"11": 34,
|
||||
"12": 36,
|
||||
"13": 38,
|
||||
"14": 40,
|
||||
"15": 41,
|
||||
"16": 42,
|
||||
"17": 43,
|
||||
"18": 44,
|
||||
"19": 45
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Set Fan to Default Duty as Booting Up
|
||||
DefaultDependencies=no
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/fan-default-speed.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
NVME_GPIO_NUM=( 148 149 150 151 152 153 154 155 )
|
||||
NVME=( 1 1 1 1 1 1 1 1 )
|
||||
FAN_TABLE_PATH="/usr/share/swampd/config.json"
|
||||
FAN_TABLE=( "/usr/share/swampd/config-8ssd.json" "/usr/share/swampd/config-2ssd.json" )
|
||||
TYPE=-1
|
||||
|
||||
# get nvme presence
|
||||
for i in {0..7}
|
||||
do
|
||||
gpioNum=${NVME_GPIO_NUM[$i]}
|
||||
NVME[i]=$(cat "/sys/class/gpio/gpio$gpioNum/value")
|
||||
done
|
||||
|
||||
# distinguish between 8-ssd and 2-ssd sku
|
||||
for i in {2..7}
|
||||
do
|
||||
if [ "${NVME[$i]}" -eq 0 ]; then
|
||||
TYPE=0
|
||||
fi
|
||||
done
|
||||
if [ $TYPE -eq -1 ]; then
|
||||
for i in {0..1}
|
||||
do
|
||||
if [ "${NVME[$i]}" -eq 0 ]; then
|
||||
TYPE=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $TYPE -eq 1 ]; then
|
||||
cp "${FAN_TABLE[1]}" $FAN_TABLE_PATH
|
||||
else
|
||||
cp "${FAN_TABLE[0]}" $FAN_TABLE_PATH
|
||||
fi
|
||||
|
||||
# start pid control
|
||||
/usr/bin/swampd
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo 230 > /sys/class/hwmon/*/pwm1
|
||||
echo 230 > /sys/class/hwmon/*/pwm2
|
||||
echo 230 > /sys/class/hwmon/*/pwm3
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Set Fan to Default Duty as Rebooting
|
||||
DefaultDependencies=no
|
||||
After=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=true
|
||||
ExecStart=/usr/bin/fan-default-speed.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=shutdown.target
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=OpenBMC Fan Control Daemon
|
||||
After=xyz.openbmc_project.nvme.manager.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/fan-control.sh
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
StartLimitInterval=0
|
||||
ExecStopPost=/usr/bin/fan-default-speed.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=basic.target
|
||||
@@ -0,0 +1,40 @@
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/${PN}:"
|
||||
SRC_URI:append:gsj = " file://config-8ssd.json"
|
||||
SRC_URI:append:gsj = " file://config-2ssd.json"
|
||||
SRC_URI:append:gsj = " file://fan-control.sh"
|
||||
SRC_URI:append:gsj = " file://fan-default-speed.sh"
|
||||
SRC_URI:append:gsj = " file://phosphor-pid-control.service"
|
||||
SRC_URI:append:gsj = " file://fan-reboot-control.service"
|
||||
SRC_URI:append:gsj = " file://fan-boot-control.service"
|
||||
|
||||
FILES:${PN}:append:gsj = " ${datadir}/swampd/config-8ssd.json"
|
||||
FILES:${PN}:append:gsj = " ${datadir}/swampd/config-2ssd.json"
|
||||
FILES:${PN}:append:gsj = " ${bindir}/fan-control.sh"
|
||||
FILES:${PN}:append:gsj = " ${bindir}/fan-default-speed.sh"
|
||||
|
||||
inherit systemd
|
||||
RDEPENDS:${PN} += "bash"
|
||||
|
||||
SYSTEMD_SERVICE:${PN}:append:gsj = " phosphor-pid-control.service"
|
||||
SYSTEMD_SERVICE:${PN}:append:gsj = " fan-reboot-control.service"
|
||||
SYSTEMD_SERVICE:${PN}:append:gsj = " fan-boot-control.service"
|
||||
|
||||
do_install:append:gsj() {
|
||||
install -d ${D}/${bindir}
|
||||
install -m 0755 ${WORKDIR}/fan-control.sh ${D}/${bindir}
|
||||
install -m 0755 ${WORKDIR}/fan-default-speed.sh ${D}/${bindir}
|
||||
|
||||
install -d ${D}${datadir}/swampd
|
||||
install -m 0644 -D ${WORKDIR}/config-8ssd.json \
|
||||
${D}${datadir}/swampd/config-8ssd.json
|
||||
install -m 0644 -D ${WORKDIR}/config-2ssd.json \
|
||||
${D}${datadir}/swampd/config-2ssd.json
|
||||
|
||||
install -d ${D}${systemd_unitdir}/system/
|
||||
install -m 0644 ${WORKDIR}/phosphor-pid-control.service \
|
||||
${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/fan-reboot-control.service \
|
||||
${D}${systemd_unitdir}/system
|
||||
install -m 0644 ${WORKDIR}/fan-boot-control.service \
|
||||
${D}${systemd_unitdir}/system
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " quanta-nvme-powerctrl"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-nvme"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-pid-control"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " detect-fan-fail"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " google-ipmi-sys"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " gsj-hotswap-change-setting"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " iperf3"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-ipmi-host"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-hwmon"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-inventory-manager"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-host-postd"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-led-manager"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-led-sysfs"
|
||||
OBMC_IMAGE_EXTRA_INSTALL:append:gsj = " phosphor-led-manager-faultmonitor"
|
||||
@@ -0,0 +1,52 @@
|
||||
0x00:
|
||||
/system/chassis/bmc:
|
||||
entityID: 6
|
||||
entityInstance: 1
|
||||
interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruProperty: FRU File ID
|
||||
IPMIFruSection: Board
|
||||
0x01:
|
||||
/system/chassis/hsbp:
|
||||
entityID: 16
|
||||
entityInstance: 1
|
||||
interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruProperty: FRU File ID
|
||||
IPMIFruSection: Board
|
||||
@@ -0,0 +1,19 @@
|
||||
SUMMARY = "FRU properties config for ipmi-fru-parser"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-fru
|
||||
inherit native
|
||||
|
||||
SRC_URI += "file://extra-properties.yaml"
|
||||
|
||||
PROVIDES += "virtual/phosphor-ipmi-fru-properties"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${properties_datadir}
|
||||
install -d ${DEST}
|
||||
install extra-properties.yaml ${DEST}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
/system/chassis/bmc:
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
|
||||
/system/chassis/hsbp:
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
@@ -0,0 +1,19 @@
|
||||
SUMMARY = "gsj inventory map for phosphor-ipmi-host"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-host
|
||||
inherit native
|
||||
|
||||
SRC_URI += "file://config.yaml"
|
||||
|
||||
PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${config_datadir}
|
||||
install -d ${DEST}
|
||||
install config.yaml ${DEST}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
SUMMARY = "gsj IPMI to DBus Inventory mapping."
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-fru
|
||||
inherit native
|
||||
|
||||
SRC_URI += "file://config.yaml"
|
||||
|
||||
PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${config_datadir}
|
||||
install -d ${DEST}
|
||||
install config.yaml ${DEST}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
SUMMARY = "Quanta gsj IPMI to DBus Sensor mapping."
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-host
|
||||
inherit native
|
||||
|
||||
PROVIDES += "virtual/phosphor-ipmi-sensor-inventory"
|
||||
|
||||
SRC_URI += "file://config.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${sensor_datadir}
|
||||
install -d ${DEST}
|
||||
install config.yaml ${DEST}/sensor.yaml
|
||||
}
|
||||
+977
@@ -0,0 +1,977 @@
|
||||
0x30:
|
||||
entityID: 0x06
|
||||
entityInstance: 1
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/KL0
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x31:
|
||||
entityID: 0x0D
|
||||
entityInstance: 1
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/KL1
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x32:
|
||||
entityID: 0x0E
|
||||
entityInstance: 1
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/KL2
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x33:
|
||||
entityID: 0x0E
|
||||
entityInstance: 2
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/KL3
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x3C:
|
||||
entityID: 0x0A
|
||||
entityInstance: 1
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/P48V_HSC_Temp
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x70:
|
||||
entityID: 0x0A
|
||||
entityInstance: 5
|
||||
sensorType: 0x03
|
||||
path: /xyz/openbmc_project/sensors/current/P48V_HSC_Current
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 9
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -2
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x60:
|
||||
entityID: 0x0A
|
||||
entityInstance: 3
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P48V_HSC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 243
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -3
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x90:
|
||||
entityID: 0x0A
|
||||
entityInstance: 6
|
||||
sensorType: 0x0B
|
||||
path: /xyz/openbmc_project/sensors/power/P48V_HSC_Power
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 310
|
||||
offsetB: 4
|
||||
bExp: 2
|
||||
rExp: -2
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x3D:
|
||||
entityID: 0x0A
|
||||
entityInstance: 2
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/P12V_BRIC_Temp
|
||||
sensorReadingType: 0x01
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x71:
|
||||
entityID: 0x0A
|
||||
entityInstance: 7
|
||||
sensorType: 0x03
|
||||
path: /xyz/openbmc_project/sensors/current/P12V_BRIC_Curr
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 200
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -3
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x61:
|
||||
entityID: 0x0A
|
||||
entityInstance: 4
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P12V_BRIC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 509
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
|
||||
0x80:
|
||||
entityID: 0x1D
|
||||
entityInstance: 1
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x81:
|
||||
entityID: 0x1D
|
||||
entityInstance: 2
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan0_1_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x82:
|
||||
entityID: 0x1D
|
||||
entityInstance: 3
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x83:
|
||||
entityID: 0x1D
|
||||
entityInstance: 4
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan1_1_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x84:
|
||||
entityID: 0x1D
|
||||
entityInstance: 5
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x85:
|
||||
entityID: 0x1D
|
||||
entityInstance: 6
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan2_1_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 79
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: 0
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0xC0: &fan_pwm
|
||||
sensorType: 0x04
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 1
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
interfaces:
|
||||
xyz.openbmc_project.Control.FanPwm:
|
||||
Target:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: uint64_t
|
||||
|
||||
0xC1:
|
||||
<<: *fan_pwm
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM
|
||||
|
||||
0xC2:
|
||||
<<: *fan_pwm
|
||||
path: /xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM
|
||||
|
||||
0x34:
|
||||
entityID: 0x07
|
||||
entityInstance: 1
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme0
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x35:
|
||||
entityID: 0x07
|
||||
entityInstance: 2
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme1
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x36:
|
||||
entityID: 0x07
|
||||
entityInstance: 3
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme2
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x37:
|
||||
entityID: 0x07
|
||||
entityInstance: 4
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme3
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x38:
|
||||
entityID: 0x07
|
||||
entityInstance: 5
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme4
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x39:
|
||||
entityID: 0x07
|
||||
entityInstance: 6
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme5
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x3A:
|
||||
entityID: 0x07
|
||||
entityInstance: 7
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme6
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
0x3B:
|
||||
entityID: 0x07
|
||||
entityInstance: 8
|
||||
sensorType: 0x01
|
||||
path: /xyz/openbmc_project/sensors/temperature/nvme7
|
||||
sensorReadingType: 0x01
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x40:
|
||||
entityID: 0x07
|
||||
entityInstance: 9
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_0_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x41:
|
||||
entityID: 0x07
|
||||
entityInstance: 10
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_1_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x42:
|
||||
entityID: 0x07
|
||||
entityInstance: 11
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_2_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x43:
|
||||
entityID: 0x07
|
||||
entityInstance: 12
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_3_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x44:
|
||||
entityID: 0x07
|
||||
entityInstance: 13
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_4_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x45:
|
||||
entityID: 0x07
|
||||
entityInstance: 14
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_5_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x46:
|
||||
entityID: 0x07
|
||||
entityInstance: 15
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_6_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x47:
|
||||
entityID: 0x07
|
||||
entityInstance: 16
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_7_locate
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x01:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x50:
|
||||
entityID: 0x07
|
||||
entityInstance: 17
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_0_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x51:
|
||||
entityID: 0x07
|
||||
entityInstance: 18
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_1_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x52:
|
||||
entityID: 0x07
|
||||
entityInstance: 19
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_2_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x53:
|
||||
entityID: 0x07
|
||||
entityInstance: 20
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_3_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x54:
|
||||
entityID: 0x07
|
||||
entityInstance: 21
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_4_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x55:
|
||||
entityID: 0x07
|
||||
entityInstance: 22
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_5_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x56:
|
||||
entityID: 0x07
|
||||
entityInstance: 23
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_6_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0x57:
|
||||
entityID: 0x07
|
||||
entityInstance: 24
|
||||
sensorType: 0x21
|
||||
path: /xyz/openbmc_project/led/groups/led_u2_7_fault
|
||||
sensorReadingType: 0x6F
|
||||
mutability: Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Led.Group:
|
||||
Asserted:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: bool
|
||||
assert: true
|
||||
|
||||
0xB0:
|
||||
entityID: 0x20
|
||||
entityInstance: 1
|
||||
sensorType: 0x0C
|
||||
path: /xyz/openbmc_project/metrics/memory/BmcECC
|
||||
sensorReadingType: 0x6F
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
mutability: Mutability::Read
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Memory.MemoryECC:
|
||||
state:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: string
|
||||
assert: xyz.openbmc_project.Memory.MemoryECC.ECCStatus.CE
|
||||
0x01:
|
||||
type: string
|
||||
assert: xyz.openbmc_project.Memory.MemoryECC.ECCStatus.UE
|
||||
0x05:
|
||||
type: string
|
||||
assert: xyz.openbmc_project.Memory.MemoryECC.ECCStatus.LogFull
|
||||
|
||||
0x62:
|
||||
entityID: 0x0A
|
||||
entityInstance: 7
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P3V3_STBY_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 156
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x64:
|
||||
entityID: 0x0A
|
||||
entityInstance: 8
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P2V5_BMC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 117
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x65:
|
||||
entityID: 0x0A
|
||||
entityInstance: 9
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P1V8_BMC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 78
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x66:
|
||||
entityID: 0x0A
|
||||
entityInstance: 10
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P1V2_BMC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 78
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x67:
|
||||
entityID: 0x0A
|
||||
entityInstance: 11
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/PVTT_BMC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 392
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -5
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x68:
|
||||
entityID: 0x0A
|
||||
entityInstance: 12
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P1V175_BMC_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 78
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
|
||||
0x69:
|
||||
entityID: 0x0A
|
||||
entityInstance: 13
|
||||
sensorType: 0x02
|
||||
path: /xyz/openbmc_project/sensors/voltage/P3V3_PEVPH_Vol
|
||||
sensorReadingType: 0x01
|
||||
multiplierM: 156
|
||||
offsetB: 0
|
||||
bExp: 0
|
||||
rExp: -4
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: readingData
|
||||
sensorNamePattern: nameLeaf
|
||||
unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
|
||||
interfaces:
|
||||
xyz.openbmc_project.Sensor.Value:
|
||||
Value:
|
||||
Offsets:
|
||||
0xFF:
|
||||
type: double
|
||||
@@ -0,0 +1 @@
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"0" : {
|
||||
"access_mode" : "always_available",
|
||||
"user_auth_disabled" : false,
|
||||
"per_msg_auth_disabled" : false,
|
||||
"alerting_disabled" : false,
|
||||
"priv_limit" : "priv-admin"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"0" : {
|
||||
"name" : "usb0",
|
||||
"is_valid" : true,
|
||||
"active_sessions" : 0,
|
||||
"channel_info" : {
|
||||
"medium_type" : "lan-802.3",
|
||||
"protocol_type" : "ipmb-1.0",
|
||||
"session_supported" : "multi-session",
|
||||
"is_ipmi" : true
|
||||
}
|
||||
},
|
||||
"8" : {
|
||||
"name" : "INTRABMC",
|
||||
"is_valid" : true,
|
||||
"active_sessions" : 0,
|
||||
"channel_info" : {
|
||||
"medium_type" : "oem",
|
||||
"protocol_type" : "oem",
|
||||
"session_supported" : "session-less",
|
||||
"is_ipmi" : true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
PACKAGECONFIG:append:gsj = " net-bridge reboot-update static-bmc"
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
SYSFS_PATH=/sys/bus/i2c/devices/10-0055/eeprom
|
||||
FRUID=0
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
SYSFS_PATH=/sys/bus/i2c/devices/9-0055/eeprom
|
||||
FRUID=1
|
||||
@@ -0,0 +1,20 @@
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/${PN}:"
|
||||
|
||||
EEPROM_NAMES = "hsbp bmc"
|
||||
|
||||
EEPROMFMT = "system/chassis/{0}"
|
||||
EEPROM_ESCAPEDFMT = "system-chassis-{0}"
|
||||
EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}"
|
||||
EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}"
|
||||
|
||||
ENVFMT = "obmc/eeproms/{0}"
|
||||
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:gsj := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}"
|
||||
|
||||
TMPL = "obmc-read-eeprom@.service"
|
||||
TGT = "multi-user.target"
|
||||
INSTFMT = "obmc-read-eeprom@{0}.service"
|
||||
FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}"
|
||||
|
||||
SYSTEMD_LINK:${PN}:append:gsj := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}"
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
#<NetFn>:<Command>
|
||||
0x00:0x00 //<Chassis>:<Chassis Capabiliti>
|
||||
0x00:0x01 //<Chassis>:<Get Chassis Status>
|
||||
0x00:0x02 //<Chassis>:<Chassis Control>
|
||||
0x00:0x05 //<Chassis>:<Set Chassis Capabilities>
|
||||
0x00:0x06 //<Chassis>:<Set Power Restore Policy>
|
||||
0x00:0x08 //<Chassis>:<Set System Boot Options>
|
||||
0x00:0x09 //<Chassis>:<Get System Boot Options>
|
||||
0x04:0x20 //<Sensor/Event>:<Get Device SDR Info>
|
||||
0x04:0x21 //<Sensor/Event>:<Get Device SDR>
|
||||
0x04:0x22 //<Sensor/Event>:<Reserve Device SDR Repository>
|
||||
0x04:0x27 //<Sensor/Event>:<Get Sensor Threshold>
|
||||
0x04:0x29 //<Sensor/Event>:<Get Sensor Event Enable>
|
||||
0x04:0x2B //<Sensor/Event>:<Get Sensor Event Status>
|
||||
0x04:0x2D //<Sensor/Event>:<Get Sensor Reading>
|
||||
0x04:0x2F //<Sensor/Event>:<Get Sensor Type>
|
||||
0x04:0x30 //<Sensor/Event>:<Set Sensor Reading and Event Status>
|
||||
0x06:0x01 //<App>:<Get Device ID>
|
||||
0x06:0x02 //<App>:<Cold Reset>
|
||||
0x06:0x03 //<App>:<Warm Reset>
|
||||
0x06:0x04 //<App>:<Get Self Test Results>
|
||||
0x06:0x08 //<App>:<Get Device GUID>
|
||||
0x06:0x35 //<App>:<Read Event Message Buffer>
|
||||
0x06:0x40 //<App>:<Set Channel Access>
|
||||
0x06:0x41 //<App>:<Get Channel Access>
|
||||
0x06:0x42 //<App>:<Get Channel Info>
|
||||
0x06:0x43 //<App>:<Set User Access>
|
||||
0x06:0x44 //<App>:<Get User Access>
|
||||
0x06:0x45 //<App>:<Set User Name>
|
||||
0x06:0x46 //<App>:<Get User Name>
|
||||
0x06:0x47 //<App>:<Set User Password>
|
||||
0x06:0x48 //<App>:<Activate Payload>
|
||||
0x06:0x49 //<App>:<Deactivate Payload>
|
||||
0x06:0x4A //<App>:<Get Payload Activation Status>
|
||||
0x06:0x4B //<App>:<Get Payload Instance Info>
|
||||
0x06:0x54 //<App>:<Get Channel Cipher Suites>
|
||||
0x0A:0x10 //<Storage>:<Get FRU Inventory Area Info>
|
||||
0x0A:0x11 //<Storage>:<Read FRU Data>
|
||||
0x0A:0x20 //<Storage>:<Get SDR Repository Info>
|
||||
0x0A:0x22 //<Storage>:<Reserve SDR Repository>
|
||||
0x0A:0x23 //<Storage>:<Get SDR>
|
||||
0x0A:0x40 //<Storage>:<Get SEL Info>
|
||||
0x0A:0x42 //<Storage>:<Reserve SEL>
|
||||
0x0A:0x43 //<Storage>:<Get SEL Entry>
|
||||
0x0A:0x44 //<Storage>:<Add SEL Entry>
|
||||
0x0A:0x47 //<Storage>:<Clear SEL>
|
||||
0x0A:0x48 //<Storage>:<Get SEL Time>
|
||||
0x0A:0x49 //<Storage>:<Set SEL Time>
|
||||
0x0C:0x01 //<Transport>:<Set LAN Configuration Parameters>
|
||||
0x0C:0x02 //<Transport>:<Get LAN Configuration Parameters>
|
||||
0x2C:0x00 //<Group Extension>:<Group Extension Command>
|
||||
0x2C:0x01 //<Group Extension>:<Get DCMI Capabilities>
|
||||
0x2C:0x02 //<Group Extension>:<Get Power Reading>
|
||||
0x2C:0x03 //<Group Extension>:<Get Power Limit>
|
||||
0x2C:0x06 //<Group Extension>:<Get Asset Tag>
|
||||
0x2C:0x07 //<Group Extension>:<Get Sensor Info>
|
||||
0x2C:0x10 //<Group Extension>:<Get Temperature Readings>
|
||||
0x2C:0x3E //<Group Extension>:<Get HPM.x Capabilities>
|
||||
0x2E:0x02 //<Google OEM>:<I2C via Proxy Adapter>
|
||||
0x2E:0x30 //<Google OEM>:<Ethernet Statistics>
|
||||
0x2E:0x32 //<Google OEM>:<Sys Commands>
|
||||
@@ -0,0 +1,7 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
# Replace the default whitelist for GSJ board.
|
||||
SRC_URI:append:gsj = " file://gsj-ipmid-whitelist.conf"
|
||||
|
||||
WHITELIST_CONF:remove:gsj = " ${S}/host-ipmid-whitelist.conf"
|
||||
WHITELIST_CONF:append:gsj = " ${WORKDIR}/gsj-ipmid-whitelist.conf"
|
||||
@@ -0,0 +1,3 @@
|
||||
# In gsj, usb0 is the interface.
|
||||
RMCPP_IFACE:gsj = "usb0"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "Phosphor LED Group Management for gsj"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit native
|
||||
|
||||
PROVIDES += "virtual/phosphor-led-manager-config-native"
|
||||
|
||||
SRC_URI += "file://led.yaml"
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
SRC=${S}
|
||||
DEST=${D}${datadir}/phosphor-led-manager
|
||||
install -D ${SRC}/led.yaml ${DEST}/led.yaml
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
BmcBooted:
|
||||
led-bmc-live:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 1000
|
||||
LED_BMC_TRAY_PWRGD:
|
||||
LED_BMC_TRAY_PWRGD:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_0_LOCATE:
|
||||
LED_U2_0_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_0_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_1_LOCATE:
|
||||
LED_U2_1_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_1_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_2_LOCATE:
|
||||
LED_U2_2_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_2_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_3_LOCATE:
|
||||
LED_U2_3_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_3_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_4_LOCATE:
|
||||
LED_U2_4_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_4_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_5_LOCATE:
|
||||
LED_U2_5_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_5_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_6_LOCATE:
|
||||
LED_U2_6_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_6_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_7_LOCATE:
|
||||
LED_U2_7_LOCATE:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_7_FAULT:
|
||||
Action: 'Blink'
|
||||
DutyOn: 50
|
||||
Period: 250
|
||||
LED_U2_0_FAULT:
|
||||
LED_U2_0_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_1_FAULT:
|
||||
LED_U2_1_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_2_FAULT:
|
||||
LED_U2_2_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_3_FAULT:
|
||||
LED_U2_3_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_4_FAULT:
|
||||
LED_U2_4_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_5_FAULT:
|
||||
LED_U2_5_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_6_FAULT:
|
||||
LED_U2_6_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
LED_U2_7_FAULT:
|
||||
LED_U2_7_FAULT:
|
||||
Action: 'On'
|
||||
Period: 1000
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LABEL_temp1= "KL0"
|
||||
WARNLO_temp1= "5000"
|
||||
WARNHI_temp1= "38000"
|
||||
CRITHI_temp1 = "40000"
|
||||
CRITLO_temp1 = "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LABEL_temp1= "KL1"
|
||||
WARNLO_temp1= "5000"
|
||||
WARNHI_temp1= "53000"
|
||||
CRITHI_temp1 = "56000"
|
||||
CRITLO_temp1 = "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LABEL_temp1= "KL2"
|
||||
WARNLO_temp1= "5000"
|
||||
WARNHI_temp1= "58000"
|
||||
CRITHI_temp1 = "61000"
|
||||
CRITLO_temp1 = "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
LABEL_temp1= "KL3"
|
||||
WARNLO_temp1= "5000"
|
||||
WARNHI_temp1= "42000"
|
||||
CRITHI_temp1 = "44000"
|
||||
CRITLO_temp1 = "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
LABEL_temp1= "P48V_HSC_Temp"
|
||||
WARNHI_temp1= "60000"
|
||||
WARNLO_temp1= "5000"
|
||||
CRITHI_temp1= "65000"
|
||||
CRITLO_temp1= "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_curr1= "P48V_HSC_Current"
|
||||
WARNLO_curr1= "4"
|
||||
CRITLO_curr1= "0"
|
||||
WARNHI_curr1= "17629"
|
||||
CRITHI_curr1= "19231"
|
||||
MINVALUE_curr1 = "0"
|
||||
MAXVALUE_curr1 = "23"
|
||||
EVENT_curr1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
GAIN_curr1= "0.78"
|
||||
|
||||
LABEL_in3= "P48V_HSC_Vol"
|
||||
WARNLO_in3= "39500"
|
||||
CRITLO_in3= "38500"
|
||||
WARNHI_in3= "60500"
|
||||
CRITHI_in3= "61500"
|
||||
MINVALUE_in3 = "0"
|
||||
MAXVALUE_in3 = "62"
|
||||
EVENT_in3= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_power1= "P48V_HSC_Power"
|
||||
WARNLO_power1= "128205"
|
||||
CRITLO_power1= "0"
|
||||
WARNHI_power1= "705128205"
|
||||
CRITHI_power1= "769230770"
|
||||
MINVALUE_power1 = "0"
|
||||
MAXVALUE_power1 = "795"
|
||||
EVENT_power1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
GAIN_power1= "0.78"
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
LABEL_temp1= "P12V_BRIC_Temp"
|
||||
WARNHI_temp1= "88000"
|
||||
WARNLO_temp1= "5000"
|
||||
CRITHI_temp1= "93000"
|
||||
CRITLO_temp1= "0"
|
||||
MINVALUE_temp1 = "-128"
|
||||
MAXVALUE_temp1 = "127"
|
||||
EVENT_temp1 = "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_curr1= "P12V_BRIC_Curr"
|
||||
WARNLO_curr1= "9"
|
||||
CRITLO_curr1= "0"
|
||||
WARNHI_curr1= "45800"
|
||||
CRITHI_curr1= "50000"
|
||||
MINVALUE_curr1 = "0"
|
||||
MAXVALUE_curr1 = "51"
|
||||
EVENT_curr1 = "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in2= "P12V_BRIC_Vol"
|
||||
WARNLO_in2= "11400"
|
||||
CRITLO_in2= "11040"
|
||||
WARNHI_in2= "12600"
|
||||
CRITHI_in2= "12960"
|
||||
MINVALUE_in2= "0"
|
||||
MAXVALUE_in2= "13"
|
||||
EVENT_in2= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
LABEL_in1= "P3V3_STBY_Vol"
|
||||
WARNLO_in1= "3135"
|
||||
CRITLO_in1= "3135"
|
||||
WARNHI_in1= "3465"
|
||||
CRITHI_in1= "3465"
|
||||
MINVALUE_in1= "0"
|
||||
MAXVALUE_in1= "4"
|
||||
EVENT_in1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in2= "P2V5_BMC_Vol"
|
||||
WARNLO_in2= "2375"
|
||||
CRITLO_in2= "2375"
|
||||
WARNHI_in2= "2625"
|
||||
CRITHI_in2= "2625"
|
||||
MINVALUE_in2= "0"
|
||||
MAXVALUE_in2= "3"
|
||||
EVENT_in2= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in3= "P1V8_BMC_Vol"
|
||||
WARNLO_in3= "1710"
|
||||
CRITLO_in3= "1710"
|
||||
WARNHI_in3= "1890"
|
||||
CRITHI_in3= "1890"
|
||||
MINVALUE_in3= "0"
|
||||
MAXVALUE_in3= "2"
|
||||
EVENT_in3= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in4= "P1V2_BMC_Vol"
|
||||
WARNLO_in4= "1140"
|
||||
CRITLO_in4= "1140"
|
||||
WARNHI_in4= "1260"
|
||||
CRITHI_in4= "1260"
|
||||
MINVALUE_in4= "0"
|
||||
MAXVALUE_in4= "2"
|
||||
EVENT_in4= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in5= "PVTT_BMC_Vol"
|
||||
WARNLO_in5= "571"
|
||||
CRITLO_in5= "571"
|
||||
WARNHI_in5= "626"
|
||||
CRITHI_in5= "626"
|
||||
MINVALUE_in5= "0"
|
||||
MAXVALUE_in5= "1"
|
||||
EVENT_in5= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in6= "P1V175_BMC_Vol"
|
||||
WARNLO_in6= "1139"
|
||||
CRITLO_in6= "1139"
|
||||
WARNHI_in6= "1210"
|
||||
CRITHI_in6= "1210"
|
||||
MINVALUE_in6= "0"
|
||||
MAXVALUE_in6= "2"
|
||||
EVENT_in6= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_in7= "P3V3_PEVPH_Vol"
|
||||
WARNLO_in7= "3135"
|
||||
CRITLO_in7= "3135"
|
||||
WARNHI_in7= "3465"
|
||||
CRITHI_in7= "3465"
|
||||
MINVALUE_in7= "0"
|
||||
MAXVALUE_in7= "4"
|
||||
EVENT_in7= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
LABEL_fan1= "Fan0_0_RPM"
|
||||
TARGET_fan1= "Fan0_0_RPM"
|
||||
WARNHI_fan1= "19250"
|
||||
WARNLO_fan1= "150"
|
||||
CRITHI_fan1= "19250"
|
||||
CRITLO_fan1= "150"
|
||||
MINVALUE_fan1 = "0"
|
||||
MAXVALUE_fan1 = "20145"
|
||||
PWM_TARGET_fan1 = 1
|
||||
EVENT_fan1= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_fan2= "Fan0_1_RPM"
|
||||
TARGET_fan2= "Fan0_1_RPM"
|
||||
WARNHI_fan2= "17600"
|
||||
WARNLO_fan2= "150"
|
||||
CRITHI_fan2= "17600"
|
||||
CRITLO_fan2= "150"
|
||||
MINVALUE_fan2 = "0"
|
||||
MAXVALUE_fan2 = "20145"
|
||||
PWM_TARGET_fan2 = 1
|
||||
EVENT_fan2= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_fan3= "Fan1_0_RPM"
|
||||
TARGET_fan3= "Fan1_0_RPM"
|
||||
WARNHI_fan3= "19250"
|
||||
WARNLO_fan3= "150"
|
||||
CRITHI_fan3= "19250"
|
||||
CRITLO_fan3= "150"
|
||||
MINVALUE_fan3 = "0"
|
||||
MAXVALUE_fan3 = "20145"
|
||||
PWM_TARGET_fan3 = 2
|
||||
EVENT_fan3= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_fan4= "Fan1_1_RPM"
|
||||
TARGET_fan4= "Fan1_1_RPM"
|
||||
WARNHI_fan4= "17600"
|
||||
WARNLO_fan4= "150"
|
||||
CRITHI_fan4= "17600"
|
||||
CRITLO_fan4= "150"
|
||||
MINVALUE_fan4 = "0"
|
||||
MAXVALUE_fan4 = "20145"
|
||||
PWM_TARGET_fan4 = 2
|
||||
EVENT_fan4= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_fan5= "Fan2_0_RPM"
|
||||
TARGET_fan5= "Fan2_0_RPM"
|
||||
WARNHI_fan5= "19250"
|
||||
WARNLO_fan5= "150"
|
||||
CRITHI_fan5= "19250"
|
||||
CRITLO_fan5= "150"
|
||||
MINVALUE_fan5 = "0"
|
||||
MAXVALUE_fan5 = "20145"
|
||||
PWM_TARGET_fan5 = 3
|
||||
EVENT_fan5= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
|
||||
LABEL_fan6= "Fan2_1_RPM"
|
||||
TARGET_fan6= "Fan2_1_RPM"
|
||||
WARNHI_fan6= "17600"
|
||||
WARNLO_fan6= "150"
|
||||
CRITHI_fan6= "17600"
|
||||
CRITLO_fan6= "150"
|
||||
MINVALUE_fan6 = "0"
|
||||
MAXVALUE_fan6 = "20145"
|
||||
PWM_TARGET_fan6 = 3
|
||||
EVENT_fan6= "WARNHI,WARNLO,CRITHI,CRITLO"
|
||||
@@ -0,0 +1,23 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
|
||||
NAMES = " \
|
||||
i2c@81000/lm75@5c \
|
||||
i2c@82000/lm75@5c \
|
||||
i2c@83000/lm75@5c \
|
||||
i2c@84000/lm75@5c \
|
||||
i2c@8b000/hotswap@15 \
|
||||
i2c@8b000/power-brick@36 \
|
||||
i2c@8c000/ucd90160@6b \
|
||||
"
|
||||
ITEMSFMT = "ahb/apb/{0}.conf"
|
||||
|
||||
ITEMS += "${@compose_list(d, 'ITEMSFMT', 'NAMES')}"
|
||||
|
||||
ENVS = "obmc/hwmon/{0}"
|
||||
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:gsj = " ${@compose_list(d, 'ENVS', 'ITEMS')}"
|
||||
|
||||
# Fan sensors
|
||||
FITEMS = "pwm-fan-controller@103000.conf"
|
||||
FENVS = "obmc/hwmon/ahb/apb/{0}"
|
||||
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:gsj = " ${@compose_list(d, 'FENVS', 'FITEMS')}"
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
---
|
||||
/xyz/openbmc_project/control/host0/restriction_mode:
|
||||
- Interface: xyz.openbmc_project.Control.Security.RestrictionMode
|
||||
Properties:
|
||||
RestrictionMode:
|
||||
Default: RestrictionMode::Modes::Whitelist
|
||||
@@ -0,0 +1,2 @@
|
||||
FILESEXTRAPATHS:prepend:gsj := "${THISDIR}/${BPN}:"
|
||||
SRC_URI:append:gsj = " file://restrictionmode-default-whitelist.override.yml"
|
||||
Reference in New Issue
Block a user