[Subtree] Bring openbmc machines to top level

The new subtree model brings the subtrees up from the openbmc-machines
layer.

Change-Id: I58a03ae1be374bc79ae1438e65e888375d12d0c0
Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-ibm/meta-romulus/conf/bblayers.conf.sample b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
new file mode 100644
index 0000000..a6f7a5f
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
@@ -0,0 +1,35 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-poky \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-perl \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-openembedded/meta-webserver \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-aspeed \
+  ##OEROOT##/meta-openpower \
+  ##OEROOT##/meta-ibm \
+  ##OEROOT##/meta-ibm/meta-romulus \
+  "
+BBLAYERS_NON_REMOVABLE ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-poky \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-perl \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-openembedded/meta-webserver \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-aspeed \
+  ##OEROOT##/meta-openpower \
+  ##OEROOT##/meta-ibm \
+  ##OEROOT##/meta-ibm/meta-romulus \
+  "
diff --git a/meta-ibm/meta-romulus/conf/conf-notes.txt b/meta-ibm/meta-romulus/conf/conf-notes.txt
new file mode 100644
index 0000000..9b3c01a
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+     obmc-phosphor-image
diff --git a/meta-ibm/meta-romulus/conf/layer.conf b/meta-ibm/meta-romulus/conf/layer.conf
new file mode 100644
index 0000000..3a29f43
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/layer.conf
@@ -0,0 +1,10 @@
+# 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 += "romulus"
+BBFILE_PATTERN_romulus = ""
+LAYERSERIES_COMPAT_romulus = "sumo"
diff --git a/meta-ibm/meta-romulus/conf/local.conf.sample b/meta-ibm/meta-romulus/conf/local.conf.sample
new file mode 100644
index 0000000..b2b739f
--- /dev/null
+++ b/meta-ibm/meta-romulus/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 ??= "romulus"
+
+#
+# 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-openpower"
+# 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-ibm/meta-romulus/conf/machine/romulus.conf b/meta-ibm/meta-romulus/conf/machine/romulus.conf
new file mode 100644
index 0000000..14778f6
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/machine/romulus.conf
@@ -0,0 +1,20 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+UBOOT_MACHINE = "ast_g5_ncsi_config"
+
+PREFERRED_PROVIDER_virtual/p9-vcs-workaround = ''
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+require conf/machine/include/p9.inc
+
+PHOSPHOR_MRW_URI = "git://github.com/open-power/romulus-xml"
+PHOSPHOR_MRW_REV = "14b471fbf37f5fb60261de001df83caf5f96d81f"
+
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "romulus-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "romulus-led-manager-config-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "romulus-ipmi-fru-read-inventory-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-inventory-sel = "romulus-ipmi-inventory-sel-native"
+PREFERRED_PROVIDER_virtual/phosphor-logging-callouts = "romulus-phosphor-logging-callouts-native"
diff --git a/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg
new file mode 100644
index 0000000..9f8fdb9
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg
@@ -0,0 +1,4 @@
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_MAX31785=y
+CONFIG_RTC_DRV_RV8803=y
+CONFIG_SENSORS_W83773G=y
diff --git a/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 0000000..fd0a149
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
+SRC_URI += "file://romulus.cfg"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb
new file mode 100644
index 0000000..e014da2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Romulus 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-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
new file mode 100644
index 0000000..1c36000
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+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
+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
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
new file mode 100644
index 0000000..424aa23
--- /dev/null
+++ b/meta-ibm/meta-romulus/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-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
new file mode 100644
index 0000000..98e585c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+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
+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
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
new file mode 100644
index 0000000..b7fb41e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Enable the AVS bus on VRMs
+Wants=vrm-control@%i.service
+After=vrm-control@%i.service
+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-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
new file mode 100644
index 0000000..75ec8ca
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+i2cset -y 4 0x28 0x2E 0x23 b # VDD/VCS 0
+i2cset -y 4 0x2B 0x2E 0x23 b # VDN 0
+i2cset -y 5 0x28 0x2E 0x23 b # VDD/VCS 1
+i2cset -y 5 0x2B 0x2E 0x23 b # VDN 1
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
new file mode 100644
index 0000000..156ef03
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Perform AVS bus workaround on VRMs
+Wants=op-power-start@.service
+After=op-power-start@.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-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb
new file mode 100644
index 0000000..e23bdd0
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Romulus VRM Overrides"
+DESCRIPTION = "Sets Rolumus 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-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
new file mode 100644
index 0000000..8701242
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -0,0 +1,137 @@
+#!/bin/bash
+# #########################################################
+# Script to run on Romulus 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-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service
new file mode 100644
index 0000000..22f0aeb
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service
@@ -0,0 +1,16 @@
+[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
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[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-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh
new file mode 100644
index 0000000..725e72f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+vrm-control.sh vdna=0.9 vdnb=0.9
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 0000000..a5ba3f3
--- /dev/null
+++ b/meta-ibm/meta-romulus/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-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 0000000..4db6f3a
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
new file mode 100644
index 0000000..ddf1556
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -0,0 +1,423 @@
+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/fan0
+          - /system/chassis/motherboard/fan1
+          - /system/chassis/motherboard/fan2
+    - name: zone0_ambient
+      description: Group of ambient temperature sensors for zone 0
+      type: /xyz/openbmc_project/sensors
+      members:
+          - /temperature/outlet
+    - 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
+          - /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_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
+          - /temperature/dimm8_temp
+          - /temperature/dimm9_temp
+          - /temperature/dimm10_temp
+          - /temperature/dimm11_temp
+          - /temperature/dimm12_temp
+          - /temperature/dimm13_temp
+          - /temperature/dimm14_temp
+          - /temperature/dimm15_temp
+
+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: 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
+
+events:
+    - name: default_fan_floor_on_service_fail
+      groups:
+          - name: zone0_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: high_speed_on_occ0_service_fail
+      groups:
+          - name: occ0_object
+            interface: org.open_power.OCC.Status
+            property:
+                name: OccActive
+                type: bool
+      matches:
+          - name: nameOwnerChanged
+      actions:
+          - name: call_actions_based_on_timer
+            timer:
+                delay: 5
+                type: oneshot
+            actions:
+                - name: set_speed_on_missing_owner
+                  speed:
+                      value: 255
+                      type: uint64_t
+    - name: high_speed_on_occ1_service_fail
+      groups:
+          - name: occ1_object
+            interface: org.open_power.OCC.Status
+            property:
+                name: OccActive
+                type: bool
+      matches:
+          - name: nameOwnerChanged
+      actions:
+          - name: call_actions_based_on_timer
+            timer:
+                delay: 5
+                type: oneshot
+            actions:
+                - name: set_speed_on_missing_owner
+                  speed:
+                      value: 255
+                      type: uint64_t
+    - name: missing_before_high_speed_air
+      groups:
+          - name: air_cooled_zone0_fans
+            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: 255
+                type: uint64_t
+    - name: fails_before_high_speed_air
+      groups:
+          - name: air_cooled_zone0_fans
+            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: 255
+                type: uint64_t
+    - name: set_air_cooled_speed_boundaries_based_on_ambient
+      groups:
+          - name: zone0_ambient
+            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:
+                    - 27000: 85
+                    - 32000: 112
+                    - 37000: 126
+                    - 40000: 141
+                type: std::map<int64_t, uint64_t>
+          - name: set_ceiling_from_average_sensor_value
+            map:
+                value:
+                    - 25000: 175
+                    - 27000: 255
+                type: std::map<int64_t, uint64_t>
+    - name: occ_active_speed_changes
+      precondition:
+          name: property_states_match
+          groups:
+              - name: occ0_object
+                interface: org.open_power.OCC.Status
+                property:
+                    name: OccActive
+                    type: bool
+                    value: true
+              - 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
+                groups:
+                    - name: zone0_cores
+                      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: 73000
+                          type: int64_t
+                      factor:
+                          value: 1000
+                          type: int64_t
+                      delta:
+                          value: 11
+                          type: uint64_t
+                    - name: set_net_decrease_speed
+                      property:
+                          value: 70000
+                          type: int64_t
+                      factor:
+                          value: 1000
+                          type: int64_t
+                      delta:
+                          value: 11
+                          type: uint64_t
+                timer:
+                    interval: 5
+              - name: speed_changes_based_on_dimm_temps
+                groups:
+                    - name: zone0_dimms
+                      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: 6
+                          type: uint64_t
+                    - name: set_net_decrease_speed
+                      property:
+                          value: 61000
+                          type: int64_t
+                      factor:
+                          value: 1000
+                          type: int64_t
+                      delta:
+                          value: 6
+                          type: uint64_t
+                timer:
+                    interval: 5
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml
new file mode 100644
index 0000000..f910e62
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml
@@ -0,0 +1,16 @@
+fans:
+  - inventory: /system/chassis/motherboard/fan0
+    cooling_zone: 0
+    sensors:
+      - fan0
+    target_interface: xyz.openbmc_project.Control.FanPwm
+  - inventory: /system/chassis/motherboard/fan1
+    cooling_zone: 0
+    sensors:
+      - fan1
+    target_interface: xyz.openbmc_project.Control.FanPwm
+  - inventory: /system/chassis/motherboard/fan2
+    cooling_zone: 0
+    sensors:
+      - fan2
+    target_interface: xyz.openbmc_project.Control.FanPwm
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
new file mode 100644
index 0000000..7dc99b6
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
@@ -0,0 +1,9 @@
+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
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
new file mode 100644
index 0000000..6d4804d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
new file mode 100644
index 0000000..91df5c2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
@@ -0,0 +1,13 @@
+manager_configuration:
+  power_on_delay: 20
+
+zone_configuration:
+
+#Air cooled zones
+- zone_conditions:
+  zones:
+    - zone: 0
+      full_speed: 255
+      default_floor: 195
+      increase_delay: 5
+      decrease_interval: 30
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
new file mode 100644
index 0000000..445a111
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
@@ -0,0 +1,33 @@
+fans:
+  - inventory: /system/chassis/motherboard/fan0
+    allowed_out_of_range_time: 30
+    deviation: 15
+    num_sensors_nonfunc_for_fan_nonfunc: 1
+    sensors:
+      - name: fan0
+        has_target: true
+        target_interface: xyz.openbmc_project.Control.FanPwm
+        factor: 21
+        offset: 1600
+
+  - inventory: /system/chassis/motherboard/fan1
+    allowed_out_of_range_time: 30
+    deviation: 15
+    num_sensors_nonfunc_for_fan_nonfunc: 1
+    sensors:
+      - name: fan1
+        has_target: true
+        target_interface: xyz.openbmc_project.Control.FanPwm
+        factor: 21
+        offset: 1600
+
+  - inventory: /system/chassis/motherboard/fan2
+    allowed_out_of_range_time: 30
+    deviation: 15
+    num_sensors_nonfunc_for_fan_nonfunc: 1
+    sensors:
+      - name: fan2
+        has_target: true
+        target_interface: xyz.openbmc_project.Control.FanPwm
+        factor: 21
+        offset: 1600
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml
new file mode 100644
index 0000000..5acb91f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml
@@ -0,0 +1,20 @@
+- name: fan0
+  path: /system/chassis/motherboard/fan0
+  methods:
+    - type: tach
+      sensors:
+        - fan0
+
+- name: fan1
+  path: /system/chassis/motherboard/fan1
+  methods:
+    - type: tach
+      sensors:
+        - fan1
+
+- name: fan2
+  path: /system/chassis/motherboard/fan2
+  methods:
+    - type: tach
+      sensors:
+        - fan2
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend
new file mode 100644
index 0000000..86ed1d4
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend
@@ -0,0 +1,22 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+
+# Package configuration
+FAN_PACKAGES += " \
+        phosphor-cooling-type \
+"
+
+PACKAGECONFIG += "cooling-type"
+
+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')}"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf
new file mode 100644
index 0000000..21fcfcb
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf
@@ -0,0 +1,3 @@
+OBJPATH="--path=/system/chassis"
+AIR="--air"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service
new file mode 100644
index 0000000..7452b91
--- /dev/null
+++ b/meta-ibm/meta-romulus/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}}
+SyslogIdentifier=phosphor-cooling-type
+
+[Install]
+RequiredBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend
new file mode 100644
index 0000000..c92b1a8
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG_append = " verify_signature"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
new file mode 100644
index 0000000..7267ee3
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Romulus ID Button pressed application"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+DEPENDS += "virtual/obmc-gpio-monitor"
+RDEPENDS_${PN} += "virtual/obmc-gpio-monitor"
+
+S = "${WORKDIR}"
+SRC_URI += "file://toggle_identify_led.sh"
+
+do_install() {
+        install -d ${D}${bindir}
+        install -m 0755 ${WORKDIR}/toggle_identify_led.sh \
+            ${D}${bindir}/toggle_identify_led.sh
+}
+
+SYSTEMD_ENVIRONMENT_FILE_${PN} +="obmc/gpio/id_button"
+
+ID_BUTTON_SERVICE = "id_button"
+
+TMPL = "phosphor-gpio-monitor@.service"
+INSTFMT = "phosphor-gpio-monitor@{0}.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "id-button-pressed.service"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'ID_BUTTON_SERVICE')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
new file mode 100644
index 0000000..f633fc3
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=ID Button Pressed Service
+Wants=mapper-wait@-xyz-openbmc_project-led-groups.service
+After=mapper-wait@-xyz-openbmc_project-led-groups.service
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env toggle_identify_led.sh
+SyslogIdentifier=id-button
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
new file mode 100644
index 0000000..b196357
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=135
+POLARITY=1
+TARGET=id-button-pressed.service
+EXTRA_ARGS=--continue
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
new file mode 100755
index 0000000..eec96d3
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Toggle the state of identify LED Group
+
+SERVICE="xyz.openbmc_project.LED.GroupManager"
+INTERFACE="xyz.openbmc_project.Led.Group"
+PROPERTY="Asserted"
+
+# Get current state
+object=$(busctl tree $SERVICE --list | grep identify)
+state=$(busctl get-property $SERVICE $object $INTERFACE $PROPERTY \
+	  |  awk '{print $NF;}')
+
+if [ "$state" == "false" ]; then
+    target='true'
+else
+    target='false'
+fi
+
+# Set target state
+busctl set-property $SERVICE $object $INTERFACE $PROPERTY b $target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend
new file mode 100644
index 0000000..4cac490
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend
@@ -0,0 +1,3 @@
+RDEPENDS_${PN} += 'avsbus-control'
+RDEPENDS_${PN} += 'vrm-control'
+RDEPENDS_${PN}_remove += "p9-vcs-workaround"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 0000000..772685d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd liberation-fonts uart-render-controller"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml
new file mode 100644
index 0000000..de2e814
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/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-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml
new file mode 100755
index 0000000..9a5189a
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml
@@ -0,0 +1,340 @@
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0:
+  sensorID: 0x0B
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1:
+  sensorID: 0x0C
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10:
+  sensorID: 0x15
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11:
+  sensorID: 0x16
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12:
+  sensorID: 0x17
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13:
+  sensorID: 0x18
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14:
+  sensorID: 0x19
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15:
+  sensorID: 0x1A
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2:
+  sensorID: 0x0D
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3:
+  sensorID: 0x0E
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4:
+  sensorID: 0x0F
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5:
+  sensorID: 0x10
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6:
+  sensorID: 0x11
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7:
+  sensorID: 0x12
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8:
+  sensorID: 0x13
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9:
+  sensorID: 0x14
+  sensorType: 0x0C
+  eventReadingType: 0x6F
+  offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0:
+  sensorID: 0x08
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0:
+  sensorID: 0x2B
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1:
+  sensorID: 0x2C
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2:
+  sensorID: 0x2D
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3:
+  sensorID: 0x2E
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4:
+  sensorID: 0x2F
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5:
+  sensorID: 0x30
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6:
+  sensorID: 0x31
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7:
+  sensorID: 0x32
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8:
+  sensorID: 0x33
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9:
+  sensorID: 0x34
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10:
+  sensorID: 0x35
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11:
+  sensorID: 0x36
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12:
+  sensorID: 0x37
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13:
+  sensorID: 0x38
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14:
+  sensorID: 0x39
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15:
+  sensorID: 0x3A
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16:
+  sensorID: 0x3B
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17:
+  sensorID: 0x3C
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18:
+  sensorID: 0x3D
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19:
+  sensorID: 0x3E
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20:
+  sensorID: 0x3F
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21:
+  sensorID: 0x40
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22:
+  sensorID: 0x41
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23:
+  sensorID: 0x42
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1:
+  sensorID: 0x09
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0:
+  sensorID: 0x43
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1:
+  sensorID: 0x44
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2:
+  sensorID: 0x45
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3:
+  sensorID: 0x46
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4:
+  sensorID: 0x47
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5:
+  sensorID: 0x48
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6:
+  sensorID: 0x49
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7:
+  sensorID: 0x4A
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8:
+  sensorID: 0x4B
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9:
+  sensorID: 0x4C
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10:
+  sensorID: 0x4D
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11:
+  sensorID: 0x4E
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12:
+  sensorID: 0x4F
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13:
+  sensorID: 0x50
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14:
+  sensorID: 0x51
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15:
+  sensorID: 0x52
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16:
+  sensorID: 0x53
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17:
+  sensorID: 0x54
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18:
+  sensorID: 0x55
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19:
+  sensorID: 0x56
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20:
+  sensorID: 0x57
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21:
+  sensorID: 0x58
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22:
+  sensorID: 0x59
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23:
+  sensorID: 0x5A
+  sensorType: 0x07
+  eventReadingType: 0x6F
+  offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard:
+  sensorID: 0x8C
+  sensorType: 0xC7
+  eventReadingType: 0x03
+  offset: 0x00
+/xyz/openbmc_project/inventory/system:
+  sensorID: 0x90
+  sensorType: 0x12
+  eventReadingType: 0x6F
+  offset: 0x02
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
new file mode 100644
index 0000000..ae626ed
--- /dev/null
+++ b/meta-ibm/meta-romulus/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-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
new file mode 100644
index 0000000..5973689
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
@@ -0,0 +1,27 @@
+50:
+  /system/chassis/motherboard/fan0:
+    entityID: 29
+    entityInstance: 1
+    interfaces:
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Product Name
+          IPMIFruSection: Product
+51:
+  /system/chassis/motherboard/fan1:
+    entityID: 29
+    entityInstance: 2
+    interfaces:
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Product Name
+          IPMIFruSection: Product
+52:
+  /system/chassis/motherboard/fan2:
+    entityID: 29
+    entityInstance: 3
+    interfaces:
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Product Name
+          IPMIFruSection: Product
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
new file mode 100644
index 0000000..d3f8431
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_append_romulus := ":${THISDIR}/${PN}"
+SRC_URI_append_romulus = " \
+    file://channel.yaml \
+    "
+
+EXTRA_OECONF_append_romulus = " \
+    CHANNEL_YAML_GEN=${WORKDIR}/channel.yaml \
+    "
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
new file mode 100644
index 0000000..627f496
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
@@ -0,0 +1,4 @@
+# Channel Number (must be unique) is the key
+1:
+  # ifName the ethernet device name (used in the dbus path)
+  ifName: eth0
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
new file mode 100644
index 0000000..72d991c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
new file mode 100755
index 0000000..1938135
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
@@ -0,0 +1,3560 @@
+2:
+  entityID: 34
+  entityInstance: 1
+  interfaces:
+    xyz.openbmc_project.State.Boot.Progress:
+      BootProgress:
+        Offsets:
+          0:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+            type: string
+          1:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+            type: string
+          3:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+            type: string
+          7:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+            type: string
+          19:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+            type: string
+          20:
+            set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+            type: string
+  mutability: Mutability::Write|Mutability::Read
+  path: /xyz/openbmc_project/state/host0
+  readingType: eventdata2
+  sensorNamePattern: nameProperty
+  sensorReadingType: 111
+  sensorType: 15
+  serviceInterface: org.freedesktop.DBus.Properties
+3:
+  entityID: 210
+  entityInstance: 1
+  interfaces:
+    org.open_power.OCC.Status:
+      OccActive:
+        Offsets:
+          0:
+            assert: false
+            deassert: true
+            type: bool
+          1:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /org/open_power/control/occ0
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 9
+  sensorType: 7
+  serviceInterface: org.freedesktop.DBus.Properties
+4:
+  entityID: 210
+  entityInstance: 2
+  interfaces:
+    org.open_power.OCC.Status:
+      OccActive:
+        Offsets:
+          0:
+            assert: false
+            deassert: true
+            type: bool
+          1:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /org/open_power/control/occ1
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 9
+  sensorType: 7
+  serviceInterface: org.freedesktop.DBus.Properties
+8:
+  entityID: 3
+  entityInstance: 1
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+9:
+  entityID: 3
+  entityInstance: 2
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+11:
+  entityID: 32
+  entityInstance: 1
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm0
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+12:
+  entityID: 32
+  entityInstance: 2
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm1
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+13:
+  entityID: 32
+  entityInstance: 3
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm2
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+14:
+  entityID: 32
+  entityInstance: 4
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm3
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+15:
+  entityID: 32
+  entityInstance: 5
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm4
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+16:
+  entityID: 32
+  entityInstance: 6
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm5
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+17:
+  entityID: 32
+  entityInstance: 7
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm6
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+18:
+  entityID: 32
+  entityInstance: 8
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm7
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+19:
+  entityID: 32
+  entityInstance: 9
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm8
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+20:
+  entityID: 32
+  entityInstance: 10
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm9
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+21:
+  entityID: 32
+  entityInstance: 11
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm10
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+22:
+  entityID: 32
+  entityInstance: 12
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm11
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+23:
+  entityID: 32
+  entityInstance: 13
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm12
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+24:
+  entityID: 32
+  entityInstance: 14
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm13
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+25:
+  entityID: 32
+  entityInstance: 15
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm14
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+26:
+  entityID: 32
+  entityInstance: 16
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          4:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          6:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/dimm15
+  readingType: assertion
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 111
+  sensorType: 12
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+27:
+  bExp: 0
+  entityID: 32
+  entityInstance: 17
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm0_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+28:
+  bExp: 0
+  entityID: 32
+  entityInstance: 18
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm1_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+29:
+  bExp: 0
+  entityID: 32
+  entityInstance: 25
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm2_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+30:
+  bExp: 0
+  entityID: 32
+  entityInstance: 26
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm3_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+31:
+  bExp: 0
+  entityID: 32
+  entityInstance: 27
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm4_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+32:
+  bExp: 0
+  entityID: 32
+  entityInstance: 28
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm5_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+33:
+  bExp: 0
+  entityID: 32
+  entityInstance: 29
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm6_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+34:
+  bExp: 0
+  entityID: 32
+  entityInstance: 30
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm7_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+35:
+  bExp: 0
+  entityID: 32
+  entityInstance: 31
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm8_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+36:
+  bExp: 0
+  entityID: 32
+  entityInstance: 32
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm9_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+37:
+  bExp: 0
+  entityID: 32
+  entityInstance: 19
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm10_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+38:
+  bExp: 0
+  entityID: 32
+  entityInstance: 20
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm11_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+39:
+  bExp: 0
+  entityID: 32
+  entityInstance: 21
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm12_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+40:
+  bExp: 0
+  entityID: 32
+  entityInstance: 22
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm13_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+41:
+  bExp: 0
+  entityID: 32
+  entityInstance: 23
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm14_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+42:
+  bExp: 0
+  entityID: 32
+  entityInstance: 24
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/dimm15_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+43:
+  entityID: 208
+  entityInstance: 1
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core0
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+44:
+  entityID: 208
+  entityInstance: 2
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core1
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+45:
+  entityID: 208
+  entityInstance: 3
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core2
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+46:
+  entityID: 208
+  entityInstance: 4
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core3
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+47:
+  entityID: 208
+  entityInstance: 5
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core4
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+48:
+  entityID: 208
+  entityInstance: 6
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core5
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+49:
+  entityID: 208
+  entityInstance: 7
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core6
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+50:
+  entityID: 208
+  entityInstance: 8
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core7
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+51:
+  entityID: 208
+  entityInstance: 9
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core8
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+52:
+  entityID: 208
+  entityInstance: 10
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core9
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+53:
+  entityID: 208
+  entityInstance: 11
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core10
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+54:
+  entityID: 208
+  entityInstance: 12
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core11
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+55:
+  entityID: 208
+  entityInstance: 13
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core12
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+56:
+  entityID: 208
+  entityInstance: 14
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core13
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+57:
+  entityID: 208
+  entityInstance: 15
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core14
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+58:
+  entityID: 208
+  entityInstance: 16
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core15
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+59:
+  entityID: 208
+  entityInstance: 17
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core16
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+60:
+  entityID: 208
+  entityInstance: 18
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core17
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+61:
+  entityID: 208
+  entityInstance: 19
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core18
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+62:
+  entityID: 208
+  entityInstance: 20
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core19
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+63:
+  entityID: 208
+  entityInstance: 21
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core20
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+64:
+  entityID: 208
+  entityInstance: 22
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core21
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+65:
+  entityID: 208
+  entityInstance: 23
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core22
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+66:
+  entityID: 208
+  entityInstance: 24
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu0/core23
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+67:
+  entityID: 208
+  entityInstance: 25
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core0
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+68:
+  entityID: 208
+  entityInstance: 26
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core1
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+69:
+  entityID: 208
+  entityInstance: 27
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core2
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+70:
+  entityID: 208
+  entityInstance: 28
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core3
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+71:
+  entityID: 208
+  entityInstance: 29
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core4
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+72:
+  entityID: 208
+  entityInstance: 30
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core5
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+73:
+  entityID: 208
+  entityInstance: 31
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core6
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+74:
+  entityID: 208
+  entityInstance: 32
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core7
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+75:
+  entityID: 208
+  entityInstance: 33
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core8
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+76:
+  entityID: 208
+  entityInstance: 34
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core9
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+77:
+  entityID: 208
+  entityInstance: 35
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core10
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+78:
+  entityID: 208
+  entityInstance: 36
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core11
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+79:
+  entityID: 208
+  entityInstance: 37
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core12
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+80:
+  entityID: 208
+  entityInstance: 38
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core13
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+81:
+  entityID: 208
+  entityInstance: 39
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core14
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+82:
+  entityID: 208
+  entityInstance: 40
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core15
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+83:
+  entityID: 208
+  entityInstance: 41
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core16
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+84:
+  entityID: 208
+  entityInstance: 42
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core17
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+85:
+  entityID: 208
+  entityInstance: 43
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core18
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+86:
+  entityID: 208
+  entityInstance: 44
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core19
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+87:
+  entityID: 208
+  entityInstance: 45
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core20
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+88:
+  entityID: 208
+  entityInstance: 46
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core21
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+89:
+  entityID: 208
+  entityInstance: 47
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core22
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+90:
+  entityID: 208
+  entityInstance: 48
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          7:
+            assert: true
+            deassert: false
+            skipOn: deassert
+            type: bool
+    xyz.openbmc_project.State.Decorator.OperationalStatus:
+      Functional:
+        Offsets:
+          8:
+            assert: false
+            deassert: true
+            type: bool
+        Prereqs:
+          7:
+            assert: true
+            deassert: false
+            type: bool
+  mutability: Mutability::Write|Mutability::Read
+  path: /system/chassis/motherboard/cpu1/core23
+  readingType: assertion
+  sensorNamePattern: nameParentLeaf
+  sensorReadingType: 111
+  sensorType: 7
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+91:
+  bExp: 0
+  entityID: 208
+  entityInstance: 49
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+92:
+  bExp: 0
+  entityID: 208
+  entityInstance: 50
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+93:
+  bExp: 0
+  entityID: 208
+  entityInstance: 51
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+94:
+  bExp: 0
+  entityID: 208
+  entityInstance: 52
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+95:
+  bExp: 0
+  entityID: 208
+  entityInstance: 53
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+96:
+  bExp: 0
+  entityID: 208
+  entityInstance: 54
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+97:
+  bExp: 0
+  entityID: 208
+  entityInstance: 55
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+98:
+  bExp: 0
+  entityID: 208
+  entityInstance: 56
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+99:
+  bExp: 0
+  entityID: 208
+  entityInstance: 57
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+100:
+  bExp: 0
+  entityID: 208
+  entityInstance: 58
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+101:
+  bExp: 0
+  entityID: 208
+  entityInstance: 59
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+102:
+  bExp: 0
+  entityID: 208
+  entityInstance: 60
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+103:
+  bExp: 0
+  entityID: 208
+  entityInstance: 61
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+104:
+  bExp: 0
+  entityID: 208
+  entityInstance: 62
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+105:
+  bExp: 0
+  entityID: 208
+  entityInstance: 63
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+106:
+  bExp: 0
+  entityID: 208
+  entityInstance: 64
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+107:
+  bExp: 0
+  entityID: 208
+  entityInstance: 65
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+108:
+  bExp: 0
+  entityID: 208
+  entityInstance: 66
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+109:
+  bExp: 0
+  entityID: 208
+  entityInstance: 67
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+110:
+  bExp: 0
+  entityID: 208
+  entityInstance: 68
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+111:
+  bExp: 0
+  entityID: 208
+  entityInstance: 69
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+112:
+  bExp: 0
+  entityID: 208
+  entityInstance: 70
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+113:
+  bExp: 0
+  entityID: 208
+  entityInstance: 71
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+114:
+  bExp: 0
+  entityID: 208
+  entityInstance: 72
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+115:
+  bExp: 0
+  entityID: 208
+  entityInstance: 73
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+116:
+  bExp: 0
+  entityID: 208
+  entityInstance: 74
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+117:
+  bExp: 0
+  entityID: 208
+  entityInstance: 75
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+118:
+  bExp: 0
+  entityID: 208
+  entityInstance: 76
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+119:
+  bExp: 0
+  entityID: 208
+  entityInstance: 77
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+120:
+  bExp: 0
+  entityID: 208
+  entityInstance: 78
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+121:
+  bExp: 0
+  entityID: 208
+  entityInstance: 79
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+122:
+  bExp: 0
+  entityID: 208
+  entityInstance: 80
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+123:
+  bExp: 0
+  entityID: 208
+  entityInstance: 81
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+124:
+  bExp: 0
+  entityID: 208
+  entityInstance: 82
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+125:
+  bExp: 0
+  entityID: 208
+  entityInstance: 83
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+126:
+  bExp: 0
+  entityID: 208
+  entityInstance: 84
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+127:
+  bExp: 0
+  entityID: 208
+  entityInstance: 85
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+128:
+  bExp: 0
+  entityID: 208
+  entityInstance: 86
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+129:
+  bExp: 0
+  entityID: 208
+  entityInstance: 87
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+130:
+  bExp: 0
+  entityID: 208
+  entityInstance: 88
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+131:
+  bExp: 0
+  entityID: 208
+  entityInstance: 89
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+132:
+  bExp: 0
+  entityID: 208
+  entityInstance: 90
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+133:
+  bExp: 0
+  entityID: 208
+  entityInstance: 91
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+134:
+  bExp: 0
+  entityID: 208
+  entityInstance: 92
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+135:
+  bExp: 0
+  entityID: 208
+  entityInstance: 93
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+136:
+  bExp: 0
+  entityID: 208
+  entityInstance: 94
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+137:
+  bExp: 0
+  entityID: 208
+  entityInstance: 95
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+138:
+  bExp: 0
+  entityID: 208
+  entityInstance: 96
+  interfaces:
+    xyz.openbmc_project.Sensor.Value:
+      Value:
+        Offsets:
+          255:
+            type: int64_t
+  multiplierM: 1
+  mutability: Mutability::Write|Mutability::Read
+  offsetB: -127
+  path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+  rExp: 0
+  readingType: readingData
+  scale: -3
+  sensorNamePattern: nameLeaf
+  sensorReadingType: 1
+  sensorType: 1
+  serviceInterface: org.freedesktop.DBus.Properties
+  unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+139:
+  entityID: 34
+  entityInstance: 2
+  interfaces:
+    xyz.openbmc_project.Control.Boot.RebootAttempts:
+      AttemptsLeft:
+        Offsets:
+          255:
+            type: uint32_t
+  mutability: Mutability::Write|Mutability::Read
+  path: /xyz/openbmc_project/state/host0
+  readingType: readingAssertion
+  sensorNamePattern: nameProperty
+  sensorReadingType: 111
+  sensorType: 195
+  serviceInterface: org.freedesktop.DBus.Properties
+145:
+  entityID: 35
+  entityInstance: 1
+  interfaces:
+    xyz.openbmc_project.State.OperatingSystem.Status:
+      OperatingSystemState:
+        Offsets:
+          1:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+            type: string
+          2:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+            type: string
+          3:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+            type: string
+          4:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+            type: string
+          5:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+            type: string
+          6:
+            assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+            type: string
+  mutability: Mutability::Write|Mutability::Read
+  path: /xyz/openbmc_project/state/host0
+  readingType: assertion
+  sensorNamePattern: nameProperty
+  sensorReadingType: 111
+  sensorType: 31
+  serviceInterface: org.freedesktop.DBus.Properties
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb
new file mode 100644
index 0000000..5551200
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Romulus inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+        DEST=${D}${config_datadir}
+        install -d ${DEST}
+        install config.yaml ${DEST}
+}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb
new file mode 100644
index 0000000..c418498
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Romulus 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-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb
new file mode 100644
index 0000000..93907c8
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Inventory to Sensor config for Romulus"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-ipmi-inventory-sel"
+
+SRC_URI += "file://sel-config.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+        DEST=${D}${sensor_datadir}
+        install -d ${DEST}
+        install sel-config.yaml ${DEST}/invsensor.yaml
+}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb
new file mode 100644
index 0000000..3c7adaa
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Phosphor LED Group Management for Romulus"
+PR = "r1"
+
+inherit native
+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-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml
new file mode 100755
index 0000000..b2e96c2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml
@@ -0,0 +1,335 @@
+bmc_booted:
+    power:
+        Action: 'Blink'
+        DutyOn: 50
+        Period: 1000
+        Priority: 'On'
+
+power_on:
+    power:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'On'
+
+enclosure_fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+
+enclosure_identify:
+    identify:
+        Action: 'Blink'
+        DutyOn: 50
+        Period: 1000
+
+# The Op Panel on the Romulus 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
+        Priority: 'Blink'
+    identify:
+        Action: 'On'
+
+# All kinds of faults using the same action as enclosure_fault
+Fan0Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+Fan1Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+Fan2Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+bmcFault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core0Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core1Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core2Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core3Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core4Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core5Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core6Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core7Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core8Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core9Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core10Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core11Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core12Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core13Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core14Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core15Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core16Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core17Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core18Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core19Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core20Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core21Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core22Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+core23Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+cpu0Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+cpu1Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm0Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm1Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm2Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm3Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm4Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm5Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm6Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm7Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm8Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm9Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm10Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm11Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm12Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm13Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm14Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+dimm15Fault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+motherboardFault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+occFault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
+systemFault:
+    fault:
+        Action: 'On'
+        DutyOn: 50
+        Period: 0
+        Priority: 'Blink'
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml b/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml
new file mode 100644
index 0000000..02bb3d8
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml
@@ -0,0 +1,5 @@
+# TODO: Add i2c devices like
+# /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052: /system/chassis/motherboard
+/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw: /system/chassis/motherboard/cpu0
+/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/raw: /system/chassis/motherboard/cpu1
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb
new file mode 100644
index 0000000..3752139
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Romulus inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-logging
+
+SRC_URI += "file://callouts.yaml"
+
+PROVIDES += "virtual/phosphor-logging-callouts"
+
+S = "${WORKDIR}"
+
+do_install() {
+        DEST=${D}${callouts_datadir}
+        install -d ${DEST}
+        install callouts.yaml ${DEST}
+}
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend
new file mode 100644
index 0000000..8b6248a
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend
@@ -0,0 +1 @@
+MBOXD_FLASH_SIZE = "64M"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 0000000..ea1a7e3
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS_${PN}-inventory += " openpower-occ-control phosphor-cooling-type id-button"
+RDEPENDS_${PN}-extras += " phosphor-webui phosphor-image-signing"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
new file mode 100644
index 0000000..536d797
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -0,0 +1,23 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append_romulus = " --enable-negative-errno-on-fail"
+
+CHIPS = " \
+        i2c@1e78a000/i2c-bus@440/w83773g@4c \
+        pwm-tacho-controller@1e786000 \
+        "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"
+
+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 \
+       "
+
+OCCSFMT = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf"
+OCCITEMS = "${@compose_list(d, 'OCCSFMT', 'OCCS')}"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'OCCITEMS')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
new file mode 100644
index 0000000..86a8026
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
@@ -0,0 +1,17 @@
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
+
+LABEL_temp2 = "inlet_cpu"
+WARNHI_temp2 = "60000"
+WARNLO_temp2 = "0"
+CRITHI_temp2 = "70000"
+CRITLO_temp2 = "0"
+
+LABEL_temp3 = "inlet_io"
+WARNHI_temp3 = "60000"
+WARNLO_temp3 = "0"
+CRITHI_temp3 = "70000"
+CRITLO_temp3 = "0"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
new file mode 100644
index 0000000..374115c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
@@ -0,0 +1,8 @@
+# Romulus has 7 fan ports but only 3 are used
+LABEL_fan9 = "fan0"
+LABEL_fan11 = "fan1"
+LABEL_fan13 = "fan2"
+
+PWM_TARGET_fan9 = "1"
+PWM_TARGET_fan11 = "2"
+PWM_TARGET_fan13 = "1"
diff --git a/meta-ibm/meta-romulus/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-ibm/meta-romulus/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 0000000..792ae09
--- /dev/null
+++ b/meta-ibm/meta-romulus/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,67 @@
+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"
+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_power2 = "p0_power"
+LABEL_power3 = "p0_vdd_power"
+LABEL_power4 = "p0_vdn_power"
diff --git a/meta-ibm/meta-romulus/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-ibm/meta-romulus/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 0000000..383c70d
--- /dev/null
+++ b/meta-ibm/meta-romulus/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,67 @@
+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"
+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_power2 = "p1_power"
+LABEL_power3 = "p1_vdd_power"
+LABEL_power4 = "p1_vdn_power"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend
new file mode 100644
index 0000000..4db6f3a
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf
new file mode 100644
index 0000000..ad50cf6
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf
@@ -0,0 +1,3 @@
+# Sleep 8 seconds on Romulus to make sure the checkstop status on
+# CPU is cleared. See https://github.com/openbmc/openbmc/issues/3330
+REBOOT_DELAY=8
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb b/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb
new file mode 100644
index 0000000..6abc16b
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb
@@ -0,0 +1,5 @@
+SUMMARY = "Romulus board wiring"
+DESCRIPTION = "Board wiring information for the Romulus OpenPOWER system."
+PR = "r1"
+
+inherit config-in-skeleton
diff --git a/meta-ibm/meta-romulus/recipes.txt b/meta-ibm/meta-romulus/recipes.txt
new file mode 100644
index 0000000..3ec3f4a
--- /dev/null
+++ b/meta-ibm/meta-romulus/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