summaryrefslogtreecommitdiffstats
path: root/meta-phosphor/recipes-phosphor/ipmi
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-31 06:25:51 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-09-06 07:44:12 -0400
commitff075f6ee795a590b244d70a90cc312ba1f2d83d (patch)
treea617790bdbfdeef960665ba0242e1f0c93e5301a /meta-phosphor/recipes-phosphor/ipmi
parent3e4da38c127bb7e7641adc2fc41f4c33744cb918 (diff)
downloadtalos-openbmc-ff075f6ee795a590b244d70a90cc312ba1f2d83d.tar.gz
talos-openbmc-ff075f6ee795a590b244d70a90cc312ba1f2d83d.zip
meta-phosphor: Move layer content from common/
Adopt a more conventional directory hierarchy. meta-phosphor is still a _long_ way from suitable for hosting on yoctoproject.org but things like this don't help. (From meta-phosphor rev: 471cfcefa74b8c7ceb704cb670e6d915cf27c63b) Change-Id: I3f106b2f6cdc6cec734be28a6090800546f362eb Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-phosphor/recipes-phosphor/ipmi')
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt.bb26
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt/org.openbmc.HostIpmi.service12
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory-native.bb21
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory/channel.yaml6
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb40
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/cipher_list.json14
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_cap.json17
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json8
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json3
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-hostfw-config-example-native.bb19
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-example-native.bb20
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-mrw-native.bb29
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb23
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb29
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw/config.yaml31
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb22
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties/extra-properties.yaml11
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb19
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory/bmc-fru-config.yaml43
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-example-native.bb17
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-mrw-native.bb27
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb19
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory/fru-config-not-sent-by-host.yaml21
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb6
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist/phosphor-ipmi-fru-whitelist-native.conf2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.bb50
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc5
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc-read-eeprom@.service14
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.bb122
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc5
-rwxr-xr-xmeta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/merge_yamls.py59
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service21
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service14
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-hw-example.bb13
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb29
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw/config.yaml24
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb21
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel/config.yaml340
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs/org.openbmc.HostIpmi.service12
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb34
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net.bb25
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.service16
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.socket6
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb9
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb17
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config/config.yaml328
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb56
l---------meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw/merge_sensor_config.py1
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb22
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory/config.yaml2108
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-tool.bb36
52 files changed, 3874 insertions, 0 deletions
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt.bb
new file mode 100644
index 000000000..8138803c5
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Phosphor OpenBMC BT to DBUS"
+DESCRIPTION = "Phosphor OpenBMC BT to DBUS."
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+inherit autotools pkgconfig
+inherit obmc-phosphor-dbus-service
+
+DBUS_SERVICE_${PN} = "org.openbmc.HostIpmi.service"
+
+PROVIDES += "virtual/obmc-host-ipmi-hw"
+RPROVIDES_${PN} += "virtual-obmc-host-ipmi-hw"
+RRECOMMENDS_${PN} += "phosphor-ipmi-host"
+
+DEPENDS += "autoconf-archive-native"
+DEPENDS += "systemd"
+RDEPENDS_${PN} += "libsystemd"
+
+S = "${WORKDIR}/git"
+SRC_URI += "git://github.com/openbmc/btbridge"
+SRCREV="8fb36a936f9eb6662f0320d3c212995b8d9a7fca"
+
+# This is how linux-libc-headers says to include custom uapi headers
+CFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt/org.openbmc.HostIpmi.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt/org.openbmc.HostIpmi.service
new file mode 100644
index 000000000..f5abfb5ff
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt/org.openbmc.HostIpmi.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Phosphor IPMI BT DBus Bridge
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/env btbridged
+SyslogIdentifier=btbridged
+Type=dbus
+BusName={BUSNAME}
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory-native.bb
new file mode 100644
index 000000000..33c2aba90
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory-native.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Sample channel configuration for phosphor-host-ipmid"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-ipmi-channel-config"
+
+SRC_URI += "file://channel.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # This recipe is supposed to create an output yaml file with
+ # a sample output file.
+
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+ install channel.yaml ${DEST}/channel.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory/channel.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory/channel.yaml
new file mode 100644
index 000000000..819f25198
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-channel-inventory/channel.yaml
@@ -0,0 +1,6 @@
+# Channel Number (must be unique) is the key
+1:
+ # ifName the ethernet device name (used in the dbus path)
+ ifName: eth0
+2:
+ ifName: eth1
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb
new file mode 100644
index 000000000..933fd3b48
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Phosphor IPMI daemon configuration"
+PR = "r1"
+
+inherit obmc-phosphor-license
+inherit allarch
+
+SRC_URI = " \
+ file://cipher_list.json \
+ file://dcmi_cap.json \
+ file://dcmi_sensors.json \
+ file://dev_id.json \
+ file://power_reading.json \
+ "
+
+FILES_${PN} = " \
+ ${datadir}/ipmi-providers/cipher_list.json \
+ ${datadir}/ipmi-providers/dcmi_cap.json \
+ ${datadir}/ipmi-providers/dcmi_sensors.json \
+ ${datadir}/ipmi-providers/dev_id.json \
+ ${datadir}/ipmi-providers/power_reading.json \
+ "
+
+do_fetch[noexec] = "1"
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -d ${D}${datadir}/ipmi-providers
+ install -m 0644 -D ${WORKDIR}/cipher_list.json \
+ ${D}${datadir}/ipmi-providers/cipher_list.json
+ install -m 0644 -D ${WORKDIR}/dcmi_cap.json \
+ ${D}${datadir}/ipmi-providers/dcmi_cap.json
+ install -m 0644 -D ${WORKDIR}/dcmi_sensors.json \
+ ${D}${datadir}/ipmi-providers/dcmi_sensors.json
+ install -m 0644 -D ${WORKDIR}/dev_id.json \
+ ${D}${datadir}/ipmi-providers/dev_id.json
+ install -m 0644 -D ${WORKDIR}/power_reading.json \
+ ${D}${datadir}/ipmi-providers/power_reading.json
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/cipher_list.json b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/cipher_list.json
new file mode 100644
index 000000000..767fc708c
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/cipher_list.json
@@ -0,0 +1,14 @@
+{
+ "a":{
+ "cipher":3,
+ "authentication":1,
+ "integrity":1,
+ "confidentiality":1
+ },
+ "b":{
+ "cipher":17,
+ "authentication":3,
+ "integrity":4,
+ "confidentiality":1
+ }
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_cap.json b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_cap.json
new file mode 100644
index 000000000..2d8832081
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_cap.json
@@ -0,0 +1,17 @@
+{
+ "PowerManagement": 1,
+ "OOBSecondaryLan": 0,
+ "SerialTMODE": 0,
+ "InBandSystemInterfaceChannel": 1,
+ "SELAutoRollOver": 1,
+ "FlushEntireSELUponRollOver": 0,
+ "RecordLevelSELFlushUponRollOver": 0,
+ "NumberOfSELEntries": 200,
+ "TempMonitoringSamplingFreq":0,
+ "PowerMgmtDeviceSlaveAddress": 0,
+ "BMCChannelNumber": 0,
+ "DeviceRivision": 0,
+ "MandatoryPrimaryLanOOBSupport": 1,
+ "OptionalSecondaryLanOOBSupport": 255,
+ "OptionalSerialOOBMTMODECapability": 255
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json
new file mode 100644
index 000000000..502f6d162
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dcmi_sensors.json
@@ -0,0 +1,8 @@
+{
+ "inlet": [
+ ],
+ "baseboard": [
+ ],
+ "cpu": [
+ ]
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json
new file mode 100644
index 000000000..3440e0b2f
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/dev_id.json
@@ -0,0 +1,2 @@
+{"id": 0, "revision": 0, "addn_dev_support": 0,
+ "manuf_id": 0, "prod_id": 0, "aux": 0}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json
new file mode 100644
index 000000000..f3d051f6e
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-config/power_reading.json
@@ -0,0 +1,3 @@
+{
+ "path": ""
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-hostfw-config-example-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-hostfw-config-example-native.bb
new file mode 100644
index 000000000..aca1d0aab
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-hostfw-config-example-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Sample hostfw inventory map for phosphor-ipmi-fru"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-fru
+
+require phosphor-ipmi-fru.inc
+
+PROVIDES += "virtual/phosphor-ipmi-fru-hostfw-config"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ DEST=${D}${hostfw_datadir}
+ install -d ${DEST}
+
+ # TODO: copy example hostfw yaml to ${DEST}/config.yaml
+ # install fru-types.yaml ${DEST}/config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-example-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-example-native.bb
new file mode 100644
index 000000000..acd98355c
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-example-native.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Sample inventory map for phosphor-ipmi-fru"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-fru
+
+require phosphor-ipmi-fru.inc
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}/git"
+
+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 scripts/example.yaml ${DEST}/config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-mrw-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-mrw-native.bb
new file mode 100644
index 000000000..795c9b9c9
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-inventory-mrw-native.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Generate inventory map for phosphor-ipmi-fru from an MRW."
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-fru
+inherit mrw-xml
+
+require phosphor-ipmi-fru.inc
+
+DEPENDS += "mrw-native mrw-perl-tools-native"
+
+# TODO: remove this dependency after the MRW script
+# has been updated to not require the hostfw metadata.
+DEPENDS += "virtual/phosphor-ipmi-fru-hostfw-config"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}/git"
+do_install() {
+
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_ipmi_fru.pl \
+ -i ${mrw_datadir}/${MRW_XML} \
+ -m ${hostfw_datadir}/config.yaml \
+ -o ${DEST}/config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb
new file mode 100644
index 000000000..a44774ea1
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-merge-config-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "To merge the Host and BMC config files generated from MRW "
+DESCRIPTION = "Merge host provided FRU info config file, fru info config, \
+which is not sent by host config, and BMC accessible FRU info config \
+files generated by gen-ipmi-fru.pl into a single config file. \
+fru-gen parser parses the merged config file and generates cpp file"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+DEPENDS += "virtual/phosphor-ipmi-fru-read-inventory"
+DEPENDS += "virtual/phosphor-ipmi-fru-read-bmc-inventory"
+DEPENDS += "virtual/phosphor-ipmi-fru-read-not-sent-by-host-inventory"
+PROVIDES += "virtual/phosphor-ipmi-fru-merge-config"
+
+do_install_append() {
+ SRC=${config_datadir}
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+ cat ${SRC}/config.yaml ${SRC}/bmc-fru-config.yaml > ${DEST}/fru_config.yaml
+ cat ${SRC}/fru-config-not-sent-by-host.yaml >> ${DEST}/fru_config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb
new file mode 100644
index 000000000..0a1c8bd1d
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw-native.bb
@@ -0,0 +1,29 @@
+SUMMARY = "FRU properties config for ipmi-fru-parser"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-fru
+inherit mrw-xml
+
+SRC_URI += "file://config.yaml"
+
+DEPENDS += " \
+ mrw-native \
+ mrw-perl-tools-native \
+ "
+
+PROVIDES += "virtual/phosphor-ipmi-fru-properties"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${properties_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_fru_properties.pl \
+ -m ${mrw_datadir}/${MRW_XML} \
+ -c config.yaml \
+ -o ${DEST}/extra-properties.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw/config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw/config.yaml
new file mode 100644
index 000000000..ad5561000
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-mrw/config.yaml
@@ -0,0 +1,31 @@
+PROC:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+DIMM:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+SYS:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+NODE:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb
new file mode 100644
index 000000000..8040f889d
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties-native.bb
@@ -0,0 +1,22 @@
+SUMMARY = "FRU properties config for ipmi-fru-parser"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-fru
+
+SRC_URI += "file://extra-properties.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-properties"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # This recipe is supposed to create an output yaml file with
+ # FRU property values extracted from the MRW. This example recipe
+ # provides a sample output file.
+
+ DEST=${D}${properties_datadir}
+ install -d ${DEST}
+ install extra-properties.yaml ${DEST}
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties/extra-properties.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties/extra-properties.yaml
new file mode 100644
index 000000000..626ef33b8
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties/extra-properties.yaml
@@ -0,0 +1,11 @@
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb
new file mode 100644
index 000000000..2f845d524
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "BMC accesible FRU inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://bmc-fru-config.yaml"
+
+S = "${WORKDIR}"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-bmc-inventory"
+
+do_install_append() {
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+ install bmc-fru-config.yaml ${DEST}/bmc-fru-config.yaml
+}
+
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory/bmc-fru-config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory/bmc-fru-config.yaml
new file mode 100644
index 000000000..ac13efb44
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory/bmc-fru-config.yaml
@@ -0,0 +1,43 @@
+# A YAML similar to this sample would have to be generated, for eg with MRW
+# inputs and system configuration, to depict IPMI FRU information.
+#
+# This file maps phosphor dbus inventory properties to IPMI properties
+#
+# This YAML could help generate C++ code.
+# Format of the YAML:
+# Fruid:
+# Associated Fru paths
+# d-bus Interfaces
+# d-bus Properties
+# IPMI Fru mapping
+#5:
+# /system/chassis/motherboard/fan1:
+# xyz.openbmc_project.Inventory.Item:
+# PrettyName:
+# IPMIFruProperty: Product Name
+# IPMIFruSection: Product
+#6:
+# /system/chassis/motherboard/boxelder/bmc:
+# xyz.openbmc_project.Inventory.Item:
+# PrettyName:
+# IPMIFruProperty: Product Name
+# IPMIFruSection: Board
+# xyz.openbmc_project.Inventory.Decorator.Asset:
+# BuildDate:
+# IPMIFruProperty: Mfg Date
+# IPMIFruSection: Board
+# SerialNumber:
+# IPMIFruProperty: Serial Number
+# IPMIFruSection: Board
+# PartNumber:
+# IPMIFruProperty: Part Number
+# IPMIFruSection: Board
+# Manufacturer:
+# IPMIFruProperty: Manufacturer
+# IPMIFruSection: Board
+#7:
+# /system/chassis/motherboard/boxelder/bmc/ethernet:
+# xyz.openbmc_project.Inventory.Item:
+# PrettyName:
+# IPMIFruProperty: Product Name
+# IPMIFruSection: Product
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-example-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-example-native.bb
new file mode 100644
index 000000000..6031322f6
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-example-native.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Sample inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+
+require phosphor-ipmi-host.inc
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+ install scripts/fru-read-example.yaml ${DEST}/config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-mrw-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-mrw-native.bb
new file mode 100644
index 000000000..3c5e36fce
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-inventory-mrw-native.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Generate inventory map for phosphor-ipmi-host from a MRW."
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit mrw-xml
+
+require phosphor-ipmi-host.inc
+
+DEPENDS += "mrw-native mrw-perl-tools-native"
+
+DEPENDS += "virtual/phosphor-ipmi-fru-hostfw-config"
+PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_ipmi_fru.pl \
+ -i ${mrw_datadir}/${MRW_XML} \
+ -m ${hostfw_datadir}/config.yaml \
+ -o ${DEST}/config.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb
new file mode 100644
index 000000000..029e6a3b0
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "The inventory map of frus not sent by host for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://fru-config-not-sent-by-host.yaml"
+
+S = "${WORKDIR}"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-not-sent-by-host-inventory"
+
+do_install_append() {
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+ install fru-config-not-sent-by-host.yaml ${DEST}/fru-config-not-sent-by-host.yaml
+}
+
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory/fru-config-not-sent-by-host.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory/fru-config-not-sent-by-host.yaml
new file mode 100644
index 000000000..9fa1fed43
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory/fru-config-not-sent-by-host.yaml
@@ -0,0 +1,21 @@
+# A YAML similar to this sample would have to be generated, for eg with MRW
+# inputs and system configuration, to depict IPMI FRU information.
+#
+# This file maps phosphor dbus inventory properties to IPMI properties
+#
+# This YAML could help generate C++ code.
+# Format of the YAML:
+# Fruid:
+# Associated Fru paths
+# d-bus Interfaces
+# d-bus Properties
+# IPMI Fru mapping
+#20:
+# /system/chassis/motherboard/gv100card0:
+# entityID: 3
+# entityInstance: 1
+# interfaces:
+# xyz.openbmc_project.Inventory.Item:
+# PrettyName:
+# IPMIFruProperty: Board Name
+# IPMIFruSection: Board
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb
new file mode 100644
index 000000000..30c2443c3
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist-native.bb
@@ -0,0 +1,6 @@
+SUMMARY = "Whitelisted IPMI FRU Parser commands"
+DESCRIPTION = "Whitelisted IPMI FRU Parser commands for OpenBMC"
+
+inherit obmc-phosphor-license
+inherit native
+inherit phosphor-ipmi-host-whitelist \ No newline at end of file
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist/phosphor-ipmi-fru-whitelist-native.conf b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist/phosphor-ipmi-fru-whitelist-native.conf
new file mode 100644
index 000000000..365c3d952
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru-whitelist/phosphor-ipmi-fru-whitelist-native.conf
@@ -0,0 +1,2 @@
+#<NetFn>:<Command>
+0x0A:0x12 //<Storage>:<Write FRU Data> \ No newline at end of file
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.bb
new file mode 100644
index 000000000..251df427c
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Phosphor IPMI Inventory Plugin"
+DESCRIPTION = "A Phosphor IPMI plugin that updates inventory."
+PR = "r1"
+
+inherit autotools pkgconfig
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-ipmiprovider-symlink
+inherit phosphor-ipmi-fru
+inherit pythonnative
+
+require ${PN}.inc
+
+DEPENDS += " \
+ virtual/phosphor-ipmi-fru-hostfw-config\
+ virtual/phosphor-ipmi-fru-inventory \
+ virtual/phosphor-ipmi-fru-properties \
+ systemd \
+ sdbusplus \
+ python-mako-native \
+ python-pyyaml-native \
+ phosphor-ipmi-host \
+ phosphor-mapper \
+ autoconf-archive-native \
+ "
+
+RDEPENDS_${PN} += " \
+ sdbusplus \
+ "
+
+SYSTEMD_SERVICE_${PN} += "obmc-read-eeprom@.service"
+
+S = "${WORKDIR}/git"
+
+HOSTIPMI_PROVIDER_LIBRARY += "libstrgfnhandler.so"
+
+FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
+FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
+FILES_${PN}-dev_append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
+
+# TODO: Fix the the ipmi-fru-parser code generator to handle split
+# host firmware / inventory YAML and replace the OECONF below with:
+#
+# EXTRA_OECONF += "INVENTORY_YAML=${inventory_datadir}/config.yaml"
+# EXTRA_OECONF += "HOSTFW_YAML=${hostfw_datadir}/config.yaml"
+#
+# For now the generator requires them to already be combined so we have:
+EXTRA_OECONF = " \
+ YAML_GEN=${STAGING_DIR_NATIVE}${config_datadir}/config.yaml \
+ PROP_YAML=${STAGING_DIR_NATIVE}${properties_datadir}/extra-properties.yaml \
+ "
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc
new file mode 100644
index 000000000..0b348ba1a
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru.inc
@@ -0,0 +1,5 @@
+HOMEPAGE = "https://github.com/openbmc/ipmi-fru-parser"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7702f203b58979ebbc31bfaeb44f219c"
+SRC_URI += "git://github.com/openbmc/ipmi-fru-parser"
+SRCREV = "c19b813e79e71a6b66887434f1dc4468df1d88bf"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc-read-eeprom@.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc-read-eeprom@.service
new file mode 100644
index 000000000..4bae65d3f
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc-read-eeprom@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Read %I EEPROM
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+
+[Service]
+Restart=no
+Type=oneshot
+EnvironmentFile={envfiledir}/obmc/eeproms/%I
+ExecStart=/usr/bin/env phosphor-read-eeprom --eeprom $SYSFS_PATH --fruid $FRUID
+SyslogIdentifier=phosphor-read-eeprom
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.bb
new file mode 100644
index 000000000..7a2f7c1fd
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.bb
@@ -0,0 +1,122 @@
+SUMMARY = "Phosphor OpenBMC IPMI daemon"
+DESCRIPTION = "Phosphor OpenBMC IPMI router and plugin libraries"
+PR = "r1"
+
+RRECOMMENDS_${PN} += "packagegroup-obmc-ipmid-providers-libs"
+
+inherit autotools pkgconfig
+inherit obmc-phosphor-ipmiprovider-symlink
+inherit obmc-phosphor-license
+inherit obmc-phosphor-sdbus-service
+inherit obmc-phosphor-systemd
+inherit phosphor-ipmi-host
+inherit pythonnative
+
+def ipmi_whitelists(d):
+ whitelists = d.getVar(
+ 'VIRTUAL-RUNTIME_phosphor-ipmi-providers', True) or ''
+ whitelists = whitelists.split()
+ whitelists = [ '{}-whitelist-native'.format(x) for x in whitelists ]
+ return ' '.join(whitelists)
+
+DEPENDS += "autoconf-archive-native"
+DEPENDS += "nlohmann-json"
+DEPENDS += "obmc-targets"
+DEPENDS += "${@ipmi_whitelists(d)}"
+DEPENDS += "phosphor-dbus-interfaces"
+DEPENDS += "phosphor-logging"
+DEPENDS += "phosphor-mapper"
+DEPENDS += "sdbusplus"
+DEPENDS += "sdbus++-native"
+DEPENDS += "virtual/phosphor-ipmi-inventory-sel"
+DEPENDS += "virtual/phosphor-ipmi-fru-merge-config"
+DEPENDS += "virtual/phosphor-ipmi-sensor-inventory"
+DEPENDS += "virtual/phosphor-ipmi-channel-config"
+
+VIRTUAL-RUNTIME_ipmi-config ?= "phosphor-ipmi-config"
+
+RDEPENDS_${PN}-dev += "phosphor-logging"
+RDEPENDS_${PN}-dev += "phosphor-mapper-dev"
+RDEPENDS_${PN} += "clear-once"
+RDEPENDS_${PN} += "libmapper"
+RDEPENDS_${PN} += "network"
+RDEPENDS_${PN} += "phosphor-dbus-interfaces"
+RDEPENDS_${PN} += "phosphor-mapper"
+RDEPENDS_${PN} += "phosphor-time-manager"
+RDEPENDS_${PN} += "sdbusplus"
+RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_ipmi-config}"
+RDEPENDS_${PN} += "virtual/obmc-watchdog"
+
+SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service phosphor-ipmi-host.service"
+
+RRECOMMENDS_${PN} += "${VIRTUAL-RUNTIME_obmc-settings-mgmt}"
+
+
+require ${PN}.inc
+
+# Setup IPMI Whitelist Conf files
+WHITELIST_CONF = " \
+ ${STAGING_DATADIR_NATIVE}/phosphor-ipmi-host/*.conf \
+ ${S}/host-ipmid-whitelist.conf \
+ "
+EXTRA_OECONF = " \
+ WHITELIST_CONF="${WHITELIST_CONF}" \
+ SENSOR_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/sensor.yaml \
+ INVSENSOR_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/invsensor.yaml \
+ FRU_YAML_GEN=${STAGING_DIR_NATIVE}${config_datadir}/fru_config.yaml \
+ CHANNEL_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/channel.yaml \
+ POWER_READING_SENSOR=${datadir}/ipmi-providers/power_reading.json\
+ "
+
+S = "${WORKDIR}/git"
+
+SRC_URI += "file://merge_yamls.py "
+
+HOSTIPMI_PROVIDER_LIBRARY += "libipmi20.so"
+HOSTIPMI_PROVIDER_LIBRARY += "libsysintfcmds.so"
+
+NETIPMI_PROVIDER_LIBRARY += "libipmi20.so"
+
+FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
+FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
+FILES_${PN}_append = " ${libdir}/net-ipmid/lib*${SOLIBS}"
+FILES_${PN}-dev_append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
+
+# Soft Power Off
+# install the soft power off service in the host shutdown target
+SOFT_SVC = "xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
+SOFT_TGTFMT = "obmc-host-shutdown@{0}.target"
+SOFT_FMT = "../${SOFT_SVC}:${SOFT_TGTFMT}.requires/${SOFT_SVC}"
+SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'SOFT_FMT', 'OBMC_HOST_INSTANCES')}"
+
+#Collect all hardcoded sensor yamls from different recipes and
+#merge all of them with sensor.yaml.
+python do_merge_sensors () {
+ import subprocess
+
+ # TODO: Perform the merge in a temporary directory?
+ workdir = d.getVar('WORKDIR', True)
+ nativedir = d.getVar('STAGING_DIR_NATIVE', True)
+ sensorsdir = d.getVar('sensor_datadir', True)
+ sensorsdir = sensorsdir[1:]
+ sensorsdir = os.path.join(nativedir, sensorsdir)
+ cmd = []
+ cmd.append(os.path.join(workdir, 'merge_yamls.py'))
+ cmd.append(os.path.join(sensorsdir, 'sensor.yaml'))
+
+ if os.stat(os.path.join(sensorsdir, 'sensor.yaml')).st_size == 0:
+ return
+ fetch = bb.fetch2.Fetch([], d)
+ override_urls = [url for url in fetch.urls if url.endswith('.hardcoded.yaml')]
+ for url in override_urls:
+ bb.debug(2, 'Overriding with source: ' + url)
+ local_base = os.path.basename(fetch.localpath(url))
+ filename = os.path.join(workdir, local_base)
+ cmd.append(filename)
+
+ # Invoke the script and don't catch any resulting exception.
+ subprocess.check_call(cmd)
+}
+
+# python-pyyaml-native is installed by do_configure, so put this task after
+addtask merge_sensors after do_configure before do_compile
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
new file mode 100644
index 000000000..c6247fb5c
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
@@ -0,0 +1,5 @@
+HOMEPAGE = "http://github.com/openbmc/phosphor-host-ipmid"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
+SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid"
+SRCREV = "1e12112baf56f9a8ec6dbf7fb409c84f35fff1e8"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/merge_yamls.py b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/merge_yamls.py
new file mode 100755
index 000000000..5e6c4b5e6
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/merge_yamls.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+"""Copied from phosphor-settings-manager
+Loads a "target" YAML file and overwrites its values with values from
+"override" YAML files.
+
+Override files are processed in the order given.
+
+Usage:
+ merge_settings.py <target yaml> [override yamls]
+"""
+import sys
+import yaml
+import copy
+
+def dict_merge(target, source):
+ """Deep merge for dicts.
+
+ Works like dict.update() that recursively updates any dict values present in
+ both parameters.
+
+ Args:
+ target (dict): Values to be overwritten by corresponding values from
+ `source`.
+ source (dict): Overriding values. Not changed by call.
+
+ Returns:
+ `target` with values overwritten from those in `source` at any and all
+ levels of nested dicts.
+ """
+ if not isinstance(source, dict):
+ return source
+ for k, v in source.iteritems():
+ if k in target and isinstance(target[k], dict):
+ dict_merge(target[k], v)
+ else:
+ target[k] = copy.deepcopy(v)
+ return target
+
+if len(sys.argv) < 2:
+ sys.exit('Argument required: target yaml')
+
+if len(sys.argv) == 2:
+ # No overrides to handle
+ sys.exit(0)
+
+target_filename = sys.argv[1]
+with open(target_filename) as target_file:
+ data = yaml.safe_load(target_file)
+ print('Loaded target YAML file ' + target_filename)
+
+for override_filename in sys.argv[2:]:
+ with open(override_filename) as override_file:
+ override = yaml.safe_load(override_file)
+ dict_merge(data, override)
+ print('Merged override YAML file ' + override_filename)
+
+with open(target_filename, 'w') as target_file:
+ yaml.dump(data, target_file, default_flow_style=False)
+ print('Wrote merged target YAML file ' + target_filename)
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service
new file mode 100644
index 000000000..3f10e11db
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Phosphor Inband IPMI
+# TODO openbmc/openbmc#2059 - The wants/after below should be based on providers
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-boot.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-boot.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-boot-one_time.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-boot-one_time.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
+Wants=clear-once.service
+After=clear-once.service
+
+[Service]
+Restart=always
+ExecStart=/usr/bin/env ipmid
+SyslogIdentifier=ipmid
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service
new file mode 100644
index 000000000..600c86ac2
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Soft power off of the host
+Wants=mapper-wait@-org-openbmc-HostIpmi-1.service
+After=mapper-wait@-org-openbmc-HostIpmi-1.service
+Wants=obmc-host-stopping@0.target
+Before=obmc-host-stopping@0.target
+Conflicts=obmc-host-start@0.target
+ConditionPathExists=!/run/openbmc/host@0-request
+
+[Service]
+Restart=no
+ExecStart=/usr/bin/env phosphor-softpoweroff
+SyslogIdentifier=phosphor-softpoweroff
+Type=oneshot
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-hw-example.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-hw-example.bb
new file mode 100644
index 000000000..4639a9025
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-hw-example.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Phosphor OpenBMC host IPMI to DBUS Example"
+DESCRIPTION = "Phosphor OpenBMC host IPMI to DBUS example implementation."
+PR = "r1"
+
+RDEPENDS_${PN} += "python-subprocess python-dbus python-pygobject"
+RRECOMMENDS_${PN} += "phosphor-ipmi-host"
+
+inherit skeleton-python
+
+PROVIDES += "virtual/obmc-host-ipmi-hw"
+RPROVIDES_${PN} += "virtual-obmc-host-ipmi-hw"
+
+SKELETON_DIR = "pyipmitest"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb
new file mode 100644
index 000000000..f04d89f7d
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw-native.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Inventory to Sensor config for phosphor-host-ipmi"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+inherit mrw-xml
+
+SRC_URI += "file://config.yaml"
+
+DEPENDS += " \
+ mrw-native \
+ mrw-perl-tools-native \
+ "
+
+PROVIDES += "virtual/phosphor-ipmi-inventory-sel"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_ipmi_sel.pl \
+ -i ${mrw_datadir}/${MRW_XML} \
+ -m config.yaml \
+ -o ${DEST}/invsensor.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw/config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw/config.yaml
new file mode 100644
index 000000000..a6e5550d3
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-mrw/config.yaml
@@ -0,0 +1,24 @@
+# Maps the Entity ID to the interested Sensor Type & Offset
+0x01:
+ SensorType: 0x12
+ Offset: 0x02
+
+0x03:
+ SensorType: 0x07
+ Offset: 0x08
+
+0x07:
+ SensorType: 0xC7
+ Offset: 0x00
+
+0x20:
+ SensorType: 0x0C
+ Offset: 0x04
+
+0xD0:
+ SensorType: 0x07
+ Offset: 0x08
+
+0xD8:
+ SensorType: 0x17
+ Offset: 0x08
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb
new file mode 100644
index 000000000..272e53388
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel-native.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Inventory to Sensor config for non-mrw machines"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-ipmi-inventory-sel"
+
+SRC_URI += "file://config.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # This recipe would provide the sample inventory to sensor config
+ # mapping, for non-mrw machines.
+
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+ install config.yaml ${DEST}/invsensor.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel/config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel/config.yaml
new file mode 100644
index 000000000..c3b4ba186
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-inventory-sel/config.yaml
@@ -0,0 +1,340 @@
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0:
+ sensorID: 0xa6
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1:
+ sensorID: 0xa8
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10:
+ sensorID: 0xba
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11:
+ sensorID: 0xbc
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12:
+ sensorID: 0xbe
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13:
+ sensorID: 0xc0
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14:
+ sensorID: 0xc2
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15:
+ sensorID: 0xc4
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2:
+ sensorID: 0xaa
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3:
+ sensorID: 0xac
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4:
+ sensorID: 0xae
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5:
+ sensorID: 0xb0
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6:
+ sensorID: 0xb2
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7:
+ sensorID: 0xb4
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8:
+ sensorID: 0xb6
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9:
+ sensorID: 0xb8
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0:
+ sensorID: 0x5a
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0:
+ sensorID: 0x12
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1:
+ sensorID: 0x15
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2:
+ sensorID: 0x18
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3:
+ sensorID: 0x1b
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4:
+ sensorID: 0x1e
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5:
+ sensorID: 0x21
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6:
+ sensorID: 0x24
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7:
+ sensorID: 0x27
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8:
+ sensorID: 0x2a
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9:
+ sensorID: 0x2d
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10:
+ sensorID: 0x30
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11:
+ sensorID: 0x33
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12:
+ sensorID: 0x36
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13:
+ sensorID: 0x39
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14:
+ sensorID: 0x3c
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15:
+ sensorID: 0x3f
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16:
+ sensorID: 0x42
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17:
+ sensorID: 0x45
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18:
+ sensorID: 0x48
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19:
+ sensorID: 0x4b
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20:
+ sensorID: 0x4e
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21:
+ sensorID: 0x51
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22:
+ sensorID: 0x54
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23:
+ sensorID: 0x57
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1:
+ sensorID: 0xa4
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0:
+ sensorID: 0x5c
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1:
+ sensorID: 0x5f
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2:
+ sensorID: 0x62
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3:
+ sensorID: 0x65
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4:
+ sensorID: 0x68
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5:
+ sensorID: 0x6b
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6:
+ sensorID: 0x6e
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7:
+ sensorID: 0x71
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8:
+ sensorID: 0x74
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9:
+ sensorID: 0x77
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10:
+ sensorID: 0x7a
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11:
+ sensorID: 0x7d
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12:
+ sensorID: 0x80
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13:
+ sensorID: 0x83
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14:
+ sensorID: 0x86
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15:
+ sensorID: 0x89
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16:
+ sensorID: 0x8c
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17:
+ sensorID: 0x8f
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18:
+ sensorID: 0x92
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19:
+ sensorID: 0x95
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20:
+ sensorID: 0x98
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21:
+ sensorID: 0x9b
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22:
+ sensorID: 0x9e
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23:
+ sensorID: 0xa1
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard:
+ sensorID: 0x0c
+ sensorType: 0xC7
+ eventReadingType: 0x03
+ offset: 0x00
+/xyz/openbmc_project/inventory/system:
+ sensorID: 0x01
+ sensorType: 0x12
+ eventReadingType: 0x6F
+ offset: 0x02 \ No newline at end of file
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs/org.openbmc.HostIpmi.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs/org.openbmc.HostIpmi.service
new file mode 100644
index 000000000..1f0da7533
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs/org.openbmc.HostIpmi.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Phosphor IPMI KCS DBus Bridge
+After=phosphor-ipmi-host.service
+
+[Service]
+Restart=always
+ExecStart={sbindir}/kcsbridged --d="/dev/{KCS_DEVICE}"
+Type=dbus
+BusName={BUSNAME}
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb
new file mode 100644
index 000000000..9f25c0bf8
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-kcs_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Phosphor OpenBMC KCS to DBUS"
+DESCRIPTION = "Phosphor OpenBMC KCS to DBUS."
+PR = "r1"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1beb00e508e89da1ed2a541934f28c0"
+
+inherit autotools pkgconfig
+inherit obmc-phosphor-dbus-service
+
+PV = "1.0+git${SRCPV}"
+
+KCS_DEVICE ?= "ipmi-kcs3"
+
+DBUS_SERVICE_${PN} = "org.openbmc.HostIpmi.service"
+SYSTEMD_SUBSTITUTIONS += "KCS_DEVICE:${KCS_DEVICE}:${DBUS_SERVICE_${PN}}"
+
+PROVIDES += "virtual/obmc-host-ipmi-hw"
+RPROVIDES_${PN} += "virtual-obmc-host-ipmi-hw"
+RRECOMMENDS_${PN} += "phosphor-ipmi-host"
+
+DEPENDS += " \
+ autoconf-archive-native \
+ systemd \
+ "
+RDEPENDS_${PN} += "libsystemd"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/openbmc/kcsbridge.git;protocol=https"
+SRCREV = "a1c50751b57a73ee38469c03960831ace72bc860"
+
+# This is how linux-libc-headers says to include custom uapi headers
+CFLAGS_append = " -I ${STAGING_KERNEL_DIR}/include/uapi"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net.bb
new file mode 100644
index 000000000..481e8f32f
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Phosphor Network IPMI Daemon"
+DESCRIPTION = "Daemon to support IPMI protocol over network"
+HOMEPAGE = "https://github.com/openbmc/phosphor-net-ipmid"
+PR = "r1"
+
+inherit autotools pkgconfig
+inherit obmc-phosphor-license
+inherit obmc-phosphor-systemd
+
+DEPENDS += "autoconf-archive-native"
+DEPENDS += "phosphor-mapper"
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-host"
+RDEPENDS_${PN} += "libmapper"
+RDEPENDS_${PN} += "libsystemd"
+
+SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid"
+SRCREV = "fe5a64587256eced4736cd70f23b5be58c8933a3"
+
+S = "${WORKDIR}/git"
+
+SYSTEMD_SERVICE_${PN} = " \
+ ${PN}.service \
+ ${PN}.socket \
+ "
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.service
new file mode 100644
index 000000000..b1f51dc65
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Network IPMI daemon
+# TODO openbmc/openbmc#2059 - The wants/after below should be based on providers
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-boot.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-boot.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-boot-one_time.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-boot-one_time.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-power_restore_policy.service
+Wants=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
+After=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
+
+[Service]
+ExecStart=/usr/bin/env netipmid
+SyslogIdentifier=netipmid
+Restart=always
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.socket b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.socket
new file mode 100644
index 000000000..077b7804c
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-net/phosphor-ipmi-net.socket
@@ -0,0 +1,6 @@
+[Socket]
+ListenDatagram=623
+
+[Install]
+WantedBy=sockets.target
+
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb
new file mode 100644
index 000000000..7fe9ae3da
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-config-native.bb
@@ -0,0 +1,9 @@
+SUMMARY = "OpenBMC - IPMI sensors"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+
+OBMC_IPMI_SENSORS_PROVIDERS = "phosphor-ipmi-sensor-inventory-mrw-config-native"
+
+DEPENDS_append = " ${OBMC_IPMI_SENSORS_PROVIDERS} "
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb
new file mode 100644
index 000000000..a33eb2b54
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config-native.bb
@@ -0,0 +1,17 @@
+SUMMARY = "sensor config for phosphor-host-ipmid"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://config.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${sensor_yamldir}
+ install -d ${DEST}
+ install config.yaml ${DEST}/config.yaml
+}
+
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config/config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config/config.yaml
new file mode 100644
index 000000000..d0e4f57d5
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-config/config.yaml
@@ -0,0 +1,328 @@
+boot_count_sensor:
+ path: /xyz/openbmc_project/state/host0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingAssertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootAttempts:
+ AttemptsLeft:
+ Offsets:
+ 0xFF:
+ type: uint32_t
+
+os_boot_sensor:
+ path: /xyz/openbmc_project/state/host0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.State.OperatingSystem.Status:
+ OperatingSystemState:
+ Offsets:
+ 0x01:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot"
+ type: string
+ 0x02:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot"
+ type: string
+ 0x03:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot"
+ type: string
+ 0x04:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot"
+ type: string
+ 0x05:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot"
+ type: string
+ 0x06:
+ assert: "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete"
+ type: string
+
+fw_boot_sensor:
+ path: /xyz/openbmc_project/state/host0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: eventdata2
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.State.Boot.Progress:
+ BootProgress:
+ Offsets:
+ 0x00:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified"
+ 0x01:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit"
+ 0x03:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit"
+ 0x07:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit"
+ 0x13:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart"
+ 0x14:
+ type: string
+ set: "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit"
+
+dimm_func_sensor:
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 0x04:
+ type: "bool"
+ assert: false
+ deassert: true
+ Prereqs:
+ 0x06:
+ type: "bool"
+ assert: true
+ deassert: false
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ type: "bool"
+ assert: true
+ deassert: false
+
+cpu_func_sensor:
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 0x08:
+ type: "bool"
+ assert: false
+ deassert: true
+ Prereqs:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+
+cpucore_func_sensor:
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 0x08:
+ type: "bool"
+ assert: false
+ deassert: true
+ Prereqs:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+ skipOn: "deassert"
+
+tpm_required_sensor:
+ path: /xyz/openbmc_project/control/host0/TPMEnable
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Control.TPM.Policy:
+ TPMEnable:
+ Offsets:
+ 0x00:
+ type: "bool"
+ assert: false
+ 0x01:
+ type: "bool"
+ assert: true
+
+gpu_func_sensor:
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 0x08:
+ type: "bool"
+ assert: false
+ deassert: true
+ Prereqs:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: false
+# Field replaceable doesn't come as a sensor data
+# but we know that GPU is Field replaceable so setting
+# true in both cases.
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable:
+ Offsets:
+ 0x07:
+ type: "bool"
+ assert: true
+ deassert: true
+
+host_auto_reboot_control_sensor:
+ path: /xyz/openbmc_project/control/host0/auto_reboot
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootPolicy:
+ AutoReboot:
+ Offsets:
+ 0x00:
+ type: "bool"
+ assert: false
+ 0x01:
+ type: "bool"
+ assert: true
+
+turbo_allowed_sensor:
+ path: /xyz/openbmc_project/control/host0/turbo_allowed
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Control.Host.TurboAllowed:
+ TurboAllowed:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+
+cpucore_temp_sensor:
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+dimm_temp_sensor:
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+vrm_vdd_temp_sensor:
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+gpu_temp_sensor:
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+memory_temp_sensor:
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ multiplierM: 1
+ offsetB: -127
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb
new file mode 100644
index 000000000..e58e02a64
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw-native.bb
@@ -0,0 +1,56 @@
+SUMMARY = "sensor config for phosphor-host-ipmid"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+inherit pythonnative
+inherit mrw-xml
+
+DEPENDS += " \
+ mrw-native \
+ mrw-perl-tools-native \
+ phosphor-ipmi-sensor-config-native \
+ phosphor-ipmi-sensor-inventory-mrw-config-native \
+ python-pyyaml-native \
+ "
+
+PROVIDES += "virtual/phosphor-ipmi-sensor-inventory"
+
+S = "${WORKDIR}"
+SRC_URI += "file://merge_sensor_config.py"
+
+do_install() {
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+
+ ${bindir}/perl-native/perl \
+ ${bindir}/gen_ipmi_sensor.pl \
+ -i ${mrw_datadir}/${MRW_XML} \
+ -m ${sensor_yamldir}/config.yaml \
+ -o ${DEST}/sensor.yaml
+}
+
+python do_merge_sensor_config () {
+ import subprocess
+
+ # TODO: Perform the merge in a temporary directory?
+ workdir = d.getVar('WORKDIR', True)
+ nativedir = d.getVar('STAGING_DIR_NATIVE', True)
+ sensoryamldir = d.getVar('sensor_yamldir', True)
+ cmd = []
+ cmd.append(os.path.join(workdir, 'merge_sensor_config.py'))
+ cmd.append(os.path.join(sensoryamldir, 'config.yaml'))
+
+ fetch = os.listdir(sensoryamldir)
+ override_urls = [url for url in fetch if url.endswith('-config.yaml')]
+ for url in override_urls:
+ bb.debug(2, 'Merging extra configurations: ' + url)
+ filename = os.path.join(sensoryamldir, url)
+ cmd.append(filename)
+
+ # Invoke the script and don't catch any resulting exception.
+ subprocess.check_call(cmd)
+}
+# python-pyyaml-native is installed by do_configure, so put this task after
+addtask merge_sensor_config after do_configure before do_compile
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw/merge_sensor_config.py b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw/merge_sensor_config.py
new file mode 120000
index 000000000..6ae3bcae9
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-mrw/merge_sensor_config.py
@@ -0,0 +1 @@
+../phosphor-ipmi-host/merge_yamls.py \ No newline at end of file
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb
new file mode 100644
index 000000000..2464ff005
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory-native.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Sensor config for phosphor-host-ipmi"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-ipmi-sensor-inventory"
+
+SRC_URI += "file://config.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # This recipe is supposed to create an output yaml file with
+ # sensor data extracted from the mrw.
+ # provides a sample output file.
+
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+ install config.yaml ${DEST}/sensor.yaml
+}
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory/config.yaml b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory/config.yaml
new file mode 100644
index 000000000..cc463c421
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory/config.yaml
@@ -0,0 +1,2108 @@
+0x03:
+ entityID: 0x22
+ entityInstance: 1
+ sensorType: 0x0F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: eventdata2
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.State.Boot.Progress:
+ BootProgress:
+ Offsets:
+ 0x13:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+ 0x00:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+ 0x01:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+ 0x03:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+ 0x07:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+ 0x14:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+0x05:
+ entityID: 0x23
+ entityInstance: 1
+ sensorType: 0x1F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.State.OperatingSystem.Status:
+ OperatingSystemState:
+ Offsets:
+ 0x02:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+ type: string
+ 0x06:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+ type: string
+ 0x04:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+ type: string
+ 0x01:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+ type: string
+ 0x03:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+ type: string
+ 0x05:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+ type: string
+0x07:
+ entityID: 0x22
+ entityInstance: 2
+ sensorType: 0xC3
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameProperty
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootAttempts:
+ AttemptsLeft:
+ Offsets:
+ 0xFF:
+ type: uint32_t
+0x12:
+ entityID: 0xD0
+ entityInstance: 1
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x15:
+ entityID: 0xD0
+ entityInstance: 2
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x18:
+ entityID: 0xD0
+ entityInstance: 3
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x1b:
+ entityID: 0xD0
+ entityInstance: 4
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x1e:
+ entityID: 0xD0
+ entityInstance: 5
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x21:
+ entityID: 0xD0
+ entityInstance: 6
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x24:
+ entityID: 0xD0
+ entityInstance: 7
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x27:
+ entityID: 0xD0
+ entityInstance: 8
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2a:
+ entityID: 0xD0
+ entityInstance: 9
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2d:
+ entityID: 0xD0
+ entityInstance: 10
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x30:
+ entityID: 0xD0
+ entityInstance: 11
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x33:
+ entityID: 0xD0
+ entityInstance: 12
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x36:
+ entityID: 0xD0
+ entityInstance: 13
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x39:
+ entityID: 0xD0
+ entityInstance: 14
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3c:
+ entityID: 0xD0
+ entityInstance: 15
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x3f:
+ entityID: 0xD0
+ entityInstance: 16
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x42:
+ entityID: 0xD0
+ entityInstance: 17
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core16
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x45:
+ entityID: 0xD0
+ entityInstance: 18
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core17
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x48:
+ entityID: 0xD0
+ entityInstance: 19
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core18
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4b:
+ entityID: 0xD0
+ entityInstance: 20
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core19
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x4e:
+ entityID: 0xD0
+ entityInstance: 21
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core20
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x51:
+ entityID: 0xD0
+ entityInstance: 22
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core21
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x54:
+ entityID: 0xD0
+ entityInstance: 23
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core22
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x57:
+ entityID: 0xD0
+ entityInstance: 24
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core23
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x5a:
+ entityID: 0x03
+ entityInstance: 1
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+0x5c:
+ entityID: 0xD0
+ entityInstance: 25
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x5f:
+ entityID: 0xD0
+ entityInstance: 26
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x62:
+ entityID: 0xD0
+ entityInstance: 27
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x65:
+ entityID: 0xD0
+ entityInstance: 28
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x68:
+ entityID: 0xD0
+ entityInstance: 29
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x6b:
+ entityID: 0xD0
+ entityInstance: 30
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x6e:
+ entityID: 0xD0
+ entityInstance: 31
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x71:
+ entityID: 0xD0
+ entityInstance: 32
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x74:
+ entityID: 0xD0
+ entityInstance: 33
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x77:
+ entityID: 0xD0
+ entityInstance: 34
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x7a:
+ entityID: 0xD0
+ entityInstance: 35
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x7d:
+ entityID: 0xD0
+ entityInstance: 36
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x80:
+ entityID: 0xD0
+ entityInstance: 37
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x83:
+ entityID: 0xD0
+ entityInstance: 38
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x86:
+ entityID: 0xD0
+ entityInstance: 39
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x89:
+ entityID: 0xD0
+ entityInstance: 40
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x8c:
+ entityID: 0xD0
+ entityInstance: 41
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core16
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x8f:
+ entityID: 0xD0
+ entityInstance: 42
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core17
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x92:
+ entityID: 0xD0
+ entityInstance: 43
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core18
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x95:
+ entityID: 0xD0
+ entityInstance: 44
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core19
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x98:
+ entityID: 0xD0
+ entityInstance: 45
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core20
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x9b:
+ entityID: 0xD0
+ entityInstance: 46
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core21
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x9e:
+ entityID: 0xD0
+ entityInstance: 47
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core22
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0xa1:
+ entityID: 0xD0
+ entityInstance: 48
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1/core23
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameParentLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0xa4:
+ entityID: 0x03
+ entityInstance: 2
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+0xa6:
+ entityID: 0x20
+ entityInstance: 1
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xa8:
+ entityID: 0x20
+ entityInstance: 2
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xaa:
+ entityID: 0x20
+ entityInstance: 3
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xac:
+ entityID: 0x20
+ entityInstance: 4
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xae:
+ entityID: 0x20
+ entityInstance: 5
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xb0:
+ entityID: 0x20
+ entityInstance: 6
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xb2:
+ entityID: 0x20
+ entityInstance: 7
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xb4:
+ entityID: 0x20
+ entityInstance: 8
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xb6:
+ entityID: 0x20
+ entityInstance: 9
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xb8:
+ entityID: 0x20
+ entityInstance: 10
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xba:
+ entityID: 0x20
+ entityInstance: 11
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xbc:
+ entityID: 0x20
+ entityInstance: 12
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xbe:
+ entityID: 0x20
+ entityInstance: 13
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm12
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xc0:
+ entityID: 0x20
+ entityInstance: 14
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm13
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xc2:
+ entityID: 0x20
+ entityInstance: 15
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm14
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0xc4:
+ entityID: 0x20
+ entityInstance: 16
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm15
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-tool.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-tool.bb
new file mode 100644
index 000000000..dbc50aaba
--- /dev/null
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-tool.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Phosphor ipmi tool for injecting ipmi commands"
+DESCRIPTION = "IPMI Tool with dbus capabilities"
+HOMEPAGE = "https://github.com/openbmc/ipmitool"
+PR = "r1"
+
+
+inherit obmc-phosphor-license
+
+DEPENDS += "systemd \
+ phosphor-ipmi-host \
+ "
+
+RDEPENDS_${PN} += "libsystemd \
+ libcrypto \
+ virtual-obmc-host-ipmi-hw \
+ "
+
+
+SRC_URI += "git://github.com/openbmc/ipmitool"
+
+SRCREV = "dfdfd89ec9b36c115a98f589880fd757a162af19"
+
+
+S = "${WORKDIR}/git"
+
+
+do_compile() {
+ ${S}/bootstrap --enable-intf-dbus
+ ${S}/configure --host x86_64
+ make
+}
+
+do_install() {
+ install -m 0755 -d ${D}${sbindir}
+ install -m 0755 ${S}/src/ipmitool ${D}${sbindir}
+}
OpenPOWER on IntegriCloud