summaryrefslogtreecommitdiffstats
path: root/meta-rcs
diff options
context:
space:
mode:
authorRaptor Engineering Development Team <support@raptorengineering.com>2019-04-19 08:35:02 +0000
committerTimothy Pearson <tpearson@raptorengineering.com>2019-04-25 08:02:05 +0000
commitc6a41036bb2f2fedb9a37ab3e1721839110b32a1 (patch)
tree5d3723e067adac7eaa4843d7ef24fbd82dc2aceb /meta-rcs
parentfb83e16d3529ade1057088c33faeb4ea7ff922ed (diff)
downloadtalos-openbmc-c6a41036bb2f2fedb9a37ab3e1721839110b32a1.tar.gz
talos-openbmc-c6a41036bb2f2fedb9a37ab3e1721839110b32a1.zip
[Subtree] Bring openbmc machines to top level
Diffstat (limited to 'meta-rcs')
-rw-r--r--meta-rcs/conf/layer.conf5
-rw-r--r--meta-rcs/conf/machine/include/rcs.inc1
-rw-r--r--meta-rcs/meta-talos/conf/bblayers.conf.sample37
-rw-r--r--meta-rcs/meta-talos/conf/conf-notes.txt2
-rw-r--r--meta-rcs/meta-talos/conf/layer.conf9
-rw-r--r--meta-rcs/meta-talos/conf/local.conf.sample223
-rw-r--r--meta-rcs/meta-talos/conf/machine/talos.conf40
-rw-r--r--meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc/talos.cfg21
-rw-r--r--meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc_%.bbappend2
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb40
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh34
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service16
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh34
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service17
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh23
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service18
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb26
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh137
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service15
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh22
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/console/obmc-console.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/console/obmc-console/obmc-console.conf4
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%.bbappend33
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf2
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf5
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf6
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service13
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml751
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend1
-rwxr-xr-xmeta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml31
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml27
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend2
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml56
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml64
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml53
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy-native.bb16
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/air-cooled.yaml241
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml934
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/water-cooled.yaml233
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog.bb22
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/fan-watchdog.conf3
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/reset-fan-watchdog.conf4
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog-monitor@.service10
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog.service13
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-reset-fan-watchdog.service12
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy-native.bb12
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy/thermal-policy.yaml200
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/host/p9-host-start.bbappend2
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml159
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml36
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend48
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dcmi_sensors.json59
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dev_id.json2
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml1759
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml42
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/power_reading.json3
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend1
-rwxr-xr-xmeta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml1939
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map-native.bb23
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map/config.yaml538
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config-native.bb19
-rwxr-xr-xmeta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config/led.yaml38
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/mboxd/mboxd.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%.bbappend25
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon-max31785/talos.conf3
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/max31785@52.conf16
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@68.conf23
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@69.conf23
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf3
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf123
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf123
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules1
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/phosphor-max31785-msl@.service11
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service11
-rw-r--r--meta-rcs/meta-talos/recipes-phosphor/workbook/talos-config.bb5
-rw-r--r--meta-rcs/meta-talos/recipes.txt2
84 files changed, 8517 insertions, 0 deletions
diff --git a/meta-rcs/conf/layer.conf b/meta-rcs/conf/layer.conf
new file mode 100644
index 000000000..85e083f8f
--- /dev/null
+++ b/meta-rcs/conf/layer.conf
@@ -0,0 +1,5 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+BBFILE_COLLECTIONS += "rcs"
+BBFILE_PATTERN_rcs = ""
diff --git a/meta-rcs/conf/machine/include/rcs.inc b/meta-rcs/conf/machine/include/rcs.inc
new file mode 100644
index 000000000..c79ddd777
--- /dev/null
+++ b/meta-rcs/conf/machine/include/rcs.inc
@@ -0,0 +1 @@
+require conf/machine/include/openpower.inc
diff --git a/meta-rcs/meta-talos/conf/bblayers.conf.sample b/meta-rcs/meta-talos/conf/bblayers.conf.sample
new file mode 100644
index 000000000..986f6663d
--- /dev/null
+++ b/meta-rcs/meta-talos/conf/bblayers.conf.sample
@@ -0,0 +1,37 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "7"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/import-layers/meta-openembedded/meta-oe \
+ ##OEROOT##/import-layers/meta-openembedded/meta-networking \
+ ##OEROOT##/import-layers/meta-openembedded/meta-perl \
+ ##OEROOT##/import-layers/meta-openembedded/meta-python \
+ ##OEROOT##/import-layers/meta-virtualization \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed/meta-ast2500 \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-rcs \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/import-layers/meta-openembedded/meta-oe \
+ ##OEROOT##/import-layers/meta-openembedded/meta-networking \
+ ##OEROOT##/import-layers/meta-openembedded/meta-perl \
+ ##OEROOT##/import-layers/meta-openembedded/meta-python \
+ ##OEROOT##/import-layers/meta-virtualization \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed/meta-ast2500 \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-rcs \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-rcs/meta-talos \
+ "
diff --git a/meta-rcs/meta-talos/conf/conf-notes.txt b/meta-rcs/meta-talos/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-rcs/meta-talos/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-rcs/meta-talos/conf/layer.conf b/meta-rcs/meta-talos/conf/layer.conf
new file mode 100644
index 000000000..774c01bca
--- /dev/null
+++ b/meta-rcs/meta-talos/conf/layer.conf
@@ -0,0 +1,9 @@
+# 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 += "talos"
+BBFILE_PATTERN_talos = ""
diff --git a/meta-rcs/meta-talos/conf/local.conf.sample b/meta-rcs/meta-talos/conf/local.conf.sample
new file mode 100644
index 000000000..77399ab01
--- /dev/null
+++ b/meta-rcs/meta-talos/conf/local.conf.sample
@@ -0,0 +1,223 @@
+#
+# This file is your local configuration file and is where all local user settings
+# are placed. The comments in this file give some guide to the options a new user
+# to the system might want to change but pretty much any configuration option can
+# be set in this file.
+#
+# Lines starting with the '#' character are commented out and in some cases the
+# default values are provided as comments to show people example syntax. Enabling
+# the option is a question of removing the # character and making any change to the
+# variable as required.
+
+#
+# Machine Selection
+#
+MACHINE ??= "talos"
+
+#
+# Where to place downloads
+#
+# During a first build the system will download many different source code tarballs
+# from various upstream projects. This can take a while, particularly if your network
+# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
+# can preserve this directory to speed up this part of subsequent builds. This directory
+# is safe to share between multiple builds on the same machine too.
+#
+# The default is a downloads directory under TOPDIR which is the build directory.
+#
+#DL_DIR ?= "${TOPDIR}/downloads"
+
+#
+# Where to place shared-state files
+#
+# BitBake has the capability to accelerate builds based on previously built output.
+# This is done using "shared state" files which can be thought of as cache objects
+# and this option determines where those files are placed.
+#
+# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
+# from these files if no changes were made to the configuration. If changes were made
+# to the configuration, only shared state files where the state was still valid would
+# be used (done using checksums).
+#
+# The default is a sstate-cache directory under TOPDIR.
+#
+#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
+
+#
+# Where to place the build output
+#
+# This option specifies where the bulk of the building work should be done and
+# where BitBake should place its temporary files and output. Keep in mind that
+# this includes the extraction and compilation of many applications and the toolchain
+# which can use Gigabytes of hard disk space.
+#
+# The default is a tmp directory under TOPDIR.
+#
+#TMPDIR = "${TOPDIR}/tmp"
+
+#
+# Default policy config
+#
+# The distribution setting controls which policy settings are used as defaults.
+# The default value is fine for general Yocto project use, at least initially.
+# Ultimately when creating custom policy, people will likely end up subclassing
+# these defaults.
+#
+DISTRO ?= "openbmc-phosphor"
+# As an example of a subclass there is a "bleeding" edge policy configuration
+# where many versions are set to the absolute latest code from the upstream
+# source control systems. This is just mentioned here as an example, its not
+# useful to most new users.
+# DISTRO ?= "poky-bleeding"
+
+#
+# Package Management configuration
+#
+# This variable lists which packaging formats to enable. Multiple package backends
+# can be enabled at once and the first item listed in the variable will be used
+# to generate the root filesystems.
+# Options are:
+# - 'package_deb' for debian style deb files
+# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
+# - 'package_rpm' for rpm style packages
+# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
+# We default to rpm:
+PACKAGE_CLASSES ?= "package_rpm"
+
+#
+# SDK/ADT target architecture
+#
+# This variable specifies the architecture to build SDK/ADT items for and means
+# you can build the SDK packages for architectures other than the machine you are
+# running the build on (i.e. building i686 packages on an x86_64 host).
+# Supported values are i686 and x86_64
+#SDKMACHINE ?= "i686"
+
+SANITY_TESTED_DISTROS_append ?= " *"
+
+#
+# Extra image configuration defaults
+#
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# images. Some of these options are added to certain image types automatically. The
+# variable can contain the following options:
+# "dbg-pkgs" - add -dbg packages for all installed packages
+# (adds symbol information for debugging/profiling)
+# "dev-pkgs" - add -dev packages for all installed packages
+# (useful if you want to develop against libs in the image)
+# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
+# (useful if you want to run the package test suites)
+# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
+# "tools-debug" - add debugging tools (gdb, strace)
+# "eclipse-debug" - add Eclipse remote debugging support
+# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind)
+# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
+# "debug-tweaks" - make an image suitable for development
+# e.g. ssh root access has a blank password
+# There are other application targets that can be used here too, see
+# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
+# We default to enabling the debugging tweaks.
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+
+#
+# Additional image features
+#
+# The following is a list of additional classes to use when building images which
+# enable extra features. Some available options which can be included in this variable
+# are:
+# - 'buildstats' collect build statistics
+# - 'image-mklibs' to reduce shared library files size for an image
+# - 'image-prelink' in order to prelink the filesystem image
+# - 'image-swab' to perform host system intrusion detection
+# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
+# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+
+#
+# Runtime testing of images
+#
+# The build system can test booting virtual machine images under qemu (an emulator)
+# after any root filesystems are created and run tests against those images. To
+# enable this uncomment this line. See classes/testimage(-auto).bbclass for
+# further details.
+#TEST_IMAGE = "1"
+#
+# Interactive shell configuration
+#
+# Under certain circumstances the system may need input from you and to do this it
+# can launch an interactive shell. It needs to do this since the build is
+# multithreaded and needs to be able to handle the case where more than one parallel
+# process may require the user's attention. The default is iterate over the available
+# terminal types to find one that works.
+#
+# Examples of the occasions this may happen are when resolving patches which cannot
+# be applied, to use the devshell or the kernel menuconfig
+#
+# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
+# Note: currently, Konsole support only works for KDE 3.x due to the way
+# newer Konsole versions behave
+#OE_TERMINAL = "auto"
+# By default disable interactive patch resolution (tasks will just fail instead):
+PATCHRESOLVE = "noop"
+
+#
+# Disk Space Monitoring during the build
+#
+# Monitor the disk space during the build. If there is less that 1GB of space or less
+# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
+# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# of the build. The reason for this is that running completely out of space can corrupt
+# files and damages the build in ways which may not be easily recoverable.
+# It's necessary to monitor /tmp, if there is no space left the build will fail
+# with very exotic errors.
+BB_DISKMON_DIRS = "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+
+#
+# Shared-state files from other locations
+#
+# As mentioned above, shared state files are prebuilt cache data objects which can
+# used to accelerate build time. This variable can be used to configure the system
+# to search other mirror locations for these objects before it builds the data itself.
+#
+# This can be a filesystem directory, or a remote url such as http or ftp. These
+# would contain the sstate-cache results from previous builds (possibly from other
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# cache locations to check for the shared objects.
+# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
+# at the end as shown in the examples below. This will be substituted with the
+# correct path within the directory structure.
+#SSTATE_MIRRORS ?= "\
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* file:///some/local/dir/sstate/PATH"
+
+
+#
+# Qemu configuration
+#
+# By default qemu will build with a builtin VNC server where graphical output can be
+# seen. The two lines below enable the SDL backend too. This assumes there is a
+# libsdl library available on your build system.
+#PACKAGECONFIG_append_pn-qemu-native = " sdl"
+#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+#ASSUME_PROVIDED += "libsdl-native"
+
+
+# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
+# track the version of this file when it was generated. This can safely be ignored if
+# this doesn't mean anything to you.
+CONF_VERSION = "1"
+
+# Set the root password to '0penBmc'
+INHERIT += "extrausers"
+
+EXTRA_USERS_PARAMS = " \
+ usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \
+ "
diff --git a/meta-rcs/meta-talos/conf/machine/talos.conf b/meta-rcs/meta-talos/conf/machine/talos.conf
new file mode 100644
index 000000000..352dea78e
--- /dev/null
+++ b/meta-rcs/meta-talos/conf/machine/talos.conf
@@ -0,0 +1,40 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+UBOOT_MACHINE = "ast_g5_ncsi_config"
+
+OBMC_MACHINE_FEATURES += "obmc-mrw"
+
+OBMC_POWER_SUPPLY_INSTANCES = "0 1"
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/rcs.inc
+require conf/machine/include/p9.inc
+
+PHOSPHOR_MRW_URI = "git://scm.raptorcs.com/scm/git/talos-xml;protocol=https"
+PHOSPHOR_MRW_REV = "572148010e4bf8dbf9c3578bd5c1ca17d13cee73"
+
+# Inhibit phosphor-hwmon-config-mrw
+VIRTUAL-RUNTIME_phosphor-hwmon-config = ""
+
+# Inhibit phosphor-fan-presence-mrw-native
+PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config = \
+ "phosphor-fan-presence-config-native"
+
+# Inhibit phosphor-fan-control-fan-config-mrw-native
+PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config = \
+ "phosphor-fan-control-fan-config-native"
+
+DISTRO_FEATURES_append = "\
+ obmc-openpower \
+ obmc-openpower-extra \
+ obmc-openpower-legacy \
+ "
+MACHINE_EXTRA_RDEPENDS += "obmc-ipl-status-led-monitor obmc-hardbeep"
+
+# For kernel debug
+# MACHINE_EXTRA_RDEPENDS += " kernel-modules"
+
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "talos-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "talos-led-manager-config-native"
diff --git a/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc/talos.cfg b/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc/talos.cfg
new file mode 100644
index 000000000..8182c7a23
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc/talos.cfg
@@ -0,0 +1,21 @@
+CONFIG_HWMON=y
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_MAX31785=y
+CONFIG_SENSORS_W83773G=y
+CONFIG_RTC_DRV_RV8803=y
+
+CONFIG_GPIOLIB=y
+CONFIG_PWM=y
+CONFIG_PWM_GPIO=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PWM=y
+
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_8250=y
+CONFIG_DEBUG_UART_PHYS=0x1e784000
+CONFIG_DEBUG_UART_VIRT=0xe8784000
+CONFIG_EARLY_PRINTK=y
+
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+CONFIG_HIGH_RES_TIMERS=y
diff --git a/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc_%.bbappend b/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc_%.bbappend
new file mode 100644
index 000000000..8ebf9d442
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-kernel/linux/linux-obmc_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-obmc:"
+SRC_URI += "file://talos.cfg"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb
new file mode 100644
index 000000000..e74682dba
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Talos II AVSBus control"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools bash"
+
+S = "${WORKDIR}"
+SRC_URI += "file://avsbus-workaround.sh \
+ file://avsbus-enable.sh \
+ file://avsbus-disable.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/avsbus-workaround.sh \
+ ${D}${bindir}/avsbus-workaround.sh
+ install -m 0755 ${WORKDIR}/avsbus-disable.sh \
+ ${D}${bindir}/avsbus-disable.sh
+ install -m 0755 ${WORKDIR}/avsbus-enable.sh \
+ ${D}${bindir}/avsbus-enable.sh
+}
+
+TMPL_EN= "avsbus-enable@.service"
+TMPL_DIS= "avsbus-disable@.service"
+TMPL_WA= "avsbus-workaround@.service"
+INSTFMT_EN= "avsbus-enable@{0}.service"
+INSTFMT_DIS= "avsbus-disable@{0}.service"
+INSTFMT_WA= "avsbus-workaround@{0}.service"
+TGTFMT = "obmc-chassis-poweron@{0}.target"
+FMT_EN = "../${TMPL_EN}:${TGTFMT}.requires/${INSTFMT_EN}"
+FMT_DIS = "../${TMPL_DIS}:${TGTFMT}.requires/${INSTFMT_DIS}"
+FMT_WA = "../${TMPL_WA}:${TGTFMT}.requires/${INSTFMT_WA}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL_EN}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_EN', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_DIS}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_WA}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_WA', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
new file mode 100644
index 000000000..7ee4dfcd1
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# Get CPU count
+CPU_COUNT=1
+STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 ))
+if [ $CPU_PRESENT_FLAG_N != 0 ]; then
+ CPU_COUNT=$(( ${CPU_COUNT} + 1 ))
+fi
+echo "Found $CPU_COUNT CPU(s)"
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x73 0x01 0x80 b # VDN 0
+
+if [ $CPU_COUNT -gt 1 ]; then
+ i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+ i2cset -y 5 0x70 0x01 0x80 b # VDD 1
+ i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+ i2cset -y 5 0x70 0x01 0x80 b # VCS 1
+ i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+ i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set
+ i2cset -y 5 0x73 0x01 0x80 b # VDN 1
+fi
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
new file mode 100644
index 000000000..424aa2394
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Disable the AVS bus on the VRMs
+Wants=avsbus-workaround@%i.service
+After=avsbus-workaround@%i.service
+Before=vrm-control@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-disable.sh
+SyslogIdentifier=avsbus-disable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
new file mode 100644
index 000000000..2621c9e24
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# Get CPU count
+CPU_COUNT=1
+STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 ))
+if [ $CPU_PRESENT_FLAG_N != 0 ]; then
+ CPU_COUNT=$(( ${CPU_COUNT} + 1 ))
+fi
+echo "Found $CPU_COUNT CPU(s)"
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x01 0xB0 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x01 0xB0 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x73 0x01 0xB0 b # VDN 0
+
+if [ $CPU_COUNT -gt 1 ]; then
+ i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+ i2cset -y 5 0x70 0x01 0xB0 b # VDD 1
+ i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+ i2cset -y 5 0x70 0x01 0xB0 b # VCS 1
+ i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+ i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set
+ i2cset -y 5 0x73 0x01 0xB0 b # VDN 1
+fi
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
new file mode 100644
index 000000000..4b0b19e8b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Enable the AVS bus on VRMs
+Wants=vrm-control@%i.service
+After=vrm-control@%i.service
+Wants=obmc-power-start@%i.target
+Before=obmc-power-start@%i.target
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-enable.sh
+SyslogIdentifier=avsbus-enable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
new file mode 100644
index 000000000..882f1637c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# Get CPU count
+CPU_COUNT=1
+STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 ))
+if [ $CPU_PRESENT_FLAG_N != 0 ]; then
+ CPU_COUNT=$(( ${CPU_COUNT} + 1 ))
+fi
+echo "Found $CPU_COUNT CPU(s)"
+
+i2cset -y 4 0x28 0x2E 0x23 b # VDD/VCS 0
+i2cset -y 4 0x2B 0x2E 0x23 b # VDN 0
+if [ $CPU_COUNT -gt 1 ]; then
+ i2cset -y 5 0x28 0x2E 0x23 b # VDD/VCS 1
+ i2cset -y 5 0x2B 0x2E 0x23 b # VDN 1
+fi
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
new file mode 100644
index 000000000..e7e00c046
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Perform AVS bus workaround on VRMs
+Wants=op-power-start@.service
+After=op-power-start@.service
+Wants=op-wait-power-on@%i.service
+After=op-wait-power-on@%i.service
+Before=avsbus-disable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-workaround.sh
+SyslogIdentifier=avsbus-workaround.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb
new file mode 100644
index 000000000..e2eb9f3b9
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Talos II VRM Overrides"
+DESCRIPTION = "Sets Talos II VRMs to custom voltages"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools bash"
+
+S = "${WORKDIR}"
+SRC_URI += "file://vrm-control.sh \
+ file://vrm.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/vrm.sh ${D}${bindir}/vrm.sh
+ install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh
+}
+
+TMPL = "vrm-control@.service"
+INSTFMT = "vrm-control@{0}.service"
+TGTFMT = "obmc-chassis-poweron@{0}.target"
+FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh
new file mode 100644
index 000000000..be23d4691
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -0,0 +1,137 @@
+#!/bin/bash
+# #########################################################
+# Script to run on Talos II BMC to read/set vrm voltages
+
+
+# #########################################################
+d2v () {
+# usage: d2v <decimal volts>
+
+echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
+}
+
+
+# #########################################################
+v2d () {
+# usage: v2d <hex val>
+
+printf " %0.3fV" `echo $1 | awk '{print $1 / 256}'`
+}
+
+
+# #########################################################
+i2d () {
+# usage: i2d <hex val> <current divisor>
+
+# parse current mantisa and exponent
+# format: SEEE ESMM MMMM MMMM
+let e=$1/0x800
+let esign=e/0x10
+let m=$1\&0x07FF
+let msign=m/0x0400
+
+if [ $msign -eq 1 ]
+then
+ # calc ones compliment
+ let m=($m^0x07FF)+1
+ m="-$m"
+fi
+if [ $esign -eq 1 ]
+then
+ # calc ones compliment
+ let e=(e^0x1F)+1
+ e="-$e"
+fi
+printf " %0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2) / $3}'`
+}
+
+
+# #########################################################
+rw_vc () {
+# usage: rw_vc <bus> <addr> <current divisor> <channel> <value>
+
+# select channel
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 $4 b
+fi
+
+# write new voltage set point
+if [ ! -e $5 ]
+then
+ i2cset -y $1 $2 0x21 `d2v $5` w
+fi
+
+# print voltage set point
+v2d `i2cget -y $1 $2 0x21 w`
+
+# print voltage
+v2d `i2cget -y $1 $2 0x8B w`
+
+# print current
+i2d `i2cget -y $1 $2 0x8C w` $3
+
+# default back to channel 0
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 0 b
+fi
+}
+
+
+# #########################################################
+# Main
+
+if [ -e $1 ]
+then
+ $0 vdda vcsa vdna vioa vddb vcsb vdnb viob
+ exit
+fi
+
+if [ $1 == "-h" ]
+then
+ echo " Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
+ echo " rail: vdda vcsa vdna vioa vddb vcsb vdnb viob"
+ echo " value: volts"
+ echo
+ echo " e.g., vrm vioa=1.0 viob=1.0"
+ echo
+ exit
+fi
+
+echo "rail set read current"
+echo "------- ------- ------- -------"
+for param in ${@:1}
+do
+ rail=`echo $param | cut -d'=' -f 1`
+ val=`echo ${param}= | cut -d'=' -f 2`
+ echo -n "$rail"
+ case "$rail" in
+ vdda)
+ rw_vc 4 0x70 2 0 $val
+ ;;
+ vddb)
+ rw_vc 5 0x70 2 0 $val
+ ;;
+ vcsa)
+ rw_vc 4 0x70 4 1 $val
+ ;;
+ vcsb)
+ rw_vc 5 0x70 4 1 $val
+ ;;
+ vdna)
+ rw_vc 4 0x73 2 0 $val
+ ;;
+ vdnb)
+ rw_vc 5 0x73 2 0 $val
+ ;;
+ vioa)
+ rw_vc 4 0x73 2 1 $val
+ ;;
+ viob)
+ rw_vc 5 0x73 2 1 $val
+ ;;
+ *)
+ echo " non-existant"
+ esac
+done
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service
new file mode 100644
index 000000000..5d072ad5f
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm-control@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Apply voltage overrides to VRMs
+Wants=avsbus-disable@%i.service
+After=avsbus-disable@%i.service
+Before=avsbus-enable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+
+[Service]
+ExecStart=/usr/bin/env vrm.sh
+SyslogIdentifier=vrm.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh
new file mode 100644
index 000000000..86d5f1dd6
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/chassis/vrm-control/vrm.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Get CPU count
+CPU_COUNT=1
+STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+if [ $? != 0 ]; then
+ STATUS_FLAGS=$(i2cget -y 12 0x31 0x7)
+fi
+CPU_PRESENT_FLAG_N=$(( ${STATUS_FLAGS} & 0x20 ))
+if [ $CPU_PRESENT_FLAG_N != 0 ]; then
+ CPU_COUNT=$(( ${CPU_COUNT} + 1 ))
+fi
+echo "Found $CPU_COUNT CPU(s)"
+
+if [ $CPU_COUNT -gt 1 ]; then
+ vrm-control.sh vdna=1.0 vdnb=1.0
+else
+ vrm-control.sh vdna=1.0
+fi
diff --git a/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console.bbappend b/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console.bbappend
new file mode 100644
index 000000000..5acf3af89
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_talos := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 000000000..a5ba3f328
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,4 @@
+lpc-address = 0x3f8
+sirq = 4
+local-tty = ttyS0
+local-tty-baud = 115200
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%.bbappend
new file mode 100644
index 000000000..76aad1558
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%.bbappend
@@ -0,0 +1,33 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+
+# Package configuration
+FAN_PACKAGES += " \
+ phosphor-cooling-type \
+"
+
+PACKAGECONFIG += "cooling-type"
+
+RDEPENDS_phosphor-cooling-type += "libevdev"
+
+TMPL_COOLING = "phosphor-cooling-type@.service"
+INSTFMT_COOLING = "phosphor-cooling-type@{0}.service"
+COOLING_TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}"
+
+FILES_phosphor-cooling-type = "${sbindir}/phosphor-cooling-type"
+SYSTEMD_SERVICE_phosphor-cooling-type += "${TMPL_COOLING}"
+SYSTEMD_LINK_phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}"
+
+COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf"
+
+SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type += "${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}"
+
+#These services are protected by the watchdog
+SYSTEMD_OVERRIDE_phosphor-fan-control-init += "fan-watchdog-monitor.conf:phosphor-fan-control-init@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-control += "fan-watchdog-monitor.conf:phosphor-fan-control@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor-init += "fan-watchdog-monitor.conf:phosphor-fan-monitor-init@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor += "fan-watchdog-monitor.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-monitor.conf"
+
+#These services need to be stopped when watchdog expires
+SYSTEMD_OVERRIDE_phosphor-fan-control += "fan-watchdog-conflicts.conf:phosphor-fan-control@0.service.d/fan-watchdog-conflicts.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor += "fan-watchdog-conflicts.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-conflicts.conf"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf
new file mode 100644
index 000000000..90b1e810e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf
@@ -0,0 +1,2 @@
+[Unit]
+Conflicts=obmc-fan-watchdog-takeover.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf
new file mode 100644
index 000000000..240336343
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf
@@ -0,0 +1,5 @@
+[Unit]
+#These overrides allow the fan watchdog to take over when this service dies
+OnFailure=talos-fan-watchdog-monitor@%n.service
+StartLimitIntervalSec=5
+StartLimitBurst=3
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf
new file mode 100644
index 000000000..6b74301d1
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf
@@ -0,0 +1,6 @@
+OBJPATH="--path=/system/chassis"
+AIR="--air"
+WATER=""
+DEVICE=""
+CODE=""
+
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service
new file mode 100644
index 000000000..9a4f8df42
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor Cooling Type
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+ConditionPathExists={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+
+[Service]
+EnvironmentFile={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+ExecStart=/usr/bin/env phosphor-cooling-type ${{OBJPATH}} ${{AIR}} ${{WATER}} ${{DEVICE}} ${{CODE}}
+SyslogIdentifier=phosphor-cooling-type
+
+[Install]
+RequiredBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
new file mode 100644
index 000000000..7efc2fefa
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -0,0 +1,751 @@
+groups:
+ - name: air_cooled_zone0_fans
+ description: Group of fan inventory objects for air cooled zone 0
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan4
+ - name: water_and_air_cooled_zone0_fans
+ description: Group of fan inventory objects for water/air cooled zone 0
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan4
+ - name: air_cooled_zone1_fans
+ description: Group of fan inventory objects for air cooled zone 1
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan5
+ - name: air_cooled_zone2_fans
+ description: Group of fan inventory objects for air cooled zone 2
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan0
+ - /system/chassis/motherboard/fan1
+ - /system/chassis/motherboard/fan2
+ - /system/chassis/motherboard/fan3
+ - name: water_and_air_cooled_zone2_fans
+ description: Group of fan inventory objects for water/air cooled zone 2
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan0
+ - name: zone2_ambient
+ description: Group of ambient temperature sensors for zone 2
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/ambient
+ - /temperature/cpu_1_ambient
+ - /temperature/pcie
+ - name: occ0_object
+ description: Dbus object containing OCC0 properties
+ type: /org/open_power/control
+ members:
+ - /occ0
+ - name: occ1_object
+ description: Dbus object containing OCC1 properties
+ type: /org/open_power/control
+ members:
+ - /occ1
+ - name: zone0_cores
+ description: Group of core temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p0_core0_temp
+ - /temperature/p0_core1_temp
+ - /temperature/p0_core2_temp
+ - /temperature/p0_core3_temp
+ - /temperature/p0_core4_temp
+ - /temperature/p0_core5_temp
+ - /temperature/p0_core6_temp
+ - /temperature/p0_core7_temp
+ - /temperature/p0_core8_temp
+ - /temperature/p0_core9_temp
+ - /temperature/p0_core10_temp
+ - /temperature/p0_core11_temp
+ - /temperature/p0_core12_temp
+ - /temperature/p0_core13_temp
+ - /temperature/p0_core14_temp
+ - /temperature/p0_core15_temp
+ - /temperature/p0_core16_temp
+ - /temperature/p0_core17_temp
+ - /temperature/p0_core18_temp
+ - /temperature/p0_core19_temp
+ - /temperature/p0_core20_temp
+ - /temperature/p0_core21_temp
+ - /temperature/p0_core22_temp
+ - /temperature/p0_core23_temp
+ - name: zone1_cores
+ description: Group of core temperature sensors for zone 1
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p1_core0_temp
+ - /temperature/p1_core1_temp
+ - /temperature/p1_core2_temp
+ - /temperature/p1_core3_temp
+ - /temperature/p1_core4_temp
+ - /temperature/p1_core5_temp
+ - /temperature/p1_core6_temp
+ - /temperature/p1_core7_temp
+ - /temperature/p1_core8_temp
+ - /temperature/p1_core9_temp
+ - /temperature/p1_core10_temp
+ - /temperature/p1_core11_temp
+ - /temperature/p1_core12_temp
+ - /temperature/p1_core13_temp
+ - /temperature/p1_core14_temp
+ - /temperature/p1_core15_temp
+ - /temperature/p1_core16_temp
+ - /temperature/p1_core17_temp
+ - /temperature/p1_core18_temp
+ - /temperature/p1_core19_temp
+ - /temperature/p1_core20_temp
+ - /temperature/p1_core21_temp
+ - /temperature/p1_core22_temp
+ - /temperature/p1_core23_temp
+ - name: zone0_regulators
+ description: Group of regulator temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p0_vdd_temp
+ - name: zone1_regulators
+ description: Group of regulator temperature sensors for zone 1
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p1_vdd_temp
+ - name: zone0_dimms
+ description: Group of dimm temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/dimm0_temp
+ - /temperature/dimm1_temp
+ - /temperature/dimm2_temp
+ - /temperature/dimm3_temp
+ - /temperature/dimm4_temp
+ - /temperature/dimm5_temp
+ - /temperature/dimm6_temp
+ - /temperature/dimm7_temp
+ - name: zone1_dimms
+ description: Group of dimm temperature sensors for zone 1
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/dimm8_temp
+ - /temperature/dimm9_temp
+ - /temperature/dimm10_temp
+ - /temperature/dimm11_temp
+ - /temperature/dimm12_temp
+ - /temperature/dimm13_temp
+ - /temperature/dimm14_temp
+ - /temperature/dimm15_temp
+ - name: zone0_pcie
+ description: Group of pcie temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/pcie
+
+matches:
+ - name: propertiesChanged
+ description: >
+ A property changed match
+ parameters:
+ - object
+ - interface
+ signal: propertySignal
+ - name: interfacesAdded
+ description: >
+ An interfaces added match
+ parameters:
+ - object
+ signal: objectSignal
+ - name: interfacesRemoved
+ description: >
+ An interfaces removed match
+ parameters:
+ - object
+ signal: objectSignal
+ - name: nameOwnerChanged
+ description: >
+ A name owner changed match
+ parameters:
+ - object
+ - interface
+ signal: ownerSignal
+
+signals:
+ - name: propertySignal
+ description: >
+ Handle property signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: objectSignal
+ description: >
+ Handle object signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: ownerSignal
+ description: >
+ Handle owner signals
+ parameters:
+ - object
+ - interface
+ handler: setService
+
+handlers:
+ - name: setProperty
+ description: >
+ Sets a value for the given object/interface/property
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ - name: setService
+ description: >
+ Sets the service name(s) for the given group
+ parameters:
+ - group
+
+preconditions:
+ - name: property_states_match
+ description: >
+ All defined properties must match the values given to
+ enable a set speed event otherwise fan speeds are set to full
+ parameters:
+ - groups
+
+actions:
+ - name: call_actions_based_on_timer
+ description: >
+ Sets up a list of actions to be invoked when the defined timer
+ expires (or for each expiration of a repeating timer)
+ parameters:
+ - timer
+ - actions
+ - name: default_floor_on_missing_owner
+ description: >
+ Set the fan floor to the default floor
+ - name: set_speed_on_missing_owner
+ description: >
+ Set fans to the given speed when any service within the group
+ no longer exists
+ parameters:
+ - speed
+ - name: set_request_speed_base_with_max
+ description: >
+ Set the base request speed of a zone to the max value of a group for
+ calculating a new target speed
+ - name: count_state_before_speed
+ description: Set the speed when a number of properties at a state
+ parameters:
+ - count
+ - property
+ - speed
+ - name: set_floor_from_average_sensor_value
+ description: Set floor speed from first entry with average less than key
+ parameters:
+ - map
+ - name: set_ceiling_from_average_sensor_value
+ description: Set ceiling speed based on key transition values with average
+ parameters:
+ - map
+ - name: set_net_increase_speed
+ description: >
+ Set the speed increase delta based on a factor applied to
+ the delta increase size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+ - name: set_net_decrease_speed
+ description: >
+ Set the speed decrease delta based on a factor applied to
+ the delta decrease size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+ - name: run_pid_control
+ description: >
+ Runs PID control trying to keep value at property
+ parameters:
+ - property
+ - integrator_timestep
+ - kp
+ - ki
+ - kd
+
+events:
+ - name: default_fan_floor_on_service_fail
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: zone2_ambient
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: default_floor_on_missing_owner
+ - name: missing_before_high_speed_air_zone0
+ groups:
+ - name: air_cooled_zone0_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: missing_before_high_speed_air_zone1
+ groups:
+ - name: air_cooled_zone1_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 1
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: fails_before_high_speed_air_zone0
+ groups:
+ - name: air_cooled_zone0_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: fails_before_high_speed_air_zone1
+ groups:
+ - name: air_cooled_zone1_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 1
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: missing_before_high_speed_water_and_air_zone0
+ groups:
+ - name: water_and_air_cooled_zone0_fans
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: fails_before_high_speed_water_and_air_zone0
+ groups:
+ - name: water_and_air_cooled_zone0_fans
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 1000
+ type: uint64_t
+ - name: set_air_cooled_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone2_ambient
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 2
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: set_floor_from_average_sensor_value
+ map:
+ value:
+ - 22000: 100
+ type: std::map<int64_t, uint64_t>
+ - name: set_ceiling_from_average_sensor_value
+ map:
+ value:
+ - 27000: 1000
+ type: std::map<int64_t, uint64_t>
+ - name: set_water_cooled_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone2_ambient
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 2
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: set_floor_from_average_sensor_value
+ map:
+ value:
+ - 22000: 250
+ type: std::map<int64_t, uint64_t>
+ - name: set_ceiling_from_average_sensor_value
+ map:
+ value:
+ - 27000: 1000
+ type: std::map<int64_t, uint64_t>
+ - name: speed_changes_based_on_regulator_temps
+ groups:
+ - name: zone0_regulators
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 85000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: occ_active_speed_changes_zone0
+ precondition:
+ name: property_states_match
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ events:
+ - name: speed_changes_based_on_core_temps_zone0
+ groups:
+ - name: zone0_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: run_pid_control
+ property:
+ value: 63000
+ type: int64_t
+ integrator_timestep:
+ value: 1
+ type: int64_t
+ kp:
+ value: 3500
+ type: int64_t
+ ki:
+ value: 100
+ type: int64_t
+ kd:
+ value: 0
+ type: int64_t
+ # Ensure PID values are always translated out to hardware
+ # This do-nothing "speed increase" is always called on every loop invocation
+ - name: set_net_increase_speed
+ property:
+ value: 0
+ type: int64_t
+ factor:
+ value: 0
+ type: int64_t
+ delta:
+ value: 0
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_dimm_temps_zone0
+ groups:
+ - name: zone0_dimms
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 64000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 4
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: occ_active_speed_changes_zone1
+ precondition:
+ name: property_states_match
+ groups:
+ - name: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ events:
+ - name: speed_changes_based_on_core_temps_zone1
+ groups:
+ - name: zone1_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 1
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: run_pid_control
+ property:
+ value: 63001
+ type: int64_t
+ integrator_timestep:
+ value: 1
+ type: int64_t
+ kp:
+ value: 3500
+ type: int64_t
+ ki:
+ value: 100
+ type: int64_t
+ kd:
+ value: 0
+ type: int64_t
+ # Ensure PID values are always translated out to hardware
+ # This do-nothing "speed increase" is always called on every loop invocation
+ - name: set_net_increase_speed
+ property:
+ value: 0
+ type: int64_t
+ factor:
+ value: 0
+ type: int64_t
+ delta:
+ value: 0
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_dimm_temps_zone1
+ groups:
+ - name: zone1_dimms
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 1
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 2
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 64000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: occ_active_speed_changes_zone2
+ precondition:
+ name: property_states_match
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ events:
+ - name: speed_changes_based_on_ambient_temp
+ groups:
+ - name: zone2_ambient
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 2
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 2
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: run_pid_control
+ property:
+ value: 42000
+ type: int64_t
+ integrator_timestep:
+ value: 1
+ type: int64_t
+ kp:
+ value: 2500
+ type: int64_t
+ ki:
+ value: 50
+ type: int64_t
+ kd:
+ value: 0
+ type: int64_t
+ # Ensure PID values are always translated out to hardware
+ # This do-nothing "speed increase" is always called on every loop invocation
+ - name: set_net_increase_speed
+ property:
+ value: 0
+ type: int64_t
+ factor:
+ value: 0
+ type: int64_t
+ delta:
+ value: 0
+ type: uint64_t
+ timer:
+ interval: 5
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml
new file mode 100755
index 000000000..5bda3ccdb
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml
@@ -0,0 +1,31 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan4
+ cooling_zone: 0
+ cooling_profile: all
+ sensors:
+ - fan4
+ - inventory: /system/chassis/motherboard/fan5
+ cooling_zone: 1
+ cooling_profile: air
+ sensors:
+ - fan5
+ - inventory: /system/chassis/motherboard/fan0
+ cooling_zone: 2
+ cooling_profile: all
+ sensors:
+ - fan0
+ - inventory: /system/chassis/motherboard/fan1
+ cooling_zone: 2
+ cooling_profile: air
+ sensors:
+ - fan1
+ - inventory: /system/chassis/motherboard/fan2
+ cooling_zone: 2
+ cooling_profile: air
+ sensors:
+ - fan2
+ - inventory: /system/chassis/motherboard/fan3
+ cooling_zone: 2
+ cooling_profile: air
+ sensors:
+ - fan3
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
new file mode 100644
index 000000000..244b6b16b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
@@ -0,0 +1,27 @@
+conditions:
+ - name: air_cooled_chassis
+ type: getProperty
+ properties:
+ - property: WaterCooled
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ path: /xyz/openbmc_project/inventory/system/chassis
+ type: bool
+ value: false
+
+ - name: water_and_air_cooled_chassis
+ type: getProperty
+ properties:
+ - property: WaterCooled
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ path: /xyz/openbmc_project/inventory/system/chassis
+ type: bool
+ value: true
+
+ - name: second_cpu_controlled
+ type: getProperty
+ properties:
+ - property: OccActive
+ interface: org.open_power.OCC.Status
+ path: /org/open_power/control/occ1
+ type: bool
+ value: true \ No newline at end of file
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
new file mode 100644
index 000000000..6d4804d12
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
new file mode 100644
index 000000000..588fed35c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
@@ -0,0 +1,56 @@
+manager_configuration:
+ power_on_delay: 5
+
+zone_configuration:
+
+#Air cooled zones
+- zone_conditions:
+ - name: air_cooled_chassis
+
+ zones:
+ - zone: 0
+ cooling_profiles:
+ - air
+ - all
+ full_speed: 1000
+ default_floor: 100
+ increase_delay: 5
+ decrease_interval: 5
+ - zone: 1
+ cooling_profiles:
+ - air
+ - all
+ full_speed: 1000
+ default_floor: 100
+ increase_delay: 5
+ decrease_interval: 5
+ - zone: 2
+ cooling_profiles:
+ - air
+ - all
+ full_speed: 1000
+ default_floor: 100
+ increase_delay: 5
+ decrease_interval: 5
+
+#Water cooled zones
+- zone_conditions:
+ - name: water_and_air_cooled_chassis
+
+ zones:
+ - zone: 0
+ cooling_profiles:
+ - water
+ - all
+ full_speed: 1000
+ default_floor: 100
+ increase_delay: 5
+ decrease_interval: 5
+ - zone: 2
+ cooling_profiles:
+ - water
+ - all
+ full_speed: 1000
+ default_floor: 100
+ increase_delay: 5
+ decrease_interval: 5
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
new file mode 100644
index 000000000..1778bf2a1
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
@@ -0,0 +1,64 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan0
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan0
+ has_target: true
+
+ - inventory: /system/chassis/motherboard/fan1
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan1
+ has_target: true
+
+ - inventory: /system/chassis/motherboard/fan2
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan2
+ has_target: true
+
+ - inventory: /system/chassis/motherboard/fan3
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan3
+ has_target: true
+
+ - inventory: /system/chassis/motherboard/fan4
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan4
+ has_target: true
+
+ - inventory: /system/chassis/motherboard/fan5
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: -500
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan5
+ has_target: true
+
+sensor_trust_groups:
+ - class: NonzeroSpeed
+ group:
+ - name: fan0
+ - name: fan1
+ - name: fan2
+ - name: fan3
+ - name: fan4
+ - name: fan5
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml
new file mode 100644
index 000000000..1e67ce56d
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml
@@ -0,0 +1,53 @@
+- name: fan0
+ path: /system/chassis/motherboard/fan0
+ methods:
+ - type: tach
+ sensors:
+ - fan0
+ rpolicy:
+ type: anyof
+
+- name: fan1
+ path: /system/chassis/motherboard/fan1
+ methods:
+ - type: tach
+ sensors:
+ - fan1
+ rpolicy:
+ type: anyof
+
+- name: fan2
+ path: /system/chassis/motherboard/fan2
+ methods:
+ - type: tach
+ sensors:
+ - fan2
+ rpolicy:
+ type: anyof
+
+- name: fan3
+ path: /system/chassis/motherboard/fan3
+ methods:
+ - type: tach
+ sensors:
+ - fan3
+ rpolicy:
+ type: anyof
+
+- name: fan4
+ path: /system/chassis/motherboard/fan4
+ methods:
+ - type: tach
+ sensors:
+ - fan4
+ rpolicy:
+ type: anyof
+
+- name: fan5
+ path: /system/chassis/motherboard/fan5
+ methods:
+ - type: tach
+ sensors:
+ - fan5
+ rpolicy:
+ type: anyof
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy-native.bb b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy-native.bb
new file mode 100644
index 000000000..df6848d3c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy-native.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Fan policy for Talos"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-dbus-monitor
+
+SRC_URI += "file://air-cooled.yaml"
+SRC_URI += "file://water-cooled.yaml"
+SRC_URI += "file://fan-errors.yaml"
+
+do_install() {
+ install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml
+ install -D ${WORKDIR}/water-cooled.yaml ${D}${config_dir}/water-cooled.yaml
+ install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml
+}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/air-cooled.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/air-cooled.yaml
new file mode 100644
index 000000000..f98b3d8fe
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/air-cooled.yaml
@@ -0,0 +1,241 @@
+# Air cooled Talos fan policy for PDM.
+#
+# An air cooled Talos requires a minimum of one functional fan.
+# If the number of functional fans drops below that
+# power the system off.
+
+- name: fans
+ description: >
+ 'An air cooled Talos has six fans to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
+
+- name: chassis state
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis air cooled
+ description: >
+ 'Monitor the chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: watch fan present
+ description: >
+ 'Trigger logic on fan presence state changes.'
+ class: watch
+ watch: property
+ paths: fans
+ properties: fan present
+ callback: check cooling type
+
+- name: watch fan functional
+ description: >
+ 'Trigger logic on fan functional state changes.'
+ class: watch
+ watch: property
+ paths: fans
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check cooling type
+
+- name: watch cooling type
+ description: >
+ 'Maintain a cache of the chassis cooling type.'
+ class: watch
+ watch: property
+ paths: chassis
+ properties: chassis air cooled
+
+- name: check cooling type
+ description: >
+ 'If this condition passes the chassis is air cooled.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: check power
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check power
+ description: >
+ 'If the chassis has power, check fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify there are at least three functional fans, power off if not.'
+ class: callback
+ callback: group
+ members:
+ - check group presence
+ - check group functional
+
+- name: check group presence
+ description: >
+ 'If this condition passes more than one fan has been unplugged
+ for more than 25 seconds. Shut the system down. Count present
+ fans rather than non-present fans since the latter would pass
+ if the fan has not been created for some reason.
+
+ For a more detailed definition of unplugged, consult the documentation
+ of xyz.openbmc_project.Inventory.Item and/or the documentation
+ of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fans
+ properties: fan present
+ defer: 25000000us
+ callback: log and shutdown
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check group functional
+ description: >
+ 'If this condition passes more than one fan in the group has been
+ marked as nonfunctional for five seconds. Shut the system down.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fans
+ properties: fan functional
+ defer: 5000000us
+ callback: log and shutdown
+ countop: '>'
+ countbound: 1
+ op: '=='
+ bound: false
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - log
+ - create shutdown error
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: log
+ description: >
+ 'Log a shutdown event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Shutting down system. There are not enough functional fans.
+
+- name: create shutdown error
+ description: >
+ 'Create a Fan Shutdown Error log.'
+ class: callback
+ callback: elog
+ paths: chassis state
+ properties: chassis powered
+ error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml
new file mode 100644
index 000000000..15e03872b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/fan-errors.yaml
@@ -0,0 +1,934 @@
+# Talos fan error policy for PDM.
+#
+# * Create a NotPresent error if fan 0, 1, 2, 3, 4, 5, or 6 is not present for more
+# than 20 seconds.
+# * Create a Nonfunctional error if fan 0, 1, 2, 3, 4, 5, or 6 is not
+# functional for any amount of time.
+#
+# The system must be powered on in both of these cases.
+# If a water cooled system, don't create errors for fans 1, 2, 3, 5, or 6.
+# Note: An error is created each time the chassis powers on.
+#
+# * Watch for fans to become functional, and then resolve their errors
+
+- name: fan0
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+
+- name: fan1
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+
+- name: fan2
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+
+- name: fan3
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+
+- name: fan4
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+
+- name: fan5
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
+
+- name: chassis state
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis air cooled
+ description: >
+ 'The chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: second cpu controlled
+ description: >
+ 'Whether or not the second CPU is installed and under thermal control.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: org.open_power.OCC.Status
+ path: /org/open_power/control/occ1
+ meta: SECOND_CPU_CONTROLLED
+ property: OccActive
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check power
+
+- name: watch fan0 presence
+ description: >
+ 'Trigger logic on fan0 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan present
+ callback: check power fan0 presence
+
+- name: watch fan0 functional
+ description: >
+ 'Trigger logic on fan0 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan functional
+ callback: check power fan0 functional
+
+- name: watch fan1 presence
+ description: >
+ 'Trigger logic on fan1 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan present
+ callback: check power fan1 presence
+
+- name: watch fan1 functional
+ description: >
+ 'Trigger logic on fan1 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan functional
+ callback: check power fan1 functional
+
+- name: watch fan2 presence
+ description: >
+ 'Trigger logic on fan2 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan present
+ callback: check power fan2 presence
+
+- name: watch fan2 functional
+ description: >
+ 'Trigger logic on fan2 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan functional
+ callback: check power fan2 functional
+
+- name: watch fan3 presence
+ description: >
+ 'Trigger logic on fan3 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan present
+ callback: check power fan3 presence
+
+- name: watch fan3 functional
+ description: >
+ 'Trigger logic on fan3 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan functional
+ callback: check power fan3 functional
+
+- name: watch fan4 presence
+ description: >
+ 'Trigger logic on fan4 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan4
+ properties: fan present
+ callback: check power fan4 presence
+
+- name: watch fan4 functional
+ description: >
+ 'Trigger logic on fan4 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan4
+ properties: fan functional
+ callback: check power fan4 functional
+
+- name: watch fan0 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan functional
+ callback: resolve fan0 errors if functional
+
+- name: watch fan1 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan functional
+ callback: resolve fan1 errors if functional
+
+- name: watch fan2 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan functional
+ callback: resolve fan2 errors if functional
+
+- name: watch fan3 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan functional
+ callback: resolve fan3 errors if functional
+
+- name: watch fan4 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan4
+ properties: fan functional
+ callback: resolve fan4 errors if functional
+
+- name: watch fan5 functional for resolving error logs
+ description: >
+ 'On fan functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan5
+ properties: fan functional
+ callback: resolve fan5 errors if functional
+
+- name: check power
+ description: >
+ 'If the chassis has power, check all fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan0 presence
+ description: >
+ 'If the chassis has power, check presence of fan0.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan0 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan0 functional
+ description: >
+ 'If the chassis has power, check functional of fan0.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan0 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan1 presence
+ description: >
+ 'If the chassis has power, check presence of fan1.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan1 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan1 functional
+ description: >
+ 'If the chassis has power, check functional of fan1.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan1 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan2 presence
+ description: >
+ 'If the chassis has power, check presence of fan2.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan2 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan2 functional
+ description: >
+ 'If the chassis has power, check functional of fan2.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan2 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan3 presence
+ description: >
+ 'If the chassis has power, check presence of fan3.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan3 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan3 functional
+ description: >
+ 'If the chassis has power, check functional of fan3.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan3 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan4 functional
+ description: >
+ 'If the chassis has power, check functional of fan4.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan4 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan5 functional
+ description: >
+ 'If the chassis has power, check functional of fan5.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan5 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify each of the 6 fans are present.'
+ class: callback
+ callback: group
+ members:
+ - check fan0 presence
+ - check fan1 presence
+ - check fan2 presence
+ - check fan3 presence
+ - check fan4 presence
+ - check fan5 presence
+ - check fan0 functional
+ - check fan1 functional
+ - check fan2 functional
+ - check fan3 functional
+ - check fan4 functional
+ - check fan5 functional
+
+- name: check fan0 presence
+ description: >
+ 'If this condition passes fan0 has been unplugged for more than 20 seconds.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan present
+ defer: 20000000us
+ callback: notpresent fan0 error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan0 functional
+ description: >
+ 'If this condition passes fan0 has been marked as nonfunctional.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan functional
+ callback: nonfunctional fan0 error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan1 presence
+ description: >
+ 'If this condition passes fan1 has been unplugged for more than 20 seconds.
+ Fan 1 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan present
+ defer: 20000000us
+ callback: check cooling type notpresent error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan1 functional
+ description: >
+ 'If this condition passes fan1 has been marked as nonfunctional.
+ Fan 1 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan functional
+ callback: check cooling type nonfunctional error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan2 presence
+ description: >
+ 'If this condition passes fan2 has been unplugged for more than 20 seconds.
+ Fan 2 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan present
+ defer: 20000000us
+ callback: check cooling type notpresent error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan2 functional
+ description: >
+ 'If this condition passes fan2 has been marked as nonfunctional.
+ Fan 2 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan functional
+ callback: check cooling type nonfunctional error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan3 presence
+ description: >
+ 'If this condition passes fan3 has been unplugged for more than 20 seconds.
+ Fan 3 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan present
+ defer: 20000000us
+ callback: check cooling type notpresent error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan3 functional
+ description: >
+ 'If this condition passes fan3 has been marked as nonfunctional.
+ Fan 3 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan functional
+ callback: check cooling type nonfunctional error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan4 presence
+ description: >
+ 'If this condition passes fan4 has been unplugged for more than 20 seconds.'
+ class: condition
+ condition: count
+ paths: fan4
+ properties: fan present
+ defer: 20000000us
+ callback: notpresent fan4 error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan4 functional
+ description: >
+ 'If this condition passes fan4 has been marked as nonfunctional.'
+ class: condition
+ condition: count
+ paths: fan4
+ properties: fan functional
+ callback: nonfunctional fan4 error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan5 presence
+ description: >
+ 'If this condition passes fan5 has been unplugged for more than 20 seconds.
+ Fan 5 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan5
+ properties: fan present
+ defer: 20000000us
+ callback: check second cpu controlled notpresent error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan5 functional
+ description: >
+ 'If this condition passes fan5 has been marked as nonfunctional.
+ Fan 5 is not in a water cooled Talos, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan5
+ properties: fan functional
+ callback: check second cpu controlled nonfunctional error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check cooling type nonfunctional error
+ description: >
+ 'If this condition passes the chassis is air cooled and will create a
+ nonfunctional error for fans 1, 2, 3, 5, and 6.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: nonfunctional fan1 error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check cooling type notpresent error
+ description: >
+ 'If this condition passes the chassis is air cooled and will create a
+ notpresent error for fans 1, 2, 3, 5, and 6.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: notpresent fan1 error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check second cpu controlled nonfunctional error
+ description: >
+ 'If this condition passes the second CPU is controlled and will create a
+ nonfunctional error for fan 6 in air cooled mode.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: second cpu controlled
+ callback: check cooling type nonfunctional error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check second cpu controlled notpresent error
+ description: >
+ 'If this condition passes the second CPU is controlled and will create a
+ notpresent error for fan 6 in air cooled mode.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: second cpu controlled
+ callback: check cooling type notpresent error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: notpresent fan0 error
+ class: callback
+ callback: elog
+ paths: fan0
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ type: string
+
+- name: nonfunctional fan0 error
+ class: callback
+ callback: elog
+ paths: fan0
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ type: string
+
+- name: notpresent fan1 error
+ class: callback
+ callback: elog
+ paths: fan1
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ type: string
+
+- name: nonfunctional fan1 error
+ class: callback
+ callback: elog
+ paths: fan1
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ type: string
+
+- name: notpresent fan2 error
+ class: callback
+ callback: elog
+ paths: fan2
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ type: string
+
+- name: nonfunctional fan2 error
+ class: callback
+ callback: elog
+ paths: fan2
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ type: string
+
+- name: notpresent fan3 error
+ class: callback
+ callback: elog
+ paths: fan3
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+ type: string
+
+- name: nonfunctional fan3 error
+ class: callback
+ callback: elog
+ paths: fan3
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+ type: string
+
+- name: notpresent fan4 error
+ class: callback
+ callback: elog
+ paths: fan4
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+ type: string
+
+- name: nonfunctional fan4 error
+ class: callback
+ callback: elog
+ paths: fan4
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+ type: string
+
+- name: notpresent fan5 error
+ class: callback
+ callback: elog
+ paths: fan5
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
+ type: string
+
+- name: nonfunctional fan5 error
+ class: callback
+ callback: elog
+ paths: fan5
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
+ type: string
+
+- name: resolve fan0 errors if functional
+ description: >
+ 'If fan0 is functional, call the resolve fan0 errors callback.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan functional
+ callback: resolve fan0 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+#Go ahead and do this on water cooled as well
+- name: resolve fan1 errors if functional
+ description: >
+ 'If fan1 is functional, call the resolve fan1 errors callback.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan functional
+ callback: resolve fan1 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+#Go ahead and do this on water cooled as well
+- name: resolve fan2 errors if functional
+ description: >
+ 'If fan2 is functional, call the resolve fan2 errors callback.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan functional
+ callback: resolve fan2 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+#Go ahead and do this on water cooled as well
+- name: resolve fan3 errors if functional
+ description: >
+ 'If fan3 is functional, call the resolve fan3 errors callback.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan functional
+ callback: resolve fan3 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: resolve fan4 errors if functional
+ description: >
+ 'If fan4 is functional, call the resolve fan4 errors callback.'
+ class: condition
+ condition: count
+ paths: fan4
+ properties: fan functional
+ callback: resolve fan4 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+#Go ahead and do this on water cooled as well
+- name: resolve fan5 errors if functional
+ description: >
+ 'If fan5 is functional, call the resolve fan5 errors callback.'
+ class: condition
+ condition: count
+ paths: fan5
+ properties: fan functional
+ callback: resolve fan5 errors
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: resolve fan0 errors
+ class: callback
+ callback: resolve callout
+ paths: fan0
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+
+- name: resolve fan1 errors
+ class: callback
+ callback: resolve callout
+ paths: fan1
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+
+- name: resolve fan2 errors
+ class: callback
+ callback: resolve callout
+ paths: fan2
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+
+- name: resolve fan3 errors
+ class: callback
+ callback: resolve callout
+ paths: fan3
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+
+- name: resolve fan4 errors
+ class: callback
+ callback: resolve callout
+ paths: fan4
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+
+- name: resolve fan5 errors
+ class: callback
+ callback: resolve callout
+ paths: fan5
+ properties: fan functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan5
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/water-cooled.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/water-cooled.yaml
new file mode 100644
index 000000000..689633a52
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-policy/water-cooled.yaml
@@ -0,0 +1,233 @@
+# Water cooled Talos fan policy for PDM.
+#
+# A water cooled Talos requires a minimum of one functional fan and one functional pump.
+# If the number of functional rotors drops below that
+# power the system off.
+
+- name: fans
+ description: >
+ 'A water cooled Talos has two rotors to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan4
+
+- name: chassis state
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Talos has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis water cooled
+ description: >
+ 'Monitor the chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: watch fan present
+ description: >
+ 'Trigger logic on fan presence state changes.'
+ class: watch
+ watch: property
+ paths: fans
+ properties: fan present
+ callback: check cooling type
+
+- name: watch fan functional
+ description: >
+ 'Trigger logic on fan functional state changes.'
+ class: watch
+ watch: property
+ paths: fans
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check cooling type
+
+- name: watch cooling type
+ description: >
+ 'Maintain a cache of the chassis cooling type.'
+ class: watch
+ watch: property
+ paths: chassis
+ properties: chassis water cooled
+
+- name: check cooling type
+ description: >
+ 'If this condition passes the chassis is water cooled.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis water cooled
+ callback: check power
+ countop: '=='
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check power
+ description: >
+ 'If the chassis has power, check fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify there are at least two functional fans, power off if not.'
+ class: callback
+ callback: group
+ members:
+ - check group presence
+ - check group functional
+
+- name: check group presence
+ description: >
+ 'If this condition passes more than one fan has been unplugged
+ for more than 25 seconds. Shut the system down. Count present
+ fans rather than non-present fans since the latter would pass
+ if the fan has not been created for some reason.
+
+ For a more detailed definition of unplugged, consult the documentation
+ of xyz.openbmc_project.Inventory.Item and/or the documentation
+ of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fans
+ properties: fan present
+ defer: 25000000us
+ callback: log and shutdown
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check group functional
+ description: >
+ 'If this condition passes more than one fan in the group has been marked
+ as nonfunctional for five seconds. Shut the system down.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fans
+ properties: fan functional
+ defer: 5000000us
+ callback: log and shutdown
+ countop: '>'
+ countbound: 1
+ op: '=='
+ bound: false
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - log
+ - create shutdown error
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: log
+ description: >
+ 'Log a shutdown event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Shutting down system. There are not enough functional fans.
+
+- name: create shutdown error
+ description: >
+ 'Create a Fan Shutdown Error log.'
+ class: callback
+ callback: elog
+ paths: chassis state
+ properties: chassis powered
+ error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog.bb b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog.bb
new file mode 100644
index 000000000..19be898dd
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Talos fan watchdog services"
+PR = "r1"
+
+inherit obmc-phosphor-license
+inherit obmc-phosphor-systemd
+
+RDEPENDS_${PN} += "virtual/obmc-gpio-monitor"
+RDEPENDS_${PN} += "busybox"
+
+RESET_SERVICE = "talos-reset-fan-watchdog.service"
+TGTFMT = "obmc-chassis-poweron@0.target"
+RESET_FMT = "../${RESET_SERVICE}:${TGTFMT}.requires/${RESET_SERVICE}"
+
+MONITOR_SERVICE = "talos-fan-watchdog-monitor@.service"
+
+WATCHDOG_SERVICE = "talos-fan-watchdog.service"
+WATCHDOG_FMT = "../${WATCHDOG_SERVICE}:${TGTFMT}.requires/${WATCHDOG_SERVICE}"
+
+SYSTEMD_SERVICE_${PN} += "${RESET_SERVICE} ${MONITOR_SERVICE} ${WATCHDOG_SERVICE}"
+SYSTEMD_LINK_${PN} += "${RESET_FMT} ${WATCHDOG_FMT}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "obmc/talos-fan-watchdog/reset-fan-watchdog.conf"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "obmc/talos-fan-watchdog/fan-watchdog.conf"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/fan-watchdog.conf b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/fan-watchdog.conf
new file mode 100644
index 000000000..b54faae3b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/fan-watchdog.conf
@@ -0,0 +1,3 @@
+TIMEOUT=3
+INTERVAL=1
+DEVICE=/dev/watchdog0
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/reset-fan-watchdog.conf b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/reset-fan-watchdog.conf
new file mode 100644
index 000000000..b4e5ce74e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/obmc/talos-fan-watchdog/reset-fan-watchdog.conf
@@ -0,0 +1,4 @@
+GPIO_PATH=/dev/gpiochip0
+GPIO=109
+DELAY=1
+ACTION=low_high
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog-monitor@.service b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog-monitor@.service
new file mode 100644
index 000000000..945561b50
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog-monitor@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Fan Watchdog Failure Monitor
+
+#This can get called every time a process dies, so ensure it's never limited
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env phosphor-unit-failure-monitor --source %i --target obmc-fan-watchdog-takeover.target --action start
+SyslogIdentifier=phosphor-unit-failure-monitor
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog.service b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog.service
new file mode 100644
index 000000000..c4696f72b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-fan-watchdog.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Talos Fan Watchdog Daemon
+Wants=phosphor-fan-control-init@0.service
+Before=phosphor-fan-control-init@0.service
+Conflicts=obmc-fan-watchdog-takeover.target
+
+[Service]
+EnvironmentFile={envfiledir}/obmc/talos-fan-watchdog/fan-watchdog.conf
+ExecStart=/sbin/watchdog -T ${{TIMEOUT}} -t ${{INTERVAL}} -F ${{DEVICE}}
+KillSignal=SIGKILL
+
+[Install]
+RequiredBy=obmc-chassis-poweron@0.target
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-reset-fan-watchdog.service b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-reset-fan-watchdog.service
new file mode 100644
index 000000000..934892bc4
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-fan-watchdog/talos-reset-fan-watchdog.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Talos Fan Watchdog Reset
+Wants=phosphor-fan-control-init@0.service
+Before=phosphor-fan-control-init@0.service
+Conflicts=obmc-chassis-poweroff@0.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile={envfiledir}/obmc/talos-fan-watchdog/reset-fan-watchdog.conf
+ExecStart=/usr/bin/env phosphor-gpio-util -p ${{GPIO_PATH}} -g ${{GPIO}} -a ${{ACTION}} -d ${{DELAY}}
+SyslogIdentifier=phosphor-gpio-util
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy-native.bb b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy-native.bb
new file mode 100644
index 000000000..1b20e53a5
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy-native.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Thermal policy for Talos"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-dbus-monitor
+
+SRC_URI += "file://thermal-policy.yaml"
+
+do_install() {
+ install -D ${WORKDIR}/thermal-policy.yaml ${D}${config_dir}/thermal-policy.yaml
+}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy/thermal-policy.yaml b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy/thermal-policy.yaml
new file mode 100644
index 000000000..28ba81cad
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/fans/talos-thermal-policy/thermal-policy.yaml
@@ -0,0 +1,200 @@
+# Talos thermal policy for PDM.
+#
+# Shut down a Talos system if more than three POWER9 cores
+# have a temperature greater than 115 degrees Celcius.
+
+
+- name: core sensors
+ description: >
+ 'Talos has two POWER9 chips with up to 24 cores each.'
+ class: group
+ group: path
+ members:
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+
+- name: core temp
+ description: >
+ 'Monitor the temperature of each core.'
+ class: group
+ group: property
+ type: int64
+ members:
+ - interface: xyz.openbmc_project.Sensor.Value
+ meta: TEMP
+ property: Value
+
+- name: watch core temps
+ description: >
+ 'Trigger logic on core temp changes.'
+ class: watch
+ watch: property
+ paths: core sensors
+ properties: core temp
+ callback: check temps
+
+- name: check temps
+ description: >
+ 'If this condition passes at least three cores are running
+ too hot. Shut the system down.'
+ class: condition
+ condition: count
+ paths: core sensors
+ properties: core temp
+ callback: log and shutdown
+ countop: '>='
+ countbound: 3
+ op: '>='
+ bound: 115000
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down and log an event.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - log
+ - create criticalhigh error
+ - create shutdown error
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: log
+ description: >
+ 'Log a shutdown event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: core sensors
+ properties: core temp
+ severity: ERR
+ message: The system is too hot. Shutting down.
+
+- name: create criticalhigh error
+ description: >
+ 'Create a CriticalHigh Error log.'
+ class: callback
+ callback: elog
+ paths: core sensors
+ properties: core temp
+ error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
+ metadata:
+ - name: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_TYPE
+ value: temperature
+ type: string
+
+- name: create shutdown error
+ description: >
+ 'Create a SystemShutdown Error log.'
+ class: callback
+ callback: elog
+ paths: core sensors
+ properties: core temp
+ error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor
diff --git a/meta-rcs/meta-talos/recipes-phosphor/host/p9-host-start.bbappend b/meta-rcs/meta-talos/recipes-phosphor/host/p9-host-start.bbappend
new file mode 100644
index 000000000..ac2013fd3
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/host/p9-host-start.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS_${PN} += 'avsbus-control'
+RDEPENDS_${PN} += 'vrm-control'
diff --git a/meta-rcs/meta-talos/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-rcs/meta-talos/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..aa57bbfe6
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
new file mode 100644
index 000000000..ae626ed05
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
@@ -0,0 +1,159 @@
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/cpu1:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm1:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm2:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm3:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm4:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm5:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm6:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm7:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm8:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm9:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm10:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm11:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm12:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm13:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm14:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm15:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
new file mode 100644
index 000000000..8009eadaf
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
@@ -0,0 +1,36 @@
+50:
+ /system/chassis/motherboard/fan0:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+51:
+ /system/chassis/motherboard/fan1:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+52:
+ /system/chassis/motherboard/fan2:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+53:
+ /system/chassis/motherboard/fan3:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+54:
+ /system/chassis/motherboard/fan4:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+55:
+ /system/chassis/motherboard/fan5:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
new file mode 100644
index 000000000..1f0254d0f
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
@@ -0,0 +1,48 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
+SRC_URI_append = " file://occ_sensors.hardcoded.yaml \
+ file://dev_id.json \
+ file://dcmi_sensors.json \
+ file://power_reading.json \
+ file://hwmon_sensors.hardcoded.yaml \
+ "
+inherit image_version
+
+# Calculate the auxiliary firmware revision to be updated in the dev_id.json
+# file. It is calculated from the VERSION_ID field which currently has two
+# formats. The revision field is 4 bytes, the first two bytes represent the
+# count of commits from the tagging and next two bytes represent the version.
+# Both fields are represented in BCD encoded format, so 9999 is the maximum
+# value both fields can take. With the format "v2.1-216-ga78ace8", Petitboot
+# would display the firmware revision as "Firmware version: 2.01.02160000",
+# "0216" is count and the revision is "0000". With the format
+# "ibm-v2.0-10-r41-0-gd0c319e" Petitboot would display the firmware revision
+# as "Firmware version: 2.00.00100041", "0010" is count and the revision
+# is "0041".
+
+python do_populate_aux_version() {
+ import json
+ import re
+ version_id = do_get_version(d)
+
+ # count from the commit version
+ count = re.findall("-(\d{1,4})-", version_id)
+
+ release = re.findall("-r(\d{1,4})", version_id)
+ if release:
+ auxVer = count[0] + "{0:0>4}".format(release[0])
+ else:
+ auxVer = count[0] + "0000"
+
+ # Update dev_id.json with the auxiliary firmware revision
+ workdir = d.getVar('WORKDIR', True)
+ file = os.path.join(workdir, 'dev_id.json')
+
+ with open(file, "r+") as jsonFile:
+ data = json.load(jsonFile)
+ jsonFile.seek(0)
+ jsonFile.truncate()
+ data["aux"] = int(auxVer, 16)
+ json.dump(data, jsonFile)
+}
+
+addtask populate_aux_version after do_configure before do_compile
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dcmi_sensors.json b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dcmi_sensors.json
new file mode 100644
index 000000000..56170bf48
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dcmi_sensors.json
@@ -0,0 +1,59 @@
+{
+ "inlet": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/ambient", "record_id": 254}
+ ],
+ "baseboard": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/pcie", "record_id": 253}
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/cpu_1_ambient", "record_id": 252}
+ ],
+ "cpu": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", "record_id": 17},
+ {"instance": 2, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", "record_id": 20},
+ {"instance": 3, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", "record_id": 23},
+ {"instance": 4, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", "record_id": 26},
+ {"instance": 5, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", "record_id": 29},
+ {"instance": 6, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", "record_id": 32},
+ {"instance": 7, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", "record_id": 35},
+ {"instance": 8, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", "record_id": 38},
+ {"instance": 9, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", "record_id": 41},
+ {"instance": 10, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", "record_id": 44},
+ {"instance": 11, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", "record_id": 47},
+ {"instance": 12, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", "record_id": 50},
+ {"instance": 13, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", "record_id": 53},
+ {"instance": 14, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", "record_id": 56},
+ {"instance": 15, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", "record_id": 59},
+ {"instance": 16, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", "record_id": 62},
+ {"instance": 17, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", "record_id": 65},
+ {"instance": 18, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", "record_id": 68},
+ {"instance": 19, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", "record_id": 71},
+ {"instance": 20, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", "record_id": 74},
+ {"instance": 21, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", "record_id": 77},
+ {"instance": 22, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", "record_id": 80},
+ {"instance": 23, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", "record_id": 83},
+ {"instance": 24, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", "record_id": 86},
+ {"instance": 25, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", "record_id": 91},
+ {"instance": 26, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", "record_id": 94},
+ {"instance": 27, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", "record_id": 97},
+ {"instance": 28, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", "record_id": 100},
+ {"instance": 29, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", "record_id": 103},
+ {"instance": 30, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", "record_id": 106},
+ {"instance": 31, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", "record_id": 109},
+ {"instance": 32, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", "record_id": 112},
+ {"instance": 33, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", "record_id": 115},
+ {"instance": 34, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", "record_id": 118},
+ {"instance": 35, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", "record_id": 121},
+ {"instance": 36, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", "record_id": 124},
+ {"instance": 37, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", "record_id": 127},
+ {"instance": 38, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", "record_id": 130},
+ {"instance": 39, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", "record_id": 133},
+ {"instance": 40, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", "record_id": 136},
+ {"instance": 41, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", "record_id": 139},
+ {"instance": 42, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", "record_id": 142},
+ {"instance": 43, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", "record_id": 145},
+ {"instance": 44, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", "record_id": 148},
+ {"instance": 45, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", "record_id": 151},
+ {"instance": 46, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", "record_id": 154},
+ {"instance": 47, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", "record_id": 157},
+ {"instance": 48, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", "record_id": 160}
+ ]
+}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dev_id.json b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dev_id.json
new file mode 100644
index 000000000..f443fe134
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/dev_id.json
@@ -0,0 +1,2 @@
+{"id": 0, "revision": 128, "addn_dev_support": 141,
+ "manuf_id": 51974, "prod_id": 1, "aux": 0}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml
new file mode 100644
index 000000000..2c897df8f
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml
@@ -0,0 +1,1759 @@
+0xa5:
+ entityID: 0x20
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm0_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xa7:
+ entityID: 0x20
+ entityInstance: 2
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm1_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xa9:
+ entityID: 0x20
+ entityInstance: 3
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm2_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xab:
+ entityID: 0x20
+ entityInstance: 4
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm3_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xad:
+ entityID: 0x20
+ entityInstance: 5
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm4_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xaf:
+ entityID: 0x20
+ entityInstance: 6
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm5_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xb1:
+ entityID: 0x20
+ entityInstance: 7
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm6_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xb3:
+ entityID: 0x20
+ entityInstance: 8
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm7_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xb5:
+ entityID: 0x20
+ entityInstance: 9
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm8_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xb7:
+ entityID: 0x20
+ entityInstance: 10
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm9_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xb9:
+ entityID: 0x20
+ entityInstance: 11
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm10_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xbb:
+ entityID: 0x20
+ entityInstance: 12
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm11_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xbd:
+ entityID: 0x20
+ entityInstance: 13
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm12_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xbf:
+ entityID: 0x20
+ entityInstance: 14
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm13_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xc1:
+ entityID: 0x20
+ entityInstance: 15
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm14_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xc3:
+ entityID: 0x20
+ entityInstance: 16
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/dimm15_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x11:
+ entityID: 0x03
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+
+0x14:
+ entityID: 0x03
+ entityInstance: 2
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x17:
+ entityID: 0x03
+ entityInstance: 3
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x1a:
+ entityID: 0x03
+ entityInstance: 4
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x1d:
+ entityID: 0x03
+ entityInstance: 5
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x20:
+ entityID: 0x03
+ entityInstance: 6
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x23:
+ entityID: 0x03
+ entityInstance: 7
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x26:
+ entityID: 0x03
+ entityInstance: 8
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x29:
+ entityID: 0x03
+ entityInstance: 9
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x2c:
+ entityID: 0x03
+ entityInstance: 10
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x2f:
+ entityID: 0x03
+ entityInstance: 11
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x32:
+ entityID: 0x03
+ entityInstance: 12
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x35:
+ entityID: 0x03
+ entityInstance: 13
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x38:
+ entityID: 0x03
+ entityInstance: 14
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x3b:
+ entityID: 0x03
+ entityInstance: 15
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x3e:
+ entityID: 0x03
+ entityInstance: 16
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x41:
+ entityID: 0x03
+ entityInstance: 17
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x44:
+ entityID: 0x03
+ entityInstance: 18
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+0x47:
+ entityID: 0x03
+ entityInstance: 19
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x4a:
+ entityID: 0x03
+ entityInstance: 20
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x4d:
+ entityID: 0x03
+ entityInstance: 21
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x50:
+ entityID: 0x03
+ entityInstance: 22
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x53:
+ entityID: 0x03
+ entityInstance: 23
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x56:
+ entityID: 0x03
+ entityInstance: 24
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x5b:
+ entityID: 0x03
+ entityInstance: 25
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x5e:
+ entityID: 0x03
+ entityInstance: 26
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x61:
+ entityID: 0x03
+ entityInstance: 27
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x64:
+ entityID: 0x03
+ entityInstance: 28
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x67:
+ entityID: 0x03
+ entityInstance: 29
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x6a:
+ entityID: 0x03
+ entityInstance: 30
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x6d:
+ entityID: 0x03
+ entityInstance: 31
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x70:
+ entityID: 0x03
+ entityInstance: 32
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x73:
+ entityID: 0x03
+ entityInstance: 33
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+0x76:
+ entityID: 0x03
+ entityInstance: 34
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x79:
+ entityID: 0x03
+ entityInstance: 35
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x7c:
+ entityID: 0x03
+ entityInstance: 36
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x7f:
+ entityID: 0x03
+ entityInstance: 37
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x82:
+ entityID: 0x03
+ entityInstance: 38
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x85:
+ entityID: 0x03
+ entityInstance: 39
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x88:
+ entityID: 0x03
+ entityInstance: 40
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x8b:
+ entityID: 0x03
+ entityInstance: 41
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x8e:
+ entityID: 0x03
+ entityInstance: 42
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x91:
+ entityID: 0x03
+ entityInstance: 43
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x94:
+ entityID: 0x03
+ entityInstance: 44
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x97:
+ entityID: 0x03
+ entityInstance: 45
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x9a:
+ entityID: 0x03
+ entityInstance: 46
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0x9d:
+ entityID: 0x03
+ entityInstance: 47
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xa0:
+ entityID: 0x03
+ entityInstance: 48
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe7:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe8:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_vdd_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe9:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_vdn_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xea:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xeb:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_vdd_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xec:
+ entityID: 0x0A
+ entityInstance: 2
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_vdn_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xdd:
+ entityID: 0x1D
+ entityInstance: 1
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan0
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xde:
+ entityID: 0x1D
+ entityInstance: 2
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan1
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xdf:
+ entityID: 0x1D
+ entityInstance: 3
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan2
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe2:
+ entityID: 0x1D
+ entityInstance: 4
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan3
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe3:
+ entityID: 0x1D
+ entityInstance: 5
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan4
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe4:
+ entityID: 0x1D
+ entityInstance: 6
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan5
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe5:
+ entityID: 0x1D
+ entityInstance: 7
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan6
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfc:
+ entityID: 0x23
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/cpu_1_ambient
+ sensorReadingType: 0x01
+ multiplierM: 30
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfd:
+ entityID: 0x23
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/pcie
+ sensorReadingType: 0x01
+ multiplierM: 30
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfe:
+ entityID: 0x40
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/ambient
+ sensorReadingType: 0x01
+ multiplierM: 20
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml
new file mode 100644
index 000000000..2855b0e82
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml
@@ -0,0 +1,42 @@
+0x08:
+ entityID: 0xD2
+ entityInstance: 1
+ sensorType: 0x09
+ path: /org/open_power/control/occ0
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+0x09:
+ entityID: 0xD2
+ entityInstance: 2
+ sensorType: 0x09
+ path: /org/open_power/control/occ1
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/power_reading.json b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/power_reading.json
new file mode 100644
index 000000000..97e8f32b5
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-host/power_reading.json
@@ -0,0 +1,3 @@
+{
+ "path": "/xyz/openbmc_project/sensors/power/total_power"
+}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
new file mode 100755
index 000000000..69faf9dee
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
@@ -0,0 +1,1939 @@
+0x02:
+ sensorType: 0x0F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: eventdata2
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Boot.Progress:
+ BootProgress:
+ Offsets:
+ 0x13:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+ 0x00:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+ 0x01:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+ 0x07:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+ 0x14:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+ 0x03:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+0x03:
+ sensorType: 0x07
+ path: /org/open_power/control/occ0
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+0x04:
+ sensorType: 0x07
+ path: /org/open_power/control/occ1
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+0x08:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+0x09:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+0x0b:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x0c:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x0d:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x0e:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x0f:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x10:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x11:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x12:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x13:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x14:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x15:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x16:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x17:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x18:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x19:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x1a:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x2b:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2c:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2d:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2e:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2f:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x30:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x31:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x32:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x33:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x34:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x35:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x36:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x37:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x38:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x39:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3a:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3b:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core16
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3c:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core17
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3d:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core18
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3e:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core19
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3f:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core20
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x40:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core21
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x41:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core22
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x42:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core23
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x43:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x44:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x45:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x46:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x47:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x48:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x49:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4a:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4b:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4c:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4d:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4e:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4f:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x50:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x51:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x52:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x53:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core16
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x54:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core17
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x55:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core18
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x56:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core19
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x57:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core20
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x58:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core21
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x59:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core22
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x5a:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core23
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x8B:
+ sensorType: 0xC3
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingAssertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootAttempts:
+ AttemptsLeft:
+ Offsets:
+ 0xFF:
+ type: uint32_t
+0x91:
+ sensorType: 0x1F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.OperatingSystem.Status:
+ OperatingSystemState:
+ Offsets:
+ 0x02:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+ type: string
+ 0x06:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+ type: string
+ 0x04:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+ type: string
+ 0x01:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+ type: string
+ 0x03:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+ type: string
+ 0x05:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+ type: string
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map-native.bb b/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map-native.bb
new file mode 100644
index 000000000..7dc9393fb
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Talos II IPMI to DBus Inventory mapping."
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-fru
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # TODO: install this to inventory_datadir
+ # after ipmi-fru-parser untangles the host
+ # firmware config from the machine inventory.
+ DEST=${D}${config_datadir}
+
+ install -d ${DEST}
+ install config.yaml ${DEST}
+}
+
diff --git a/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map/config.yaml b/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map/config.yaml
new file mode 100644
index 000000000..de2e81474
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/ipmi/talos-ipmi-inventory-map/config.yaml
@@ -0,0 +1,538 @@
+1:
+ /system/chassis/motherboard/cpu0:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+2:
+ /system/chassis/motherboard/cpu1:
+ entityID: 3
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ Value: False
+3:
+ /system/chassis/motherboard:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ /system:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+
+
+4:
+ /system/chassis/motherboard/dimm0:
+ entityID: 32
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+5:
+ /system/chassis/motherboard/dimm1:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+6:
+ /system/chassis/motherboard/dimm2:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+7:
+ /system/chassis/motherboard/dimm3:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+8:
+ /system/chassis/motherboard/dimm4:
+ entityID: 32
+ entityInstance: 5
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+9:
+ /system/chassis/motherboard/dimm5:
+ entityID: 32
+ entityInstance: 6
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+10:
+ /system/chassis/motherboard/dimm6:
+ entityID: 32
+ entityInstance: 7
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+11:
+ /system/chassis/motherboard/dimm7:
+ entityID: 32
+ entityInstance: 8
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+12:
+ /system/chassis/motherboard/dimm8:
+ entityID: 32
+ entityInstance: 9
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+13:
+ /system/chassis/motherboard/dimm9:
+ entityID: 32
+ entityInstance: 10
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+14:
+ /system/chassis/motherboard/dimm10:
+ entityID: 32
+ entityInstance: 11
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+15:
+ /system/chassis/motherboard/dimm11:
+ entityID: 32
+ entityInstance: 12
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+16:
+ /system/chassis/motherboard/dimm12:
+ entityID: 32
+ entityInstance: 13
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+17:
+ /system/chassis/motherboard/dimm13:
+ entityID: 32
+ entityInstance: 14
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+18:
+ /system/chassis/motherboard/dimm14:
+ entityID: 32
+ entityInstance: 15
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+19:
+ /system/chassis/motherboard/dimm15:
+ entityID: 32
+ entityInstance: 16
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
diff --git a/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config-native.bb b/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config-native.bb
new file mode 100644
index 000000000..dd8502ca3
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Phosphor LED Group Management for Talos II"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-utils
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Overwrite the example led layout yaml file prior
+# to building the phosphor-led-manager package
+do_install() {
+ SRC=${S}
+ DEST=${D}${datadir}/phosphor-led-manager
+ install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config/led.yaml b/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config/led.yaml
new file mode 100755
index 000000000..884353b04
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/leds/talos-led-manager-config/led.yaml
@@ -0,0 +1,38 @@
+bmc_booted:
+ power:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ Priority: 'On'
+
+ bmc_ready:
+ Action: 'On'
+
+power_on:
+ power:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'On'
+
+enclosure_fault:
+ fault:
+ Action: 'On'
+
+enclosure_identify:
+ identify:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+
+# The Op Panel on the Talos II system holds a multicolor LED.
+# Both the 'fault' and 'identify' gpios are wired to the same LED.
+# By holding one in 'on' while the other in 'blink' state, ensures
+# the manufacturing process can verify both colors function
+lamp_test:
+ fault:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ identify:
+ Action: 'On'
diff --git a/meta-rcs/meta-talos/recipes-phosphor/mboxd/mboxd.bbappend b/meta-rcs/meta-talos/recipes-phosphor/mboxd/mboxd.bbappend
new file mode 100644
index 000000000..8b6248a46
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/mboxd/mboxd.bbappend
@@ -0,0 +1 @@
+MBOXD_FLASH_SIZE = "64M"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-rcs/meta-talos/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 000000000..7a7c879e1
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1 @@
+RDEPENDS_${PN}-inventory += " openpower-fru-vpd openpower-occ-control phosphor-cooling-type"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
new file mode 100644
index 000000000..b794bef1a
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -0,0 +1,25 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+TALOS_CHIPS = " \
+ i2c@1e78a000/i2c-bus@440/max31785@52 \
+ i2c@1e78a000/i2c-bus@440/w83773g@4c \
+ i2c@1e78a000/i2c-bus@440/power-supply@68 \
+ i2c@1e78a000/i2c-bus@440/power-supply@69 \
+ "
+TALOS_ITEMSFMT = "ahb/apb/{0}.conf"
+TALOS_ITEMS = "${@compose_list(d, 'TALOS_ITEMSFMT', 'TALOS_CHIPS')}"
+
+TALOS_OCCS = " \
+ 00--00--00--06/sbefifo1-dev0/occ-hwmon.1 \
+ 00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2 \
+ "
+
+TALOS_OCCSFMT = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf"
+TALOS_OCCITEMS = "${@compose_list(d, 'TALOS_OCCSFMT', 'TALOS_OCCS')}"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'TALOS_ITEMS')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'TALOS_OCCITEMS')}"
+
+SYSTEMD_ENVIRONMENT_FILE_max31785-msl += "obmc/hwmon-max31785/talos.conf"
+SYSTEMD_LINK_max31785-msl += "../phosphor-max31785-msl@.service:${SYSTEMD_DEFAULT_TARGET}.wants/phosphor-max31785-msl@talos.service"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon-max31785/talos.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon-max31785/talos.conf
new file mode 100644
index 000000000..0fc81037c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon-max31785/talos.conf
@@ -0,0 +1,3 @@
+BUS=12
+PATHS="/system/chassis/motherboard/fan0 /system/chassis/motherboard/fan1 /system/chassis/motherboard/fan2 /system/chassis/motherboard/fan3 /system/chassis/motherboard/fan4 /system/chassis/motherboard/fan5"
+REVISION=0x3030
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/max31785@52.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/max31785@52.conf
new file mode 100644
index 000000000..204de8b8b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/max31785@52.conf
@@ -0,0 +1,16 @@
+LABEL_fan1 = "fan0"
+LABEL_fan2 = "fan1"
+LABEL_fan3 = "fan2"
+LABEL_fan4 = "fan3"
+LABEL_fan5 = "fan5"
+LABEL_fan6 = "fan4"
+
+ENABLE_fan1 = "1"
+ENABLE_fan2 = "1"
+ENABLE_fan3 = "1"
+ENABLE_fan4 = "1"
+ENABLE_fan5 = "1"
+ENABLE_fan6 = "1"
+
+# Legacy mode
+TARGET_MODE = "RPM"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@68.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@68.conf
new file mode 100644
index 000000000..e463b517c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@68.conf
@@ -0,0 +1,23 @@
+LABEL_in1="ps1_input_voltage"
+WARNHI_in1="290000"
+WARNLO_in1="200000"
+CRITHI_in1="300000"
+CRITLO_in1="180000"
+
+LABEL_in2="ps1_output_voltage"
+WARNHI_in2="12700"
+WARNLO_in2="0"
+CRITHI_in2="13000"
+CRITLO_in2="0"
+
+LABEL_curr1="ps1_output_current"
+WARNHI_curr1="170000"
+WARNLO_curr1="0"
+CRITHI_curr1="180000"
+CRITLO_curr1="0"
+
+LABEL_power1="ps1_input_power"
+WARNHI_power1="2350000000"
+WARNLO_power1="0"
+CRITHI_power1="2500000000"
+CRITLO_power1="0"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@69.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@69.conf
new file mode 100644
index 000000000..2fadbdec0
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/power-supply@69.conf
@@ -0,0 +1,23 @@
+LABEL_in1="ps0_input_voltage"
+WARNHI_in1="290000"
+WARNLO_in1="200000"
+CRITHI_in1="300000"
+CRITLO_in1="180000"
+
+LABEL_in2="ps0_output_voltage"
+WARNHI_in2="12700"
+WARNLO_in2="0"
+CRITHI_in2="13000"
+CRITLO_in2="0"
+
+LABEL_curr1="ps0_output_current"
+WARNHI_curr1="170000"
+WARNLO_curr1="0"
+CRITHI_curr1="180000"
+CRITLO_curr1="0"
+
+LABEL_power1="ps0_input_power"
+WARNHI_power1="2350000000"
+WARNLO_power1="0"
+CRITHI_power1="2500000000"
+CRITLO_power1="0"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
new file mode 100644
index 000000000..506687fcd
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
@@ -0,0 +1,3 @@
+LABEL_temp1 = "pcie"
+LABEL_temp2 = "cpu_1_ambient"
+LABEL_temp3 = "ambient"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
new file mode 100644
index 000000000..7752d2bbb
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
@@ -0,0 +1,123 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+MODE_freq1 = "label"
+MODE_freq2 = "label"
+MODE_freq3 = "label"
+MODE_freq4 = "label"
+MODE_freq5 = "label"
+MODE_freq6 = "label"
+MODE_freq7 = "label"
+MODE_freq8 = "label"
+MODE_freq9 = "label"
+MODE_freq10 = "label"
+MODE_freq11 = "label"
+MODE_freq12 = "label"
+MODE_freq13 = "label"
+MODE_freq14 = "label"
+MODE_freq15 = "label"
+MODE_freq16 = "label"
+MODE_freq17 = "label"
+MODE_freq18 = "label"
+MODE_freq19 = "label"
+MODE_freq20 = "label"
+MODE_freq21 = "label"
+MODE_freq22 = "label"
+MODE_freq23 = "label"
+MODE_freq24 = "label"
+MODE_freq25 = "label"
+MODE_freq26 = "label"
+MODE_freq27 = "label"
+MODE_freq28 = "label"
+MODE_freq29 = "label"
+MODE_freq30 = "label"
+MODE_freq31 = "label"
+MODE_freq32 = "label"
+LABEL_temp91 = "p0_core0_temp"
+LABEL_temp92 = "p0_core1_temp"
+LABEL_temp93 = "p0_core2_temp"
+LABEL_temp94 = "p0_core3_temp"
+LABEL_temp95 = "p0_core4_temp"
+LABEL_temp96 = "p0_core5_temp"
+LABEL_temp97 = "p0_core6_temp"
+LABEL_temp98 = "p0_core7_temp"
+LABEL_temp99 = "p0_core8_temp"
+LABEL_temp100 = "p0_core9_temp"
+LABEL_temp101 = "p0_core10_temp"
+LABEL_temp102 = "p0_core11_temp"
+LABEL_temp103 = "p0_core12_temp"
+LABEL_temp104 = "p0_core13_temp"
+LABEL_temp105 = "p0_core14_temp"
+LABEL_temp106 = "p0_core15_temp"
+LABEL_temp107 = "p0_core16_temp"
+LABEL_temp108 = "p0_core17_temp"
+LABEL_temp109 = "p0_core18_temp"
+LABEL_temp110 = "p0_core19_temp"
+LABEL_temp111 = "p0_core20_temp"
+LABEL_temp112 = "p0_core21_temp"
+LABEL_temp113 = "p0_core22_temp"
+LABEL_temp114 = "p0_core23_temp"
+LABEL_temp27 = "dimm0_temp"
+LABEL_temp28 = "dimm1_temp"
+LABEL_temp29 = "dimm2_temp"
+LABEL_temp30 = "dimm3_temp"
+LABEL_temp31 = "dimm4_temp"
+LABEL_temp32 = "dimm5_temp"
+LABEL_temp33 = "dimm6_temp"
+LABEL_temp34 = "dimm7_temp"
+LABEL_freq91 = "p0_core0_freq"
+LABEL_freq92 = "p0_core1_freq"
+LABEL_freq93 = "p0_core2_freq"
+LABEL_freq94 = "p0_core3_freq"
+LABEL_freq95 = "p0_core4_freq"
+LABEL_freq96 = "p0_core5_freq"
+LABEL_freq97 = "p0_core6_freq"
+LABEL_freq98 = "p0_core7_freq"
+LABEL_freq99 = "p0_core8_freq"
+LABEL_freq100 = "p0_core9_freq"
+LABEL_freq101 = "p0_core10_freq"
+LABEL_freq102 = "p0_core11_freq"
+LABEL_freq103 = "p0_core12_freq"
+LABEL_freq104 = "p0_core13_freq"
+LABEL_freq105 = "p0_core14_freq"
+LABEL_freq106 = "p0_core15_freq"
+LABEL_freq107 = "p0_core16_freq"
+LABEL_freq108 = "p0_core17_freq"
+LABEL_freq109 = "p0_core18_freq"
+LABEL_freq110 = "p0_core19_freq"
+LABEL_freq111 = "p0_core20_freq"
+LABEL_freq112 = "p0_core21_freq"
+LABEL_freq113 = "p0_core22_freq"
+LABEL_freq114 = "p0_core23_freq"
+LABEL_power2 = "p0_power"
+LABEL_power3 = "p0_vdd_power"
+LABEL_power4 = "p0_vdn_power"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf
new file mode 100644
index 000000000..d90820d8c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf
@@ -0,0 +1,123 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+MODE_freq1 = "label"
+MODE_freq2 = "label"
+MODE_freq3 = "label"
+MODE_freq4 = "label"
+MODE_freq5 = "label"
+MODE_freq6 = "label"
+MODE_freq7 = "label"
+MODE_freq8 = "label"
+MODE_freq9 = "label"
+MODE_freq10 = "label"
+MODE_freq11 = "label"
+MODE_freq12 = "label"
+MODE_freq13 = "label"
+MODE_freq14 = "label"
+MODE_freq15 = "label"
+MODE_freq16 = "label"
+MODE_freq17 = "label"
+MODE_freq18 = "label"
+MODE_freq19 = "label"
+MODE_freq20 = "label"
+MODE_freq21 = "label"
+MODE_freq22 = "label"
+MODE_freq23 = "label"
+MODE_freq24 = "label"
+MODE_freq25 = "label"
+MODE_freq26 = "label"
+MODE_freq27 = "label"
+MODE_freq28 = "label"
+MODE_freq29 = "label"
+MODE_freq30 = "label"
+MODE_freq31 = "label"
+MODE_freq32 = "label"
+LABEL_temp115 = "p1_core0_temp"
+LABEL_temp116 = "p1_core1_temp"
+LABEL_temp117 = "p1_core2_temp"
+LABEL_temp118 = "p1_core3_temp"
+LABEL_temp119 = "p1_core4_temp"
+LABEL_temp120 = "p1_core5_temp"
+LABEL_temp121 = "p1_core6_temp"
+LABEL_temp122 = "p1_core7_temp"
+LABEL_temp123 = "p1_core8_temp"
+LABEL_temp124 = "p1_core9_temp"
+LABEL_temp125 = "p1_core10_temp"
+LABEL_temp126 = "p1_core11_temp"
+LABEL_temp127 = "p1_core12_temp"
+LABEL_temp128 = "p1_core13_temp"
+LABEL_temp129 = "p1_core14_temp"
+LABEL_temp130 = "p1_core15_temp"
+LABEL_temp131 = "p1_core16_temp"
+LABEL_temp132 = "p1_core17_temp"
+LABEL_temp133 = "p1_core18_temp"
+LABEL_temp134 = "p1_core19_temp"
+LABEL_temp135 = "p1_core20_temp"
+LABEL_temp136 = "p1_core21_temp"
+LABEL_temp137 = "p1_core22_temp"
+LABEL_temp138 = "p1_core23_temp"
+LABEL_temp35 = "dimm8_temp"
+LABEL_temp36 = "dimm9_temp"
+LABEL_temp37 = "dimm10_temp"
+LABEL_temp38 = "dimm11_temp"
+LABEL_temp39 = "dimm12_temp"
+LABEL_temp40 = "dimm13_temp"
+LABEL_temp41 = "dimm14_temp"
+LABEL_temp42 = "dimm15_temp"
+LABEL_freq115 = "p1_core0_freq"
+LABEL_freq116 = "p1_core1_freq"
+LABEL_freq117 = "p1_core2_freq"
+LABEL_freq118 = "p1_core3_freq"
+LABEL_freq119 = "p1_core4_freq"
+LABEL_freq120 = "p1_core5_freq"
+LABEL_freq121 = "p1_core6_freq"
+LABEL_freq122 = "p1_core7_freq"
+LABEL_freq123 = "p1_core8_freq"
+LABEL_freq124 = "p1_core9_freq"
+LABEL_freq125 = "p1_core10_freq"
+LABEL_freq126 = "p1_core11_freq"
+LABEL_freq127 = "p1_core12_freq"
+LABEL_freq128 = "p1_core13_freq"
+LABEL_freq129 = "p1_core14_freq"
+LABEL_freq130 = "p1_core15_freq"
+LABEL_freq131 = "p1_core16_freq"
+LABEL_freq132 = "p1_core17_freq"
+LABEL_freq133 = "p1_core18_freq"
+LABEL_freq134 = "p1_core19_freq"
+LABEL_freq135 = "p1_core20_freq"
+LABEL_freq136 = "p1_core21_freq"
+LABEL_freq137 = "p1_core22_freq"
+LABEL_freq138 = "p1_core23_freq"
+LABEL_power2 = "p1_power"
+LABEL_power3 = "p1_vdd_power"
+LABEL_power4 = "p1_vdn_power"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules
new file mode 100644
index 000000000..070d88f51
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="hwmon", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules
new file mode 100644
index 000000000..f332d11ac
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="iio", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service"
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/phosphor-max31785-msl@.service b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/phosphor-max31785-msl@.service
new file mode 100644
index 000000000..d9de6c081
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/phosphor-max31785-msl@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Phosphor MAX31785 MSL
+ConditionFileNotEmpty={envfiledir}/obmc/hwmon-max31785/%I.conf
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env max31785-msl -p "${{PATHS}}" -b ${{BUS}} -r ${{REVISION}}
+EnvironmentFile={envfiledir}/obmc/hwmon-max31785/%I.conf
+SyslogIdentifier=max31785-msl
diff --git a/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service
new file mode 100644
index 000000000..8dca3ad4b
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Phosphor Hwmon Poller
+ConditionFileNotEmpty=/etc/default/obmc/hwmon/%I.conf
+StopWhenUnneeded=true
+After=xyz.openbmc_project.ObjectMapper.service
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/env phosphor-hwmon-readd -o %f
+SyslogIdentifier=phosphor-hwmon-readd
+EnvironmentFile=/etc/default/obmc/hwmon/%I.conf
diff --git a/meta-rcs/meta-talos/recipes-phosphor/workbook/talos-config.bb b/meta-rcs/meta-talos/recipes-phosphor/workbook/talos-config.bb
new file mode 100644
index 000000000..03164579c
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes-phosphor/workbook/talos-config.bb
@@ -0,0 +1,5 @@
+SUMMARY = "Talos II board wiring"
+DESCRIPTION = "Talos II wiring information for the Talos II OpenPOWER system."
+PR = "r1"
+
+inherit config-in-skeleton
diff --git a/meta-rcs/meta-talos/recipes.txt b/meta-rcs/meta-talos/recipes.txt
new file mode 100644
index 000000000..3ec3f4a42
--- /dev/null
+++ b/meta-rcs/meta-talos/recipes.txt
@@ -0,0 +1,2 @@
+recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
+recipes-phosphor - Phosphor OpenBMC applications and configuration
OpenPOWER on IntegriCloud