summaryrefslogtreecommitdiffstats
path: root/meta-ibm
diff options
context:
space:
mode:
authorDave Cobbley <david.j.cobbley@linux.intel.com>2018-08-22 21:40:54 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-08-23 12:39:42 -0400
commit194ff4f1f5d44b12e9cb06ddafa6adb20174a13c (patch)
tree823835cd29daf8901a31ac14c7e6534abf199be3 /meta-ibm
parent4feb727cd6b77a68bdaca63e121b378d814f5eaf (diff)
downloadtalos-openbmc-194ff4f1f5d44b12e9cb06ddafa6adb20174a13c.tar.gz
talos-openbmc-194ff4f1f5d44b12e9cb06ddafa6adb20174a13c.zip
[Subtree] Bring openbmc machines to top level
The new subtree model brings the subtrees up from the openbmc-machines layer. Change-Id: I58a03ae1be374bc79ae1438e65e888375d12d0c0 Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com> Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'meta-ibm')
-rw-r--r--meta-ibm/conf/layer.conf10
-rw-r--r--meta-ibm/conf/machine/include/ibm.inc1
-rw-r--r--meta-ibm/meta-palmetto/conf/bblayers.conf.sample35
-rw-r--r--meta-ibm/meta-palmetto/conf/conf-notes.txt2
-rw-r--r--meta-ibm/meta-palmetto/conf/layer.conf10
-rw-r--r--meta-ibm/meta-palmetto/conf/local.conf.sample245
-rw-r--r--meta-ibm/meta-palmetto/conf/machine/palmetto.conf20
-rw-r--r--meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed/palmetto.cfg3
-rw-r--r--meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed_%.bbappend2
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console/obmc-console.conf4
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console_%.bbappend1
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor.bbappend1
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor/obmc/gpio/checkstop4
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map-native.bb23
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map/config.yaml220
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend1
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml73
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend1
-rwxr-xr-xmeta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml561
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb17
-rwxr-xr-xmeta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml33
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native.bbappend2
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native/palmetto.xml.patch.xml473
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend1
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-op-apps.bbappend2
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%.bbappend13
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/occ-hwmon@50.conf40
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@40/rtc@68.conf3
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@c0/tmp423@4c.conf7
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/workbook/palmetto-config.bb8
-rw-r--r--meta-ibm/meta-palmetto/recipes.txt1
-rw-r--r--meta-ibm/meta-romulus/conf/bblayers.conf.sample35
-rw-r--r--meta-ibm/meta-romulus/conf/conf-notes.txt2
-rw-r--r--meta-ibm/meta-romulus/conf/layer.conf10
-rw-r--r--meta-ibm/meta-romulus/conf/local.conf.sample223
-rw-r--r--meta-ibm/meta-romulus/conf/machine/romulus.conf20
-rw-r--r--meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg4
-rw-r--r--meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend2
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb40
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service15
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh7
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb26
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh137
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh3
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf4
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml423
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml16
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml9
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend2
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml13
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml33
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml20
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend22
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf3
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service13
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb29
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service10
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button5
-rwxr-xr-xmeta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh20
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend3
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml538
-rwxr-xr-xmeta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml340
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml159
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml27
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend8
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml4
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend1
-rwxr-xr-xmeta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml3560
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb18
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb23
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb18
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb18
-rwxr-xr-xmeta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml335
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml5
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb19
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend2
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend23
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf17
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf8
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf67
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf67
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend1
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf3
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb5
-rw-r--r--meta-ibm/meta-romulus/recipes.txt2
-rw-r--r--meta-ibm/meta-witherspoon/README.md8
-rw-r--r--meta-ibm/meta-witherspoon/conf/bblayers.conf.sample35
-rw-r--r--meta-ibm/meta-witherspoon/conf/conf-notes.txt2
-rw-r--r--meta-ibm/meta-witherspoon/conf/distro/openbmc-witherspoon.conf5
-rw-r--r--meta-ibm/meta-witherspoon/conf/layer.conf10
-rw-r--r--meta-ibm/meta-witherspoon/conf/local.conf.sample21
-rw-r--r--meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf33
-rw-r--r--meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-size-policy.conf8
-rw-r--r--meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-storage-policy.conf8
-rw-r--r--meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/systemd-journald-override.conf3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend14
-rw-r--r--meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/witherspoon.cfg7
-rw-r--r--meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb40
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh22
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh134
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%.bbappend24
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/mac_sync_inventory.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/bmc/ethernet2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/uuid2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/uuid_sync_inventory.conf3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power/obmc/power_control2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb36
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-bind@.service15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-unbind@.service14
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh81
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control.sh155
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control@.service16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config-native%.bbappend4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper.bbappend7
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper/mapper-nice.conf2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy-native.bb13
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy/config.yaml114
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%.bbappend33
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml766
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend1
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml21
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml18
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml32
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml73
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml55
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy-native.bb16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/air-cooled.yaml328
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/fan-errors.yaml676
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml322
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb22
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/fan-watchdog.conf3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog-monitor@.service10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service13
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy-native.bb12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy/thermal-policy.yaml187
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest/url_config.json14
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup-native.bb15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml27
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager-config-native.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml120
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%/fru-config-not-sent-by-host.yaml29
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml573
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml44
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config.bb82
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json38
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json58
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json17145
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd.bbappend12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd/check-pnor-format.service11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/mboxd/mboxd/check_pnor_format.sh18
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/network/network.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/network/network/ncsi-netlink.service13
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/packagegroups/packagegroup-op-apps.bbappend1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/phosphor-logging-error-logs-native.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis-error-native.bb18
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.bb47
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon-power-supply-monitor@.service15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon-pseq-monitor-pgood.service11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon-pseq-monitor.service10
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-policy-native.bb12
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-policy/power-supply-policy.yaml215
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync.bb15
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-power-supply-sync/witherspoon-power-supply-sync.service14
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%.bbappend47
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-hwmon.rules2
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/70-max31785-hwmon.rules1
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/max31785-hwmon-helper@.service9
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon-max31785/wspoon.conf3
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/bmp280@77.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/dps310@76.conf6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_air.conf33
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/max31785@52_water.conf25
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/power-supply@68.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/power-supply@69.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@140/ir35221@70.conf11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@140/ir35221@71.conf11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ir35221@70.conf11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ir35221@71.conf11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@380/tmp275@4a.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf338
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf268
-rwxr-xr-xmeta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon%/start_max31785_hwmon.sh26
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-manager/TPMEnable-default-true.override.yml6
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native.bbappend2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/settings/phosphor-settings-read-settings-mrw-native/mrw-override-settings.yaml11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd.bbappend4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/workbook/devtree-config-native.bb17
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/workbook/devtree-config/config.yaml54
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/workbook/witherspoon-config.bb5
-rw-r--r--meta-ibm/meta-witherspoon/recipes.txt3
-rw-r--r--meta-ibm/meta-z/conf/bblayers.conf.sample25
-rw-r--r--meta-ibm/meta-z/conf/conf-notes.txt2
-rw-r--r--meta-ibm/meta-z/conf/layer.conf5
-rw-r--r--meta-ibm/meta-z/conf/local.conf.sample18
-rw-r--r--meta-ibm/meta-z/conf/machine/ibm-z.conf13
-rw-r--r--meta-ibm/recipes-httpd/nginx/files/gen-cert.sh9
-rw-r--r--meta-ibm/recipes-httpd/nginx/files/nginx.conf114
-rw-r--r--meta-ibm/recipes-httpd/nginx/files/nginx.service20
-rw-r--r--meta-ibm/recipes-httpd/nginx/files/nginx.socket8
-rw-r--r--meta-ibm/recipes-httpd/nginx/nginx_%.bbappend33
-rw-r--r--meta-ibm/recipes-phosphor/bmcweb/bmcweb.bbappend10
-rw-r--r--meta-ibm/recipes-phosphor/bmcweb/bmcweb/bmcweb.service9
-rw-r--r--meta-ibm/recipes-phosphor/bmcweb/bmcweb/bmcweb.socket8
-rw-r--r--meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces-mapper-config-native.bb10
-rw-r--r--meta-ibm/recipes-phosphor/dbus/ibm-dbus-interfaces.bb32
-rw-r--r--meta-ibm/recipes-phosphor/dbus/phosphor-mapper-config-native.bbappend1
-rw-r--r--meta-ibm/recipes-phosphor/dump/phosphor-debug-collector.bbappend21
-rw-r--r--meta-ibm/recipes-phosphor/dump/phosphor-debug-collector/plugins.d/ibm_elogall29
-rw-r--r--meta-ibm/recipes-phosphor/logging/ibm-logging.bb79
-rw-r--r--meta-ibm/recipes-phosphor/logging/ibm-logging/com.ibm.Logging.service14
-rw-r--r--meta-ibm/recipes-phosphor/logging/ibm-logging/policyTable.json5
-rw-r--r--meta-ibm/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend2
-rw-r--r--meta-ibm/recipes-phosphor/phosphor-gevent/phosphor-gevent.bbappend4
-rw-r--r--meta-ibm/recipes-phosphor/phosphor-gevent/phosphor-gevent/phosphor-gevent.service11
-rw-r--r--meta-ibm/recipes-phosphor/phosphor-gevent/phosphor-gevent/phosphor-gevent.socket8
273 files changed, 31997 insertions, 0 deletions
diff --git a/meta-ibm/conf/layer.conf b/meta-ibm/conf/layer.conf
new file mode 100644
index 000000000..a5c90829f
--- /dev/null
+++ b/meta-ibm/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "ibm"
+BBFILE_PATTERN_ibm = ""
+LAYERSERIES_COMPAT_ibm = "sumo"
diff --git a/meta-ibm/conf/machine/include/ibm.inc b/meta-ibm/conf/machine/include/ibm.inc
new file mode 100644
index 000000000..c79ddd777
--- /dev/null
+++ b/meta-ibm/conf/machine/include/ibm.inc
@@ -0,0 +1 @@
+require conf/machine/include/openpower.inc
diff --git a/meta-ibm/meta-palmetto/conf/bblayers.conf.sample b/meta-ibm/meta-palmetto/conf/bblayers.conf.sample
new file mode 100644
index 000000000..0b2935f20
--- /dev/null
+++ b/meta-ibm/meta-palmetto/conf/bblayers.conf.sample
@@ -0,0 +1,35 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-palmetto \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-palmetto \
+ "
diff --git a/meta-ibm/meta-palmetto/conf/conf-notes.txt b/meta-ibm/meta-palmetto/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-ibm/meta-palmetto/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-ibm/meta-palmetto/conf/layer.conf b/meta-ibm/meta-palmetto/conf/layer.conf
new file mode 100644
index 000000000..17780a896
--- /dev/null
+++ b/meta-ibm/meta-palmetto/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "palmetto"
+BBFILE_PATTERN_palmetto = ""
+LAYERSERIES_COMPAT_palmetto = "sumo"
diff --git a/meta-ibm/meta-palmetto/conf/local.conf.sample b/meta-ibm/meta-palmetto/conf/local.conf.sample
new file mode 100644
index 000000000..8627007f7
--- /dev/null
+++ b/meta-ibm/meta-palmetto/conf/local.conf.sample
@@ -0,0 +1,245 @@
+#
+# This file is your local configuration file and is where all local user settings
+# are placed. The comments in this file give some guide to the options a new user
+# to the system might want to change but pretty much any configuration option can
+# be set in this file. More adventurous users can look at local.conf.extended
+# which contains other examples of configuration which can be placed in this file
+# but new users likely won't need any of them initially.
+#
+# Lines starting with the '#' character are commented out and in some cases the
+# default values are provided as comments to show people example syntax. Enabling
+# the option is a question of removing the # character and making any change to the
+# variable as required.
+
+#
+# Machine Selection
+#
+# You need to select a specific machine to target the build with. There are a selection
+# of emulated machines available which can boot and run in the QEMU emulator:
+#
+#MACHINE ?= "qemuarm"
+#MACHINE ?= "qemuarm64"
+#MACHINE ?= "qemumips"
+#MACHINE ?= "qemuppc"
+#MACHINE ?= "qemux86"
+#MACHINE ?= "qemux86-64"
+#
+# There are also the following hardware board target machines included for
+# demonstration purposes:
+#
+#MACHINE ?= "beaglebone"
+#MACHINE ?= "genericx86"
+#MACHINE ?= "genericx86-64"
+#MACHINE ?= "mpc8315e-rdb"
+#MACHINE ?= "edgerouter"
+#
+# This sets the default machine to be qemux86 if no other machine is selected:
+MACHINE ??= "palmetto"
+
+#
+# Where to place downloads
+#
+# During a first build the system will download many different source code tarballs
+# from various upstream projects. This can take a while, particularly if your network
+# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
+# can preserve this directory to speed up this part of subsequent builds. This directory
+# is safe to share between multiple builds on the same machine too.
+#
+# The default is a downloads directory under TOPDIR which is the build directory.
+#
+#DL_DIR ?= "${TOPDIR}/downloads"
+
+#
+# Where to place shared-state files
+#
+# BitBake has the capability to accelerate builds based on previously built output.
+# This is done using "shared state" files which can be thought of as cache objects
+# and this option determines where those files are placed.
+#
+# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
+# from these files if no changes were made to the configuration. If changes were made
+# to the configuration, only shared state files where the state was still valid would
+# be used (done using checksums).
+#
+# The default is a sstate-cache directory under TOPDIR.
+#
+#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
+
+#
+# Where to place the build output
+#
+# This option specifies where the bulk of the building work should be done and
+# where BitBake should place its temporary files and output. Keep in mind that
+# this includes the extraction and compilation of many applications and the toolchain
+# which can use Gigabytes of hard disk space.
+#
+# The default is a tmp directory under TOPDIR.
+#
+#TMPDIR = "${TOPDIR}/tmp"
+
+#
+# Default policy config
+#
+# The distribution setting controls which policy settings are used as defaults.
+# The default value is fine for general Yocto project use, at least initially.
+# Ultimately when creating custom policy, people will likely end up subclassing
+# these defaults.
+#
+DISTRO ?= "openbmc-openpower"
+# As an example of a subclass there is a "bleeding" edge policy configuration
+# where many versions are set to the absolute latest code from the upstream
+# source control systems. This is just mentioned here as an example, its not
+# useful to most new users.
+# DISTRO ?= "poky-bleeding"
+
+#
+# Package Management configuration
+#
+# This variable lists which packaging formats to enable. Multiple package backends
+# can be enabled at once and the first item listed in the variable will be used
+# to generate the root filesystems.
+# Options are:
+# - 'package_deb' for debian style deb files
+# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
+# - 'package_rpm' for rpm style packages
+# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
+# We default to rpm:
+PACKAGE_CLASSES ?= "package_rpm"
+
+#
+# SDK/ADT target architecture
+#
+# This variable specifies the architecture to build SDK/ADT items for and means
+# you can build the SDK packages for architectures other than the machine you are
+# running the build on (i.e. building i686 packages on an x86_64 host).
+# Supported values are i686 and x86_64
+#SDKMACHINE ?= "i686"
+
+SANITY_TESTED_DISTROS_append ?= " RedHatEnterpriseWorkstation-6.*"
+
+#
+# Extra image configuration defaults
+#
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# images. Some of these options are added to certain image types automatically. The
+# variable can contain the following options:
+# "dbg-pkgs" - add -dbg packages for all installed packages
+# (adds symbol information for debugging/profiling)
+# "dev-pkgs" - add -dev packages for all installed packages
+# (useful if you want to develop against libs in the image)
+# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
+# (useful if you want to run the package test suites)
+# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
+# "tools-debug" - add debugging tools (gdb, strace)
+# "eclipse-debug" - add Eclipse remote debugging support
+# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind)
+# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
+# "debug-tweaks" - make an image suitable for development
+# e.g. ssh root access has a blank password
+# There are other application targets that can be used here too, see
+# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
+# We default to enabling the debugging tweaks.
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+
+#
+# Additional image features
+#
+# The following is a list of additional classes to use when building images which
+# enable extra features. Some available options which can be included in this variable
+# are:
+# - 'buildstats' collect build statistics
+# - 'image-mklibs' to reduce shared library files size for an image
+# - 'image-prelink' in order to prelink the filesystem image
+# - 'image-swab' to perform host system intrusion detection
+# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
+# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+
+#
+# Runtime testing of images
+#
+# The build system can test booting virtual machine images under qemu (an emulator)
+# after any root filesystems are created and run tests against those images. To
+# enable this uncomment this line. See classes/testimage(-auto).bbclass for
+# further details.
+#TEST_IMAGE = "1"
+#
+# Interactive shell configuration
+#
+# Under certain circumstances the system may need input from you and to do this it
+# can launch an interactive shell. It needs to do this since the build is
+# multithreaded and needs to be able to handle the case where more than one parallel
+# process may require the user's attention. The default is iterate over the available
+# terminal types to find one that works.
+#
+# Examples of the occasions this may happen are when resolving patches which cannot
+# be applied, to use the devshell or the kernel menuconfig
+#
+# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
+# Note: currently, Konsole support only works for KDE 3.x due to the way
+# newer Konsole versions behave
+#OE_TERMINAL = "auto"
+# By default disable interactive patch resolution (tasks will just fail instead):
+PATCHRESOLVE = "noop"
+
+#
+# Disk Space Monitoring during the build
+#
+# Monitor the disk space during the build. If there is less that 1GB of space or less
+# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
+# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# of the build. The reason for this is that running completely out of space can corrupt
+# files and damages the build in ways which may not be easily recoverable.
+# It's necessary to monitor /tmp, if there is no space left the build will fail
+# with very exotic errors.
+BB_DISKMON_DIRS = "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+
+#
+# Shared-state files from other locations
+#
+# As mentioned above, shared state files are prebuilt cache data objects which can
+# used to accelerate build time. This variable can be used to configure the system
+# to search other mirror locations for these objects before it builds the data itself.
+#
+# This can be a filesystem directory, or a remote url such as http or ftp. These
+# would contain the sstate-cache results from previous builds (possibly from other
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# cache locations to check for the shared objects.
+# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
+# at the end as shown in the examples below. This will be substituted with the
+# correct path within the directory structure.
+#SSTATE_MIRRORS ?= "\
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* file:///some/local/dir/sstate/PATH"
+
+
+#
+# Qemu configuration
+#
+# By default qemu will build with a builtin VNC server where graphical output can be
+# seen. The two lines below enable the SDL backend too. This assumes there is a
+# libsdl library available on your build system.
+PACKAGECONFIG_append_pn-qemu-native = " sdl"
+PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+#ASSUME_PROVIDED += "libsdl-native"
+
+
+# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
+# track the version of this file when it was generated. This can safely be ignored if
+# this doesn't mean anything to you.
+CONF_VERSION = "1"
+
+# Set the root password to '0penBmc'
+INHERIT += "extrausers"
+
+EXTRA_USERS_PARAMS = " \
+ usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \
+ "
diff --git a/meta-ibm/meta-palmetto/conf/machine/palmetto.conf b/meta-ibm/meta-palmetto/conf/machine/palmetto.conf
new file mode 100644
index 000000000..5d71bf4c3
--- /dev/null
+++ b/meta-ibm/meta-palmetto/conf/machine/palmetto.conf
@@ -0,0 +1,20 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+require conf/machine/include/ast2400.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+require conf/machine/include/p8.inc
+
+UBOOT_MACHINE_palmetto = "ast_g4_ncsi_config"
+UBOOT_ENTRYPOINT = "0x40008000"
+UBOOT_LOADADDRESS = "0x40008000"
+
+FLASH_SIZE = "32768"
+
+PHOSPHOR_MRW_URI = "git://github.com/open-power/palmetto-xml"
+PHOSPHOR_MRW_REV = "82818682f2c2009c30d700df6d5f8897a3096e4f"
+
+PREFERRED_PROVIDER_virtual/obmc-inventory-data = "obmc-inventory"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "palmetto-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "palmetto-led-manager-config-native"
diff --git a/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed/palmetto.cfg b/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed/palmetto.cfg
new file mode 100644
index 000000000..498497e9f
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed/palmetto.cfg
@@ -0,0 +1,3 @@
+CONFIG_SENSORS_NCT7904=y
+CONFIG_EEPROM_AT24=y
+CONFIG_SENSORS_TMP421=y
diff --git a/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..6cdb95135
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_palmetto := "${THISDIR}/${PN}:"
+SRC_URI += "file://palmetto.cfg"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 000000000..a5ba3f328
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,4 @@
+lpc-address = 0x3f8
+sirq = 4
+local-tty = ttyS0
+local-tty-baud = 115200
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 000000000..2d3355993
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_palmetto := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor/obmc/gpio/checkstop b/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor/obmc/gpio/checkstop
new file mode 100644
index 000000000..b47d0df77
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/host/checkstop-monitor/obmc/gpio/checkstop
@@ -0,0 +1,4 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=125
+POLARITY=1
+TARGET=obmc-host-crash@0.target
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..a25b65a0e
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " aspeed-lpc-ctrl"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map-native.bb b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map-native.bb
new file mode 100644
index 000000000..2b5348a9f
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Palmetto IPMI to DBus Inventory mapping."
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-fru
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # TODO: install this to inventory_datadir
+ # after ipmi-fru-parser untangles the host
+ # firmware config from the machine inventory.
+ DEST=${D}${config_datadir}
+
+ install -d ${DEST}
+ install config.yaml ${DEST}
+}
+
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map/config.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map/config.yaml
new file mode 100644
index 000000000..cade45ec8
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/palmetto-ipmi-inventory-map/config.yaml
@@ -0,0 +1,220 @@
+1:
+ /system/chassis/motherboard/cpu0:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+2:
+ /system/chassis:
+ entityID: 23
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+
+ /system/chassis/motherboard/membuf:
+ entityID: 23
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+3:
+ /system/chassis/motherboard/dimm0:
+ entityID: 32
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+4:
+ /system/chassis/motherboard/dimm1:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+5:
+ /system/chassis/motherboard/dimm2:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+6:
+ /system/chassis/motherboard/dimm3:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+14:
+ /system/chassis/motherboard:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+15:
+ /system:
+ entityID: 25
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
new file mode 100644
index 000000000..5caabf114
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
@@ -0,0 +1,73 @@
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/membuf0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+
+/system/chassis/motherboard/dimm1:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm2:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm3:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
new file mode 100755
index 000000000..9880d0a1a
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
@@ -0,0 +1,561 @@
+0x05:
+ sensorType: 0x0F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: eventdata2
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Boot.Progress:
+ BootProgress:
+ Offsets:
+ 0x13:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+ 0x00:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+ 0x01:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+ 0x07:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+ 0x14:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+ 0x03:
+ type: string
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+0x08:
+ sensorType: 0x07
+ path: /org/open_power/control/occ_3_0050
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+0x09:
+ sensorType: 0xC3
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingAssertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootAttempts:
+ AttemptsLeft:
+ Offsets:
+ 0xFF:
+ type: uint32_t
+0x1e:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x1f:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x20:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x21:
+ sensorType: 0x0C
+ path: /system/chassis/motherboard/dimm3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x04:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x06:
+ assert: true
+ deassert: false
+ type: bool
+0x22:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core0
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x23:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core1
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x24:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core2
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x25:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core3
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x26:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core4
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x27:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core5
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x28:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core6
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x29:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core7
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2a:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core8
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2b:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core9
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2c:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core10
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2d:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu0/core11
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ skipOn: deassert
+0x2f:
+ sensorType: 0x07
+ path: /system/chassis/motherboard/cpu
+ sensorReadingType: 0x6F
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Prereqs:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+ Offsets:
+ 0x08:
+ assert: false
+ deassert: true
+ type: bool
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 0x07:
+ assert: true
+ deassert: false
+ type: bool
+0x32:
+ sensorType: 0x1F
+ path: /xyz/openbmc_project/state/host0
+ sensorReadingType: 0x6F
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ interfaces:
+ xyz.openbmc_project.State.OperatingSystem.Status:
+ OperatingSystemState:
+ Offsets:
+ 0x02:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+ type: string
+ 0x06:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+ type: string
+ 0x04:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+ type: string
+ 0x01:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+ type: string
+ 0x03:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+ type: string
+ 0x05:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+ type: string
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb b/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb
new file mode 100644
index 000000000..d633fd980
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config-native.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Phosphor LED Group Management for Palmetto"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Copies example led layout yaml file
+do_install() {
+ SRC=${S}
+ DEST=${D}${datadir}/phosphor-led-manager
+ install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml
new file mode 100755
index 000000000..3b7d40456
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/leds/palmetto-led-manager-config/led.yaml
@@ -0,0 +1,33 @@
+BmcBooted:
+ heartbeat:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 0
+PowerOn:
+ power:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+EnclosureFault:
+ identify:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+EnclosureIdentify:
+ identify:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+LampTest:
+ heartbeat:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ identify:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ power:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native.bbappend
new file mode 100644
index 000000000..836ef56aa
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI += "file://palmetto.xml.patch.xml"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native/palmetto.xml.patch.xml b/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native/palmetto.xml.patch.xml
new file mode 100644
index 000000000..73293773a
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/mrw/mrw-native/palmetto.xml.patch.xml
@@ -0,0 +1,473 @@
+<patches>
+
+<targetFile>palmetto.xml</targetFile>
+
+<!-- Add in the 5 fan and connector instances -->
+<targetInstance xpath="/">
+ <id>fanconn-0</id>
+ <type>connector-card-generic</type>
+ <library_target>false</library_target>
+ <instance_name>fanconn</instance_name>
+ <position>0</position>
+ <child_id>fan-0</child_id>
+ <attribute>
+ <id>CLASS</id>
+ <default>CONNECTOR</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NA</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fan-0</id>
+ <type>card-fan</type>
+ <library_target>false</library_target>
+ <instance_name>fan</instance_name>
+ <position>0</position>
+ <attribute>
+ <id>CLASS</id>
+ <default>CARD</default>
+ </attribute>
+ <attribute>
+ <id>FRU_ID</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>FRU_NAME</id>
+ <default>FAN</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fanconn-1</id>
+ <type>connector-card-generic</type>
+ <library_target>false</library_target>
+ <instance_name>fanconn</instance_name>
+ <position>1</position>
+ <child_id>fan-1</child_id>
+ <attribute>
+ <id>CLASS</id>
+ <default>CONNECTOR</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NA</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fan-1</id>
+ <type>card-fan</type>
+ <library_target>false</library_target>
+ <instance_name>fan</instance_name>
+ <position>1</position>
+ <attribute>
+ <id>CLASS</id>
+ <default>CARD</default>
+ </attribute>
+ <attribute>
+ <id>FRU_ID</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>FRU_NAME</id>
+ <default>FAN</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fanconn-2</id>
+ <type>connector-card-generic</type>
+ <library_target>false</library_target>
+ <instance_name>fanconn</instance_name>
+ <position>2</position>
+ <child_id>fan-2</child_id>
+ <attribute>
+ <id>CLASS</id>
+ <default>CONNECTOR</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NA</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fan-2</id>
+ <type>card-fan</type>
+ <library_target>false</library_target>
+ <instance_name>fan</instance_name>
+ <position>2</position>
+ <attribute>
+ <id>CLASS</id>
+ <default>CARD</default>
+ </attribute>
+ <attribute>
+ <id>FRU_ID</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>FRU_NAME</id>
+ <default>FAN</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fanconn-3</id>
+ <type>connector-card-generic</type>
+ <library_target>false</library_target>
+ <instance_name>fanconn</instance_name>
+ <position>3</position>
+ <child_id>fan-3</child_id>
+ <attribute>
+ <id>CLASS</id>
+ <default>CONNECTOR</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NA</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fan-3</id>
+ <type>card-fan</type>
+ <library_target>false</library_target>
+ <instance_name>fan</instance_name>
+ <position>3</position>
+ <attribute>
+ <id>CLASS</id>
+ <default>CARD</default>
+ </attribute>
+ <attribute>
+ <id>FRU_ID</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>FRU_NAME</id>
+ <default>FAN</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fanconn-4</id>
+ <type>connector-card-generic</type>
+ <library_target>false</library_target>
+ <instance_name>fanconn</instance_name>
+ <position>4</position>
+ <child_id>fan-4</child_id>
+ <attribute>
+ <id>CLASS</id>
+ <default>CONNECTOR</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>NA</default>
+ </attribute>
+</targetInstance>
+<targetInstance xpath="/">
+ <id>fan-4</id>
+ <type>card-fan</type>
+ <library_target>false</library_target>
+ <instance_name>fan</instance_name>
+ <position>4</position>
+ <attribute>
+ <id>CLASS</id>
+ <default>CARD</default>
+ </attribute>
+ <attribute>
+ <id>FRU_ID</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>FRU_NAME</id>
+ <default>FAN</default>
+ </attribute>
+ <attribute>
+ <id>LOCATION_CODE</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default></default>
+ </attribute>
+ <attribute>
+ <id>MRW_TYPE</id>
+ <default>NA</default>
+ </attribute>
+ <attribute>
+ <id>POSITION</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
+ <id>RESOURCE_IS_CRITICAL</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetInstance>
+
+<!-- place the fan connectors on the motherboard -->
+<targetInstance type="add-child" xpath="targetInstance[id='motherboard-0']">
+ <child_id>fanconn-0</child_id>
+ <child_id>fanconn-1</child_id>
+ <child_id>fanconn-2</child_id>
+ <child_id>fanconn-3</child_id>
+ <child_id>fanconn-4</child_id>
+</targetInstance>
+
+<!-- Add in the motherboard FRU name -->
+<attribute type="add" xpath="targetInstance[id='motherboard-0']">
+ <id>FRU_NAME</id>
+ <default>MOTHERBOARD</default>
+</attribute>
+
+<!-- add in some new types -->
+<enumerationType type="add-child" xpath="enumerationType[id='TYPE']">
+ <enumerator>
+ <name>FAN</name>
+ <value>35</value>
+ </enumerator>
+ <enumerator>
+ <name>PCIE_CARD</name>
+ <value>36</value>
+ </enumerator>
+</enumerationType>
+
+
+
+<!--fix up the other enums that come at the end of the list-->
+<enumerationType type="replace-child" key="name" xpath="enumerationType[id='TYPE']">
+ <enumerator>
+ <name>TEST_FAIL</name>
+ <value>37</value>
+ </enumerator>
+ <enumerator>
+ <name>LAST_IN_RANGE</name>
+ <value>38</value>
+ </enumerator>
+</enumerationType>
+
+<!-- Fix the PCIE card's type -->
+<attribute type="replace" xpath="targetInstance[id='pciecard_x8-0']/attribute[id='TYPE']">
+ <id>TYPE</id>
+ <default>PCIE_CARD</default>
+</attribute>
+
+<!-- Add the card's FRU name -->
+<attribute type="add" xpath="targetInstance[id='pciecard_x8-0']">
+ <id>FRU_NAME</id>
+ <default>PCIE_CARD</default>
+</attribute>
+
+<!-- Fix the PCIE card's type -->
+<attribute type="replace" xpath="targetInstance[id='pciecard_x16-0']/attribute[id='TYPE']">
+ <id>TYPE</id>
+ <default>PCIE_CARD</default>
+</attribute>
+
+<!-- Add the card's FRU name -->
+<attribute type="add" xpath="targetInstance[id='pciecard_x16-0']">
+ <id>FRU_NAME</id>
+ <default>PCIE_CARD</default>
+</attribute>
+
+<!-- new parser requires FABRIC_GROUP_ID, though it's unused by the BMC -->
+<attribute type="replace" xpath="targetInstance[id='proc_socket-0']/attribute[id='FABRIC_NODE_ID']">
+ <id>FABRIC_GROUP_ID</id>
+ <default>0</default>
+</attribute>
+
+</patches>
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 000000000..e5b837abc
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1 @@
+RDEPENDS_${PN}-inventory += "openpower-occ-control"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-op-apps.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-op-apps.bbappend
new file mode 100644
index 000000000..c0b52cf48
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/packagegroups/packagegroup-op-apps.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS_${PN}-chassis_remove += "obmc-button-reset"
+RDEPENDS_${PN}-fans_remove += "obmc-control-fan"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
new file mode 100644
index 000000000..e904dc0e1
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -0,0 +1,13 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+NAMES = " \
+ i2c@1e78a000/i2c-bus@40/rtc@68 \
+ i2c@1e78a000/i2c-bus@c0/tmp423@4c \
+ i2c@1e78a000/i2c-bus@100/occ-hwmon@50 \
+ "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'NAMES')}"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/occ-hwmon@50.conf b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/occ-hwmon@50.conf
new file mode 100644
index 000000000..40c4d7866
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@100/occ-hwmon@50.conf
@@ -0,0 +1,40 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+LABEL_temp13 = "cpu0"
+LABEL_temp101 = "centaur0"
+LABEL_temp102 = "dimm0"
+LABEL_temp103 = "dimm1"
+LABEL_temp104 = "dimm2"
+LABEL_temp105 = "dimm3"
+LABEL_temp106 = "core0"
+LABEL_temp107 = "core1"
+LABEL_temp108 = "core2"
+LABEL_temp109 = "core3"
+LABEL_temp110 = "core4"
+LABEL_temp111 = "core5"
+LABEL_temp112 = "core6"
+LABEL_temp113 = "core7"
+LABEL_temp114 = "core8"
+LABEL_temp115 = "core9"
+LABEL_temp116 = "core10"
+LABEL_temp117 = "core11"
+LABEL_power1 = "cpu0"
+LABEL_power2 = "pcie"
+LABEL_power3 = "io"
+LABEL_power4 = "centaur0"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@40/rtc@68.conf b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@40/rtc@68.conf
new file mode 100644
index 000000000..8b6053e33
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@40/rtc@68.conf
@@ -0,0 +1,3 @@
+LABEL_temp1=rtc
+WARNLO_temp1=10000
+WARNHI_temp1=35000
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@c0/tmp423@4c.conf b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@c0/tmp423@4c.conf
new file mode 100644
index 000000000..3166f32f1
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@c0/tmp423@4c.conf
@@ -0,0 +1,7 @@
+LABEL_temp1=ambient
+WARNLO_temp1=10000
+WARNHI_temp1=40000
+
+LABEL_temp2=cpu
+WARNLO_temp2=10000
+WARNHI_temp2=80000
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/workbook/palmetto-config.bb b/meta-ibm/meta-palmetto/recipes-phosphor/workbook/palmetto-config.bb
new file mode 100644
index 000000000..97d12de34
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/workbook/palmetto-config.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Palmetto board wiring"
+DESCRIPTION = "Board wiring information for the Palmetto system."
+PR = "r1"
+
+inherit config-in-skeleton
+
+PROVIDES_remove = "virtual/obmc-inventory-data"
+RPROVIDES_${PN}_remove = "virtual-obmc-inventory-data"
diff --git a/meta-ibm/meta-palmetto/recipes.txt b/meta-ibm/meta-palmetto/recipes.txt
new file mode 100644
index 000000000..db84c6f88
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes.txt
@@ -0,0 +1 @@
+recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
diff --git a/meta-ibm/meta-romulus/conf/bblayers.conf.sample b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
new file mode 100644
index 000000000..a6f7a5f1c
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/bblayers.conf.sample
@@ -0,0 +1,35 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-romulus \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-romulus \
+ "
diff --git a/meta-ibm/meta-romulus/conf/conf-notes.txt b/meta-ibm/meta-romulus/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-ibm/meta-romulus/conf/layer.conf b/meta-ibm/meta-romulus/conf/layer.conf
new file mode 100644
index 000000000..3a29f43bb
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "romulus"
+BBFILE_PATTERN_romulus = ""
+LAYERSERIES_COMPAT_romulus = "sumo"
diff --git a/meta-ibm/meta-romulus/conf/local.conf.sample b/meta-ibm/meta-romulus/conf/local.conf.sample
new file mode 100644
index 000000000..b2b739fce
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/local.conf.sample
@@ -0,0 +1,223 @@
+#
+# This file is your local configuration file and is where all local user settings
+# are placed. The comments in this file give some guide to the options a new user
+# to the system might want to change but pretty much any configuration option can
+# be set in this file.
+#
+# Lines starting with the '#' character are commented out and in some cases the
+# default values are provided as comments to show people example syntax. Enabling
+# the option is a question of removing the # character and making any change to the
+# variable as required.
+
+#
+# Machine Selection
+#
+MACHINE ??= "romulus"
+
+#
+# Where to place downloads
+#
+# During a first build the system will download many different source code tarballs
+# from various upstream projects. This can take a while, particularly if your network
+# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
+# can preserve this directory to speed up this part of subsequent builds. This directory
+# is safe to share between multiple builds on the same machine too.
+#
+# The default is a downloads directory under TOPDIR which is the build directory.
+#
+#DL_DIR ?= "${TOPDIR}/downloads"
+
+#
+# Where to place shared-state files
+#
+# BitBake has the capability to accelerate builds based on previously built output.
+# This is done using "shared state" files which can be thought of as cache objects
+# and this option determines where those files are placed.
+#
+# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
+# from these files if no changes were made to the configuration. If changes were made
+# to the configuration, only shared state files where the state was still valid would
+# be used (done using checksums).
+#
+# The default is a sstate-cache directory under TOPDIR.
+#
+#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
+
+#
+# Where to place the build output
+#
+# This option specifies where the bulk of the building work should be done and
+# where BitBake should place its temporary files and output. Keep in mind that
+# this includes the extraction and compilation of many applications and the toolchain
+# which can use Gigabytes of hard disk space.
+#
+# The default is a tmp directory under TOPDIR.
+#
+#TMPDIR = "${TOPDIR}/tmp"
+
+#
+# Default policy config
+#
+# The distribution setting controls which policy settings are used as defaults.
+# The default value is fine for general Yocto project use, at least initially.
+# Ultimately when creating custom policy, people will likely end up subclassing
+# these defaults.
+#
+DISTRO ?= "openbmc-openpower"
+# As an example of a subclass there is a "bleeding" edge policy configuration
+# where many versions are set to the absolute latest code from the upstream
+# source control systems. This is just mentioned here as an example, its not
+# useful to most new users.
+# DISTRO ?= "poky-bleeding"
+
+#
+# Package Management configuration
+#
+# This variable lists which packaging formats to enable. Multiple package backends
+# can be enabled at once and the first item listed in the variable will be used
+# to generate the root filesystems.
+# Options are:
+# - 'package_deb' for debian style deb files
+# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
+# - 'package_rpm' for rpm style packages
+# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
+# We default to rpm:
+PACKAGE_CLASSES ?= "package_rpm"
+
+#
+# SDK/ADT target architecture
+#
+# This variable specifies the architecture to build SDK/ADT items for and means
+# you can build the SDK packages for architectures other than the machine you are
+# running the build on (i.e. building i686 packages on an x86_64 host).
+# Supported values are i686 and x86_64
+#SDKMACHINE ?= "i686"
+
+SANITY_TESTED_DISTROS_append ?= " *"
+
+#
+# Extra image configuration defaults
+#
+# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
+# images. Some of these options are added to certain image types automatically. The
+# variable can contain the following options:
+# "dbg-pkgs" - add -dbg packages for all installed packages
+# (adds symbol information for debugging/profiling)
+# "dev-pkgs" - add -dev packages for all installed packages
+# (useful if you want to develop against libs in the image)
+# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
+# (useful if you want to run the package test suites)
+# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
+# "tools-debug" - add debugging tools (gdb, strace)
+# "eclipse-debug" - add Eclipse remote debugging support
+# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind)
+# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
+# "debug-tweaks" - make an image suitable for development
+# e.g. ssh root access has a blank password
+# There are other application targets that can be used here too, see
+# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
+# We default to enabling the debugging tweaks.
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+
+#
+# Additional image features
+#
+# The following is a list of additional classes to use when building images which
+# enable extra features. Some available options which can be included in this variable
+# are:
+# - 'buildstats' collect build statistics
+# - 'image-mklibs' to reduce shared library files size for an image
+# - 'image-prelink' in order to prelink the filesystem image
+# - 'image-swab' to perform host system intrusion detection
+# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
+# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+
+#
+# Runtime testing of images
+#
+# The build system can test booting virtual machine images under qemu (an emulator)
+# after any root filesystems are created and run tests against those images. To
+# enable this uncomment this line. See classes/testimage(-auto).bbclass for
+# further details.
+#TEST_IMAGE = "1"
+#
+# Interactive shell configuration
+#
+# Under certain circumstances the system may need input from you and to do this it
+# can launch an interactive shell. It needs to do this since the build is
+# multithreaded and needs to be able to handle the case where more than one parallel
+# process may require the user's attention. The default is iterate over the available
+# terminal types to find one that works.
+#
+# Examples of the occasions this may happen are when resolving patches which cannot
+# be applied, to use the devshell or the kernel menuconfig
+#
+# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
+# Note: currently, Konsole support only works for KDE 3.x due to the way
+# newer Konsole versions behave
+#OE_TERMINAL = "auto"
+# By default disable interactive patch resolution (tasks will just fail instead):
+PATCHRESOLVE = "noop"
+
+#
+# Disk Space Monitoring during the build
+#
+# Monitor the disk space during the build. If there is less that 1GB of space or less
+# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
+# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
+# of the build. The reason for this is that running completely out of space can corrupt
+# files and damages the build in ways which may not be easily recoverable.
+# It's necessary to monitor /tmp, if there is no space left the build will fail
+# with very exotic errors.
+BB_DISKMON_DIRS = "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+
+#
+# Shared-state files from other locations
+#
+# As mentioned above, shared state files are prebuilt cache data objects which can
+# used to accelerate build time. This variable can be used to configure the system
+# to search other mirror locations for these objects before it builds the data itself.
+#
+# This can be a filesystem directory, or a remote url such as http or ftp. These
+# would contain the sstate-cache results from previous builds (possibly from other
+# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
+# cache locations to check for the shared objects.
+# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
+# at the end as shown in the examples below. This will be substituted with the
+# correct path within the directory structure.
+#SSTATE_MIRRORS ?= "\
+#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+#file://.* file:///some/local/dir/sstate/PATH"
+
+
+#
+# Qemu configuration
+#
+# By default qemu will build with a builtin VNC server where graphical output can be
+# seen. The two lines below enable the SDL backend too. This assumes there is a
+# libsdl library available on your build system.
+#PACKAGECONFIG_append_pn-qemu-native = " sdl"
+#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+#ASSUME_PROVIDED += "libsdl-native"
+
+
+# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
+# track the version of this file when it was generated. This can safely be ignored if
+# this doesn't mean anything to you.
+CONF_VERSION = "1"
+
+# Set the root password to '0penBmc'
+INHERIT += "extrausers"
+
+EXTRA_USERS_PARAMS = " \
+ usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \
+ "
diff --git a/meta-ibm/meta-romulus/conf/machine/romulus.conf b/meta-ibm/meta-romulus/conf/machine/romulus.conf
new file mode 100644
index 000000000..14778f691
--- /dev/null
+++ b/meta-ibm/meta-romulus/conf/machine/romulus.conf
@@ -0,0 +1,20 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+UBOOT_MACHINE = "ast_g5_ncsi_config"
+
+PREFERRED_PROVIDER_virtual/p9-vcs-workaround = ''
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+require conf/machine/include/p9.inc
+
+PHOSPHOR_MRW_URI = "git://github.com/open-power/romulus-xml"
+PHOSPHOR_MRW_REV = "14b471fbf37f5fb60261de001df83caf5f96d81f"
+
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "romulus-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "romulus-led-manager-config-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "romulus-ipmi-fru-read-inventory-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-inventory-sel = "romulus-ipmi-inventory-sel-native"
+PREFERRED_PROVIDER_virtual/phosphor-logging-callouts = "romulus-phosphor-logging-callouts-native"
diff --git a/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg
new file mode 100644
index 000000000..9f8fdb977
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed/romulus.cfg
@@ -0,0 +1,4 @@
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_MAX31785=y
+CONFIG_RTC_DRV_RV8803=y
+CONFIG_SENSORS_W83773G=y
diff --git a/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..fd0a1495c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
+SRC_URI += "file://romulus.cfg"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb
new file mode 100644
index 000000000..e014da2e6
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Romulus AVSBus control"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools bash"
+
+S = "${WORKDIR}"
+SRC_URI += "file://avsbus-workaround.sh \
+ file://avsbus-enable.sh \
+ file://avsbus-disable.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/avsbus-workaround.sh \
+ ${D}${bindir}/avsbus-workaround.sh
+ install -m 0755 ${WORKDIR}/avsbus-disable.sh \
+ ${D}${bindir}/avsbus-disable.sh
+ install -m 0755 ${WORKDIR}/avsbus-enable.sh \
+ ${D}${bindir}/avsbus-enable.sh
+}
+
+TMPL_EN= "avsbus-enable@.service"
+TMPL_DIS= "avsbus-disable@.service"
+TMPL_WA= "avsbus-workaround@.service"
+INSTFMT_EN= "avsbus-enable@{0}.service"
+INSTFMT_DIS= "avsbus-disable@{0}.service"
+INSTFMT_WA= "avsbus-workaround@{0}.service"
+TGTFMT = "obmc-chassis-poweron@{0}.target"
+FMT_EN = "../${TMPL_EN}:${TGTFMT}.requires/${INSTFMT_EN}"
+FMT_DIS = "../${TMPL_DIS}:${TGTFMT}.requires/${INSTFMT_DIS}"
+FMT_WA = "../${TMPL_WA}:${TGTFMT}.requires/${INSTFMT_WA}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL_EN}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_EN', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_DIS}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_WA}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_WA', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
new file mode 100644
index 000000000..1c3600088
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x73 0x01 0x80 b # VDN 0
+i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+i2cset -y 5 0x70 0x01 0x80 b # VDD 1
+i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+i2cset -y 5 0x70 0x01 0x80 b # VCS 1
+i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set
+i2cset -y 5 0x73 0x01 0x80 b # VDN 1
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
new file mode 100644
index 000000000..424aa2394
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Disable the AVS bus on the VRMs
+Wants=avsbus-workaround@%i.service
+After=avsbus-workaround@%i.service
+Before=vrm-control@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-disable.sh
+SyslogIdentifier=avsbus-disable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
new file mode 100644
index 000000000..98e585cc2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x01 0xB0 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x01 0xB0 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x73 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x73 0x01 0xB0 b # VDN 0
+i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+i2cset -y 5 0x70 0x01 0xB0 b # VDD 1
+i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+i2cset -y 5 0x70 0x01 0xB0 b # VCS 1
+i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+i2cset -y 5 0x73 0x00 0x00 b # VDN 1 - PAGE set
+i2cset -y 5 0x73 0x01 0xB0 b # VDN 1
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
new file mode 100644
index 000000000..b7fb41e24
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Enable the AVS bus on VRMs
+Wants=vrm-control@%i.service
+After=vrm-control@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-enable.sh
+SyslogIdentifier=avsbus-enable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
new file mode 100644
index 000000000..75ec8caed
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+i2cset -y 4 0x28 0x2E 0x23 b # VDD/VCS 0
+i2cset -y 4 0x2B 0x2E 0x23 b # VDN 0
+i2cset -y 5 0x28 0x2E 0x23 b # VDD/VCS 1
+i2cset -y 5 0x2B 0x2E 0x23 b # VDN 1
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
new file mode 100644
index 000000000..156ef03c7
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/avsbus-control/avsbus-workaround@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Perform AVS bus workaround on VRMs
+Wants=op-power-start@.service
+After=op-power-start@.service
+Before=avsbus-disable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-workaround.sh
+SyslogIdentifier=avsbus-workaround.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb
new file mode 100644
index 000000000..e23bdd077
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Romulus VRM Overrides"
+DESCRIPTION = "Sets Rolumus VRMs to custom voltages"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools bash"
+
+S = "${WORKDIR}"
+SRC_URI += "file://vrm-control.sh \
+ file://vrm.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/vrm.sh ${D}${bindir}/vrm.sh
+ install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh
+}
+
+TMPL = "vrm-control@.service"
+INSTFMT = "vrm-control@{0}.service"
+TGTFMT = "obmc-chassis-poweron@{0}.target"
+FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
new file mode 100644
index 000000000..870124296
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -0,0 +1,137 @@
+#!/bin/bash
+# #########################################################
+# Script to run on Romulus BMC to read/set vrm voltages
+
+
+# #########################################################
+d2v () {
+# usage: d2v <decimal volts>
+
+echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
+}
+
+
+# #########################################################
+v2d () {
+# usage: v2d <hex val>
+
+printf " %0.3fV" `echo $1 | awk '{print $1 / 256}'`
+}
+
+
+# #########################################################
+i2d () {
+# usage: i2d <hex val> <current divisor>
+
+# parse current mantisa and exponent
+# format: SEEE ESMM MMMM MMMM
+let e=$1/0x800
+let esign=e/0x10
+let m=$1\&0x07FF
+let msign=m/0x0400
+
+if [ $msign -eq 1 ]
+then
+ # calc ones compliment
+ let m=($m^0x07FF)+1
+ m="-$m"
+fi
+if [ $esign -eq 1 ]
+then
+ # calc ones compliment
+ let e=(e^0x1F)+1
+ e="-$e"
+fi
+printf " %0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2) / $3}'`
+}
+
+
+# #########################################################
+rw_vc () {
+# usage: rw_vc <bus> <addr> <current divisor> <channel> <value>
+
+# select channel
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 $4 b
+fi
+
+# write new voltage set point
+if [ ! -e $5 ]
+then
+ i2cset -y $1 $2 0x21 `d2v $5` w
+fi
+
+# print voltage set point
+v2d `i2cget -y $1 $2 0x21 w`
+
+# print voltage
+v2d `i2cget -y $1 $2 0x8B w`
+
+# print current
+i2d `i2cget -y $1 $2 0x8C w` $3
+
+# default back to channel 0
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 0 b
+fi
+}
+
+
+# #########################################################
+# Main
+
+if [ -e $1 ]
+then
+ $0 vdda vcsa vdna vioa vddb vcsb vdnb viob
+ exit
+fi
+
+if [ $1 == "-h" ]
+then
+ echo " Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
+ echo " rail: vdda vcsa vdna vioa vddb vcsb vdnb viob"
+ echo " value: volts"
+ echo
+ echo " e.g., vrm vioa=1.0 viob=1.0"
+ echo
+ exit
+fi
+
+echo "rail set read current"
+echo "------- ------- ------- -------"
+for param in ${@:1}
+do
+ rail=`echo $param | cut -d'=' -f 1`
+ val=`echo ${param}= | cut -d'=' -f 2`
+ echo -n "$rail"
+ case "$rail" in
+ vdda)
+ rw_vc 4 0x70 2 0 $val
+ ;;
+ vddb)
+ rw_vc 5 0x70 2 0 $val
+ ;;
+ vcsa)
+ rw_vc 4 0x70 4 1 $val
+ ;;
+ vcsb)
+ rw_vc 5 0x70 4 1 $val
+ ;;
+ vdna)
+ rw_vc 4 0x73 2 0 $val
+ ;;
+ vdnb)
+ rw_vc 5 0x73 2 0 $val
+ ;;
+ vioa)
+ rw_vc 4 0x73 2 1 $val
+ ;;
+ viob)
+ rw_vc 5 0x73 2 1 $val
+ ;;
+ *)
+ echo " non-existant"
+ esac
+done
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service
new file mode 100644
index 000000000..22f0aeb87
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm-control@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Apply voltage overrides to VRMs
+Wants=avsbus-disable@%i.service
+After=avsbus-disable@%i.service
+Before=avsbus-enable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env vrm.sh
+SyslogIdentifier=vrm.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh
new file mode 100644
index 000000000..725e72f84
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/chassis/vrm-control/vrm.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+vrm-control.sh vdna=0.9 vdnb=0.9
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 000000000..a5ba3f328
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,4 @@
+lpc-address = 0x3f8
+sirq = 4
+local-tty = ttyS0
+local-tty-baud = 115200
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 000000000..4db6f3a6d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
new file mode 100644
index 000000000..ddf1556d2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -0,0 +1,423 @@
+groups:
+ - name: air_cooled_zone0_fans
+ description: Group of fan inventory objects for air cooled zone 0
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan0
+ - /system/chassis/motherboard/fan1
+ - /system/chassis/motherboard/fan2
+ - name: zone0_ambient
+ description: Group of ambient temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/outlet
+ - name: occ0_object
+ description: Dbus object containing OCC0 properties
+ type: /org/open_power/control
+ members:
+ - /occ0
+ - name: occ1_object
+ description: Dbus object containing OCC1 properties
+ type: /org/open_power/control
+ members:
+ - /occ1
+ - name: zone0_cores
+ description: Group of core temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p0_core0_temp
+ - /temperature/p0_core1_temp
+ - /temperature/p0_core2_temp
+ - /temperature/p0_core3_temp
+ - /temperature/p0_core4_temp
+ - /temperature/p0_core5_temp
+ - /temperature/p0_core6_temp
+ - /temperature/p0_core7_temp
+ - /temperature/p0_core8_temp
+ - /temperature/p0_core9_temp
+ - /temperature/p0_core10_temp
+ - /temperature/p0_core11_temp
+ - /temperature/p0_core12_temp
+ - /temperature/p0_core13_temp
+ - /temperature/p0_core14_temp
+ - /temperature/p0_core15_temp
+ - /temperature/p0_core16_temp
+ - /temperature/p0_core17_temp
+ - /temperature/p0_core18_temp
+ - /temperature/p0_core19_temp
+ - /temperature/p0_core20_temp
+ - /temperature/p0_core21_temp
+ - /temperature/p0_core22_temp
+ - /temperature/p0_core23_temp
+ - /temperature/p1_core0_temp
+ - /temperature/p1_core1_temp
+ - /temperature/p1_core2_temp
+ - /temperature/p1_core3_temp
+ - /temperature/p1_core4_temp
+ - /temperature/p1_core5_temp
+ - /temperature/p1_core6_temp
+ - /temperature/p1_core7_temp
+ - /temperature/p1_core8_temp
+ - /temperature/p1_core9_temp
+ - /temperature/p1_core10_temp
+ - /temperature/p1_core11_temp
+ - /temperature/p1_core12_temp
+ - /temperature/p1_core13_temp
+ - /temperature/p1_core14_temp
+ - /temperature/p1_core15_temp
+ - /temperature/p1_core16_temp
+ - /temperature/p1_core17_temp
+ - /temperature/p1_core18_temp
+ - /temperature/p1_core19_temp
+ - /temperature/p1_core20_temp
+ - /temperature/p1_core21_temp
+ - /temperature/p1_core22_temp
+ - /temperature/p1_core23_temp
+ - name: zone0_dimms
+ description: Group of dimm temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/dimm0_temp
+ - /temperature/dimm1_temp
+ - /temperature/dimm2_temp
+ - /temperature/dimm3_temp
+ - /temperature/dimm4_temp
+ - /temperature/dimm5_temp
+ - /temperature/dimm6_temp
+ - /temperature/dimm7_temp
+ - /temperature/dimm8_temp
+ - /temperature/dimm9_temp
+ - /temperature/dimm10_temp
+ - /temperature/dimm11_temp
+ - /temperature/dimm12_temp
+ - /temperature/dimm13_temp
+ - /temperature/dimm14_temp
+ - /temperature/dimm15_temp
+
+matches:
+ - name: propertiesChanged
+ description: >
+ A property changed match
+ parameters:
+ - object
+ - interface
+ signal: propertySignal
+ - name: interfacesAdded
+ description: >
+ An interfaces added match
+ parameters:
+ - object
+ signal: objectSignal
+ - name: nameOwnerChanged
+ description: >
+ A name owner changed match
+ parameters:
+ - object
+ - interface
+ signal: ownerSignal
+
+signals:
+ - name: propertySignal
+ description: >
+ Handle property signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: objectSignal
+ description: >
+ Handle object signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: ownerSignal
+ description: >
+ Handle owner signals
+ parameters:
+ - object
+ - interface
+ handler: setService
+
+handlers:
+ - name: setProperty
+ description: >
+ Sets a value for the given object/interface/property
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ - name: setService
+ description: >
+ Sets the service name(s) for the given group
+ parameters:
+ - group
+
+preconditions:
+ - name: property_states_match
+ description: >
+ All defined properties must match the values given to
+ enable a set speed event otherwise fan speeds are set to full
+ parameters:
+ - groups
+
+actions:
+ - name: call_actions_based_on_timer
+ description: >
+ Sets up a list of actions to be invoked when the defined timer
+ expires (or for each expiration of a repeating timer)
+ parameters:
+ - timer
+ - actions
+ - name: default_floor_on_missing_owner
+ description: >
+ Set the fan floor to the default floor
+ - name: set_speed_on_missing_owner
+ description: >
+ Set fans to the given speed when any service within the group
+ no longer exists
+ parameters:
+ - speed
+ - name: set_request_speed_base_with_max
+ description: >
+ Set the base request speed of a zone to the max value of a group for
+ calculating a new target speed
+ - name: count_state_before_speed
+ description: Set the speed when a number of properties at a state
+ parameters:
+ - count
+ - property
+ - speed
+ - name: set_floor_from_average_sensor_value
+ description: Set floor speed from first entry with average less than key
+ parameters:
+ - map
+ - name: set_ceiling_from_average_sensor_value
+ description: Set ceiling speed based on key transition values with average
+ parameters:
+ - map
+ - name: set_net_increase_speed
+ description: >
+ Set the speed increase delta based on a factor applied to
+ the delta increase size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+ - name: set_net_decrease_speed
+ description: >
+ Set the speed decrease delta based on a factor applied to
+ the delta decrease size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+
+events:
+ - name: default_fan_floor_on_service_fail
+ groups:
+ - name: zone0_ambient
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: default_floor_on_missing_owner
+ - name: high_speed_on_occ0_service_fail
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 255
+ type: uint64_t
+ - name: high_speed_on_occ1_service_fail
+ groups:
+ - name: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 255
+ type: uint64_t
+ - name: missing_before_high_speed_air
+ groups:
+ - name: air_cooled_zone0_fans
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 255
+ type: uint64_t
+ - name: fails_before_high_speed_air
+ groups:
+ - name: air_cooled_zone0_fans
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 255
+ type: uint64_t
+ - name: set_air_cooled_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone0_ambient
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: set_floor_from_average_sensor_value
+ map:
+ value:
+ - 27000: 85
+ - 32000: 112
+ - 37000: 126
+ - 40000: 141
+ type: std::map<int64_t, uint64_t>
+ - name: set_ceiling_from_average_sensor_value
+ map:
+ value:
+ - 25000: 175
+ - 27000: 255
+ type: std::map<int64_t, uint64_t>
+ - name: occ_active_speed_changes
+ precondition:
+ name: property_states_match
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ - name: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ events:
+ - name: speed_changes_based_on_core_temps
+ groups:
+ - name: zone0_cores
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 73000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 11
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 70000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 11
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_dimm_temps
+ groups:
+ - name: zone0_dimms
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 64000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 6
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 61000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 6
+ type: uint64_t
+ timer:
+ interval: 5
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml
new file mode 100644
index 000000000..f910e6253
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-fan-config-native/fans.yaml
@@ -0,0 +1,16 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan0
+ cooling_zone: 0
+ sensors:
+ - fan0
+ target_interface: xyz.openbmc_project.Control.FanPwm
+ - inventory: /system/chassis/motherboard/fan1
+ cooling_zone: 0
+ sensors:
+ - fan1
+ target_interface: xyz.openbmc_project.Control.FanPwm
+ - inventory: /system/chassis/motherboard/fan2
+ cooling_zone: 0
+ sensors:
+ - fan2
+ target_interface: xyz.openbmc_project.Control.FanPwm
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
new file mode 100644
index 000000000..7dc99b6a2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
@@ -0,0 +1,9 @@
+conditions:
+ - name: air_cooled_chassis
+ type: getProperty
+ properties:
+ - property: WaterCooled
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ path: /xyz/openbmc_project/inventory/system/chassis
+ type: bool
+ value: false
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
new file mode 100644
index 000000000..6d4804d12
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
new file mode 100644
index 000000000..91df5c25d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
@@ -0,0 +1,13 @@
+manager_configuration:
+ power_on_delay: 20
+
+zone_configuration:
+
+#Air cooled zones
+- zone_conditions:
+ zones:
+ - zone: 0
+ full_speed: 255
+ default_floor: 195
+ increase_delay: 5
+ decrease_interval: 30
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
new file mode 100644
index 000000000..445a111a8
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
@@ -0,0 +1,33 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan0
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan0
+ has_target: true
+ target_interface: xyz.openbmc_project.Control.FanPwm
+ factor: 21
+ offset: 1600
+
+ - inventory: /system/chassis/motherboard/fan1
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan1
+ has_target: true
+ target_interface: xyz.openbmc_project.Control.FanPwm
+ factor: 21
+ offset: 1600
+
+ - inventory: /system/chassis/motherboard/fan2
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan2
+ has_target: true
+ target_interface: xyz.openbmc_project.Control.FanPwm
+ factor: 21
+ offset: 1600
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml
new file mode 100644
index 000000000..5acb91fc7
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan-presence-config-native/config.yaml
@@ -0,0 +1,20 @@
+- name: fan0
+ path: /system/chassis/motherboard/fan0
+ methods:
+ - type: tach
+ sensors:
+ - fan0
+
+- name: fan1
+ path: /system/chassis/motherboard/fan1
+ methods:
+ - type: tach
+ sensors:
+ - fan1
+
+- name: fan2
+ path: /system/chassis/motherboard/fan2
+ methods:
+ - type: tach
+ sensors:
+ - fan2
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend
new file mode 100644
index 000000000..86ed1d4a2
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan.bbappend
@@ -0,0 +1,22 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+
+# Package configuration
+FAN_PACKAGES += " \
+ phosphor-cooling-type \
+"
+
+PACKAGECONFIG += "cooling-type"
+
+TMPL_COOLING = "phosphor-cooling-type@.service"
+INSTFMT_COOLING = "phosphor-cooling-type@{0}.service"
+COOLING_TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}"
+
+FILES_phosphor-cooling-type = "${sbindir}/phosphor-cooling-type"
+SYSTEMD_SERVICE_phosphor-cooling-type += "${TMPL_COOLING}"
+SYSTEMD_LINK_phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}"
+
+COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf"
+
+SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type += "${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf
new file mode 100644
index 000000000..21fcfcb49
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/obmc/phosphor-fan/phosphor-cooling-type-0.conf
@@ -0,0 +1,3 @@
+OBJPATH="--path=/system/chassis"
+AIR="--air"
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service
new file mode 100644
index 000000000..7452b9182
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/fans/phosphor-fan/phosphor-cooling-type@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor Cooling Type
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+ConditionPathExists={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+
+[Service]
+EnvironmentFile={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+ExecStart=/usr/bin/env phosphor-cooling-type ${{OBJPATH}} ${{AIR}}
+SyslogIdentifier=phosphor-cooling-type
+
+[Install]
+RequiredBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend
new file mode 100644
index 000000000..c92b1a89c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/flash/phosphor-software-manager.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG_append = " verify_signature"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
new file mode 100644
index 000000000..7267ee3d5
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Romulus ID Button pressed application"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+DEPENDS += "virtual/obmc-gpio-monitor"
+RDEPENDS_${PN} += "virtual/obmc-gpio-monitor"
+
+S = "${WORKDIR}"
+SRC_URI += "file://toggle_identify_led.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/toggle_identify_led.sh \
+ ${D}${bindir}/toggle_identify_led.sh
+}
+
+SYSTEMD_ENVIRONMENT_FILE_${PN} +="obmc/gpio/id_button"
+
+ID_BUTTON_SERVICE = "id_button"
+
+TMPL = "phosphor-gpio-monitor@.service"
+INSTFMT = "phosphor-gpio-monitor@{0}.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "id-button-pressed.service"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'ID_BUTTON_SERVICE')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
new file mode 100644
index 000000000..f633fc307
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=ID Button Pressed Service
+Wants=mapper-wait@-xyz-openbmc_project-led-groups.service
+After=mapper-wait@-xyz-openbmc_project-led-groups.service
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env toggle_identify_led.sh
+SyslogIdentifier=id-button
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
new file mode 100644
index 000000000..b1963573f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=135
+POLARITY=1
+TARGET=id-button-pressed.service
+EXTRA_ARGS=--continue
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
new file mode 100755
index 000000000..eec96d3f1
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Toggle the state of identify LED Group
+
+SERVICE="xyz.openbmc_project.LED.GroupManager"
+INTERFACE="xyz.openbmc_project.Led.Group"
+PROPERTY="Asserted"
+
+# Get current state
+object=$(busctl tree $SERVICE --list | grep identify)
+state=$(busctl get-property $SERVICE $object $INTERFACE $PROPERTY \
+ | awk '{print $NF;}')
+
+if [ "$state" == "false" ]; then
+ target='true'
+else
+ target='false'
+fi
+
+# Set target state
+busctl set-property $SERVICE $object $INTERFACE $PROPERTY b $target
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend
new file mode 100644
index 000000000..4cac4903f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/host/p9-host-start.bbappend
@@ -0,0 +1,3 @@
+RDEPENDS_${PN} += 'avsbus-control'
+RDEPENDS_${PN} += 'vrm-control'
+RDEPENDS_${PN}_remove += "p9-vcs-workaround"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..772685db7
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd liberation-fonts uart-render-controller"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml
new file mode 100644
index 000000000..de2e81474
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/config.yaml
@@ -0,0 +1,538 @@
+1:
+ /system/chassis/motherboard/cpu0:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+2:
+ /system/chassis/motherboard/cpu1:
+ entityID: 3
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ Value: False
+3:
+ /system/chassis/motherboard:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ /system:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+
+
+4:
+ /system/chassis/motherboard/dimm0:
+ entityID: 32
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+5:
+ /system/chassis/motherboard/dimm1:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+6:
+ /system/chassis/motherboard/dimm2:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+7:
+ /system/chassis/motherboard/dimm3:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+8:
+ /system/chassis/motherboard/dimm4:
+ entityID: 32
+ entityInstance: 5
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+9:
+ /system/chassis/motherboard/dimm5:
+ entityID: 32
+ entityInstance: 6
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+10:
+ /system/chassis/motherboard/dimm6:
+ entityID: 32
+ entityInstance: 7
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+11:
+ /system/chassis/motherboard/dimm7:
+ entityID: 32
+ entityInstance: 8
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+12:
+ /system/chassis/motherboard/dimm8:
+ entityID: 32
+ entityInstance: 9
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+13:
+ /system/chassis/motherboard/dimm9:
+ entityID: 32
+ entityInstance: 10
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+14:
+ /system/chassis/motherboard/dimm10:
+ entityID: 32
+ entityInstance: 11
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+15:
+ /system/chassis/motherboard/dimm11:
+ entityID: 32
+ entityInstance: 12
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+16:
+ /system/chassis/motherboard/dimm12:
+ entityID: 32
+ entityInstance: 13
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+17:
+ /system/chassis/motherboard/dimm13:
+ entityID: 32
+ entityInstance: 14
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+18:
+ /system/chassis/motherboard/dimm14:
+ entityID: 32
+ entityInstance: 15
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+19:
+ /system/chassis/motherboard/dimm15:
+ entityID: 32
+ entityInstance: 16
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml
new file mode 100755
index 000000000..9a5189a6e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/files/sel-config.yaml
@@ -0,0 +1,340 @@
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0:
+ sensorID: 0x0B
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1:
+ sensorID: 0x0C
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10:
+ sensorID: 0x15
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11:
+ sensorID: 0x16
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12:
+ sensorID: 0x17
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13:
+ sensorID: 0x18
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14:
+ sensorID: 0x19
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15:
+ sensorID: 0x1A
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2:
+ sensorID: 0x0D
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3:
+ sensorID: 0x0E
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4:
+ sensorID: 0x0F
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5:
+ sensorID: 0x10
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6:
+ sensorID: 0x11
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7:
+ sensorID: 0x12
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8:
+ sensorID: 0x13
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9:
+ sensorID: 0x14
+ sensorType: 0x0C
+ eventReadingType: 0x6F
+ offset: 0x04
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0:
+ sensorID: 0x08
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0:
+ sensorID: 0x2B
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1:
+ sensorID: 0x2C
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2:
+ sensorID: 0x2D
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3:
+ sensorID: 0x2E
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4:
+ sensorID: 0x2F
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5:
+ sensorID: 0x30
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6:
+ sensorID: 0x31
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7:
+ sensorID: 0x32
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8:
+ sensorID: 0x33
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9:
+ sensorID: 0x34
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10:
+ sensorID: 0x35
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11:
+ sensorID: 0x36
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12:
+ sensorID: 0x37
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13:
+ sensorID: 0x38
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14:
+ sensorID: 0x39
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15:
+ sensorID: 0x3A
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16:
+ sensorID: 0x3B
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17:
+ sensorID: 0x3C
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18:
+ sensorID: 0x3D
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19:
+ sensorID: 0x3E
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20:
+ sensorID: 0x3F
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21:
+ sensorID: 0x40
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22:
+ sensorID: 0x41
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23:
+ sensorID: 0x42
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1:
+ sensorID: 0x09
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0:
+ sensorID: 0x43
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1:
+ sensorID: 0x44
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2:
+ sensorID: 0x45
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3:
+ sensorID: 0x46
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4:
+ sensorID: 0x47
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5:
+ sensorID: 0x48
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6:
+ sensorID: 0x49
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7:
+ sensorID: 0x4A
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8:
+ sensorID: 0x4B
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9:
+ sensorID: 0x4C
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10:
+ sensorID: 0x4D
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11:
+ sensorID: 0x4E
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12:
+ sensorID: 0x4F
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13:
+ sensorID: 0x50
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14:
+ sensorID: 0x51
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15:
+ sensorID: 0x52
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16:
+ sensorID: 0x53
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17:
+ sensorID: 0x54
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18:
+ sensorID: 0x55
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19:
+ sensorID: 0x56
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20:
+ sensorID: 0x57
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21:
+ sensorID: 0x58
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22:
+ sensorID: 0x59
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23:
+ sensorID: 0x5A
+ sensorType: 0x07
+ eventReadingType: 0x6F
+ offset: 0x08
+/xyz/openbmc_project/inventory/system/chassis/motherboard:
+ sensorID: 0x8C
+ sensorType: 0xC7
+ eventReadingType: 0x03
+ offset: 0x00
+/xyz/openbmc_project/inventory/system:
+ sensorID: 0x90
+ sensorType: 0x12
+ eventReadingType: 0x6F
+ offset: 0x02
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
new file mode 100644
index 000000000..ae626ed05
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-properties%/extra-properties.yaml
@@ -0,0 +1,159 @@
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/cpu1:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm1:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm2:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm3:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm4:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm5:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm6:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm7:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm8:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm9:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm10:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm11:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm12:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm13:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm14:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+
+/system/chassis/motherboard/dimm15:
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
new file mode 100644
index 000000000..597368950
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
@@ -0,0 +1,27 @@
+50:
+ /system/chassis/motherboard/fan0:
+ entityID: 29
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+51:
+ /system/chassis/motherboard/fan1:
+ entityID: 29
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+52:
+ /system/chassis/motherboard/fan2:
+ entityID: 29
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
new file mode 100644
index 000000000..d3f84319e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_append_romulus := ":${THISDIR}/${PN}"
+SRC_URI_append_romulus = " \
+ file://channel.yaml \
+ "
+
+EXTRA_OECONF_append_romulus = " \
+ CHANNEL_YAML_GEN=${WORKDIR}/channel.yaml \
+ "
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
new file mode 100644
index 000000000..627f4965f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
@@ -0,0 +1,4 @@
+# Channel Number (must be unique) is the key
+1:
+ # ifName the ethernet device name (used in the dbus path)
+ ifName: eth0
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
new file mode 100755
index 000000000..1938135e3
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
@@ -0,0 +1,3560 @@
+2:
+ entityID: 34
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.State.Boot.Progress:
+ BootProgress:
+ Offsets:
+ 0:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+ type: string
+ 1:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+ type: string
+ 3:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+ type: string
+ 7:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+ type: string
+ 19:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+ type: string
+ 20:
+ set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+ type: string
+ mutability: Mutability::Write|Mutability::Read
+ path: /xyz/openbmc_project/state/host0
+ readingType: eventdata2
+ sensorNamePattern: nameProperty
+ sensorReadingType: 111
+ sensorType: 15
+ serviceInterface: org.freedesktop.DBus.Properties
+3:
+ entityID: 210
+ entityInstance: 1
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0:
+ assert: false
+ deassert: true
+ type: bool
+ 1:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /org/open_power/control/occ0
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 9
+ sensorType: 7
+ serviceInterface: org.freedesktop.DBus.Properties
+4:
+ entityID: 210
+ entityInstance: 2
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0:
+ assert: false
+ deassert: true
+ type: bool
+ 1:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /org/open_power/control/occ1
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 9
+ sensorType: 7
+ serviceInterface: org.freedesktop.DBus.Properties
+8:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+9:
+ entityID: 3
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+11:
+ entityID: 32
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm0
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+12:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm1
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+13:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm2
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+14:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm3
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+15:
+ entityID: 32
+ entityInstance: 5
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm4
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+16:
+ entityID: 32
+ entityInstance: 6
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm5
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+17:
+ entityID: 32
+ entityInstance: 7
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm6
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+18:
+ entityID: 32
+ entityInstance: 8
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm7
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+19:
+ entityID: 32
+ entityInstance: 9
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm8
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+20:
+ entityID: 32
+ entityInstance: 10
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm9
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+21:
+ entityID: 32
+ entityInstance: 11
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm10
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+22:
+ entityID: 32
+ entityInstance: 12
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm11
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+23:
+ entityID: 32
+ entityInstance: 13
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm12
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+24:
+ entityID: 32
+ entityInstance: 14
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm13
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+25:
+ entityID: 32
+ entityInstance: 15
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm14
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+26:
+ entityID: 32
+ entityInstance: 16
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 4:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 6:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/dimm15
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 12
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+27:
+ bExp: 0
+ entityID: 32
+ entityInstance: 17
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm0_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+28:
+ bExp: 0
+ entityID: 32
+ entityInstance: 18
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm1_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+29:
+ bExp: 0
+ entityID: 32
+ entityInstance: 25
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm2_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+30:
+ bExp: 0
+ entityID: 32
+ entityInstance: 26
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm3_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+31:
+ bExp: 0
+ entityID: 32
+ entityInstance: 27
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm4_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+32:
+ bExp: 0
+ entityID: 32
+ entityInstance: 28
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm5_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+33:
+ bExp: 0
+ entityID: 32
+ entityInstance: 29
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm6_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+34:
+ bExp: 0
+ entityID: 32
+ entityInstance: 30
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm7_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+35:
+ bExp: 0
+ entityID: 32
+ entityInstance: 31
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm8_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+36:
+ bExp: 0
+ entityID: 32
+ entityInstance: 32
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm9_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+37:
+ bExp: 0
+ entityID: 32
+ entityInstance: 19
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm10_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+38:
+ bExp: 0
+ entityID: 32
+ entityInstance: 20
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm11_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+39:
+ bExp: 0
+ entityID: 32
+ entityInstance: 21
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm12_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+40:
+ bExp: 0
+ entityID: 32
+ entityInstance: 22
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm13_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+41:
+ bExp: 0
+ entityID: 32
+ entityInstance: 23
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm14_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+42:
+ bExp: 0
+ entityID: 32
+ entityInstance: 24
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/dimm15_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+43:
+ entityID: 208
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core0
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+44:
+ entityID: 208
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core1
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+45:
+ entityID: 208
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core2
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+46:
+ entityID: 208
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core3
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+47:
+ entityID: 208
+ entityInstance: 5
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core4
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+48:
+ entityID: 208
+ entityInstance: 6
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core5
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+49:
+ entityID: 208
+ entityInstance: 7
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core6
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+50:
+ entityID: 208
+ entityInstance: 8
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core7
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+51:
+ entityID: 208
+ entityInstance: 9
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core8
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+52:
+ entityID: 208
+ entityInstance: 10
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core9
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+53:
+ entityID: 208
+ entityInstance: 11
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core10
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+54:
+ entityID: 208
+ entityInstance: 12
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core11
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+55:
+ entityID: 208
+ entityInstance: 13
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core12
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+56:
+ entityID: 208
+ entityInstance: 14
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core13
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+57:
+ entityID: 208
+ entityInstance: 15
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core14
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+58:
+ entityID: 208
+ entityInstance: 16
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core15
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+59:
+ entityID: 208
+ entityInstance: 17
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core16
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+60:
+ entityID: 208
+ entityInstance: 18
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core17
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+61:
+ entityID: 208
+ entityInstance: 19
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core18
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+62:
+ entityID: 208
+ entityInstance: 20
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core19
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+63:
+ entityID: 208
+ entityInstance: 21
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core20
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+64:
+ entityID: 208
+ entityInstance: 22
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core21
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+65:
+ entityID: 208
+ entityInstance: 23
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core22
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+66:
+ entityID: 208
+ entityInstance: 24
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu0/core23
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+67:
+ entityID: 208
+ entityInstance: 25
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core0
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+68:
+ entityID: 208
+ entityInstance: 26
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core1
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+69:
+ entityID: 208
+ entityInstance: 27
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core2
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+70:
+ entityID: 208
+ entityInstance: 28
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core3
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+71:
+ entityID: 208
+ entityInstance: 29
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core4
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+72:
+ entityID: 208
+ entityInstance: 30
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core5
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+73:
+ entityID: 208
+ entityInstance: 31
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core6
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+74:
+ entityID: 208
+ entityInstance: 32
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core7
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+75:
+ entityID: 208
+ entityInstance: 33
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core8
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+76:
+ entityID: 208
+ entityInstance: 34
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core9
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+77:
+ entityID: 208
+ entityInstance: 35
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core10
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+78:
+ entityID: 208
+ entityInstance: 36
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core11
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+79:
+ entityID: 208
+ entityInstance: 37
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core12
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+80:
+ entityID: 208
+ entityInstance: 38
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core13
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+81:
+ entityID: 208
+ entityInstance: 39
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core14
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+82:
+ entityID: 208
+ entityInstance: 40
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core15
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+83:
+ entityID: 208
+ entityInstance: 41
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core16
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+84:
+ entityID: 208
+ entityInstance: 42
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core17
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+85:
+ entityID: 208
+ entityInstance: 43
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core18
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+86:
+ entityID: 208
+ entityInstance: 44
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core19
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+87:
+ entityID: 208
+ entityInstance: 45
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core20
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+88:
+ entityID: 208
+ entityInstance: 46
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core21
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+89:
+ entityID: 208
+ entityInstance: 47
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core22
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+90:
+ entityID: 208
+ entityInstance: 48
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ Present:
+ Offsets:
+ 7:
+ assert: true
+ deassert: false
+ skipOn: deassert
+ type: bool
+ xyz.openbmc_project.State.Decorator.OperationalStatus:
+ Functional:
+ Offsets:
+ 8:
+ assert: false
+ deassert: true
+ type: bool
+ Prereqs:
+ 7:
+ assert: true
+ deassert: false
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /system/chassis/motherboard/cpu1/core23
+ readingType: assertion
+ sensorNamePattern: nameParentLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+91:
+ bExp: 0
+ entityID: 208
+ entityInstance: 49
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+92:
+ bExp: 0
+ entityID: 208
+ entityInstance: 50
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+93:
+ bExp: 0
+ entityID: 208
+ entityInstance: 51
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+94:
+ bExp: 0
+ entityID: 208
+ entityInstance: 52
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+95:
+ bExp: 0
+ entityID: 208
+ entityInstance: 53
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+96:
+ bExp: 0
+ entityID: 208
+ entityInstance: 54
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+97:
+ bExp: 0
+ entityID: 208
+ entityInstance: 55
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+98:
+ bExp: 0
+ entityID: 208
+ entityInstance: 56
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+99:
+ bExp: 0
+ entityID: 208
+ entityInstance: 57
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+100:
+ bExp: 0
+ entityID: 208
+ entityInstance: 58
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+101:
+ bExp: 0
+ entityID: 208
+ entityInstance: 59
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+102:
+ bExp: 0
+ entityID: 208
+ entityInstance: 60
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+103:
+ bExp: 0
+ entityID: 208
+ entityInstance: 61
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+104:
+ bExp: 0
+ entityID: 208
+ entityInstance: 62
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+105:
+ bExp: 0
+ entityID: 208
+ entityInstance: 63
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+106:
+ bExp: 0
+ entityID: 208
+ entityInstance: 64
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+107:
+ bExp: 0
+ entityID: 208
+ entityInstance: 65
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+108:
+ bExp: 0
+ entityID: 208
+ entityInstance: 66
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+109:
+ bExp: 0
+ entityID: 208
+ entityInstance: 67
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+110:
+ bExp: 0
+ entityID: 208
+ entityInstance: 68
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+111:
+ bExp: 0
+ entityID: 208
+ entityInstance: 69
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+112:
+ bExp: 0
+ entityID: 208
+ entityInstance: 70
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+113:
+ bExp: 0
+ entityID: 208
+ entityInstance: 71
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+114:
+ bExp: 0
+ entityID: 208
+ entityInstance: 72
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+115:
+ bExp: 0
+ entityID: 208
+ entityInstance: 73
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+116:
+ bExp: 0
+ entityID: 208
+ entityInstance: 74
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+117:
+ bExp: 0
+ entityID: 208
+ entityInstance: 75
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+118:
+ bExp: 0
+ entityID: 208
+ entityInstance: 76
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+119:
+ bExp: 0
+ entityID: 208
+ entityInstance: 77
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+120:
+ bExp: 0
+ entityID: 208
+ entityInstance: 78
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+121:
+ bExp: 0
+ entityID: 208
+ entityInstance: 79
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+122:
+ bExp: 0
+ entityID: 208
+ entityInstance: 80
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+123:
+ bExp: 0
+ entityID: 208
+ entityInstance: 81
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+124:
+ bExp: 0
+ entityID: 208
+ entityInstance: 82
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+125:
+ bExp: 0
+ entityID: 208
+ entityInstance: 83
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+126:
+ bExp: 0
+ entityID: 208
+ entityInstance: 84
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+127:
+ bExp: 0
+ entityID: 208
+ entityInstance: 85
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+128:
+ bExp: 0
+ entityID: 208
+ entityInstance: 86
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+129:
+ bExp: 0
+ entityID: 208
+ entityInstance: 87
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+130:
+ bExp: 0
+ entityID: 208
+ entityInstance: 88
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+131:
+ bExp: 0
+ entityID: 208
+ entityInstance: 89
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+132:
+ bExp: 0
+ entityID: 208
+ entityInstance: 90
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+133:
+ bExp: 0
+ entityID: 208
+ entityInstance: 91
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+134:
+ bExp: 0
+ entityID: 208
+ entityInstance: 92
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+135:
+ bExp: 0
+ entityID: 208
+ entityInstance: 93
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+136:
+ bExp: 0
+ entityID: 208
+ entityInstance: 94
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+137:
+ bExp: 0
+ entityID: 208
+ entityInstance: 95
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+138:
+ bExp: 0
+ entityID: 208
+ entityInstance: 96
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 1
+ mutability: Mutability::Write|Mutability::Read
+ offsetB: -127
+ path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+ rExp: 0
+ readingType: readingData
+ scale: -3
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 1
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+139:
+ entityID: 34
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Control.Boot.RebootAttempts:
+ AttemptsLeft:
+ Offsets:
+ 255:
+ type: uint32_t
+ mutability: Mutability::Write|Mutability::Read
+ path: /xyz/openbmc_project/state/host0
+ readingType: readingAssertion
+ sensorNamePattern: nameProperty
+ sensorReadingType: 111
+ sensorType: 195
+ serviceInterface: org.freedesktop.DBus.Properties
+145:
+ entityID: 35
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.State.OperatingSystem.Status:
+ OperatingSystemState:
+ Offsets:
+ 1:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+ type: string
+ 2:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+ type: string
+ 3:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+ type: string
+ 4:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+ type: string
+ 5:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+ type: string
+ 6:
+ assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+ type: string
+ mutability: Mutability::Write|Mutability::Read
+ path: /xyz/openbmc_project/state/host0
+ readingType: assertion
+ sensorNamePattern: nameProperty
+ sensorReadingType: 111
+ sensorType: 31
+ serviceInterface: org.freedesktop.DBus.Properties
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb
new file mode 100644
index 000000000..5551200e1
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-fru-read-inventory-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Romulus inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${config_datadir}
+ install -d ${DEST}
+ install config.yaml ${DEST}
+}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb
new file mode 100644
index 000000000..c418498f5
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-map-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Romulus IPMI to DBus Inventory mapping."
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-ipmi-fru
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+ # TODO: install this to inventory_datadir
+ # after ipmi-fru-parser untangles the host
+ # firmware config from the machine inventory.
+ DEST=${D}${config_datadir}
+
+ install -d ${DEST}
+ install config.yaml ${DEST}
+}
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb
new file mode 100644
index 000000000..93907c858
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/romulus-ipmi-inventory-sel-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Inventory to Sensor config for Romulus"
+PR = "r1"
+
+inherit native
+inherit phosphor-ipmi-host
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-ipmi-inventory-sel"
+
+SRC_URI += "file://sel-config.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${sensor_datadir}
+ install -d ${DEST}
+ install sel-config.yaml ${DEST}/invsensor.yaml
+}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb
new file mode 100644
index 000000000..3c7adaaac
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Phosphor LED Group Management for Romulus"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Overwrite the example led layout yaml file prior
+# to building the phosphor-led-manager package
+do_install() {
+ SRC=${S}
+ DEST=${D}${datadir}/phosphor-led-manager
+ install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml
new file mode 100755
index 000000000..b2e96c250
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/leds/romulus-led-manager-config/led.yaml
@@ -0,0 +1,335 @@
+bmc_booted:
+ power:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ Priority: 'On'
+
+power_on:
+ power:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'On'
+
+enclosure_fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+
+enclosure_identify:
+ identify:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+
+# The Op Panel on the Romulus system holds a multicolor LED.
+# Both the 'fault' and 'identify' gpios are wired to the same LED.
+# By holding one in 'on' while the other in 'blink' state, ensures
+# the manufacturing process can verify both colors function
+lamp_test:
+ fault:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ Priority: 'Blink'
+ identify:
+ Action: 'On'
+
+# All kinds of faults using the same action as enclosure_fault
+Fan0Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+Fan1Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+Fan2Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+bmcFault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core0Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core1Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core2Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core3Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core4Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core5Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core6Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core7Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core8Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core9Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core10Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core11Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core12Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core13Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core14Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core15Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core16Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core17Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core18Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core19Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core20Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core21Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core22Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+core23Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+cpu0Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+cpu1Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm0Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm1Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm2Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm3Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm4Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm5Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm6Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm7Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm8Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm9Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm10Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm11Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm12Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm13Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm14Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+dimm15Fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+motherboardFault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+occFault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
+systemFault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
+ Priority: 'Blink'
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml b/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml
new file mode 100644
index 000000000..02bb3d8bb
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/logging/files/callouts.yaml
@@ -0,0 +1,5 @@
+# TODO: Add i2c devices like
+# /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0052: /system/chassis/motherboard
+/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw: /system/chassis/motherboard/cpu0
+/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/00:00:00:0a/fsi1/slave@01:00/raw: /system/chassis/motherboard/cpu1
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb b/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb
new file mode 100644
index 000000000..375213957
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/logging/romulus-phosphor-logging-callouts-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Romulus inventory map for phosphor-ipmi-host"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-logging
+
+SRC_URI += "file://callouts.yaml"
+
+PROVIDES += "virtual/phosphor-logging-callouts"
+
+S = "${WORKDIR}"
+
+do_install() {
+ DEST=${D}${callouts_datadir}
+ install -d ${DEST}
+ install callouts.yaml ${DEST}
+}
+
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend
new file mode 100644
index 000000000..8b6248a46
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/mboxd/mboxd.bbappend
@@ -0,0 +1 @@
+MBOXD_FLASH_SIZE = "64M"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 000000000..ea1a7e3e6
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS_${PN}-inventory += " openpower-occ-control phosphor-cooling-type id-button"
+RDEPENDS_${PN}-extras += " phosphor-webui phosphor-image-signing"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
new file mode 100644
index 000000000..536d797fa
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%.bbappend
@@ -0,0 +1,23 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append_romulus = " --enable-negative-errno-on-fail"
+
+CHIPS = " \
+ i2c@1e78a000/i2c-bus@440/w83773g@4c \
+ pwm-tacho-controller@1e786000 \
+ "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"
+
+OCCS = " \
+ 00--00--00--06/sbefifo1-dev0/occ-hwmon.1 \
+ 00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2 \
+ "
+
+OCCSFMT = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf"
+OCCITEMS = "${@compose_list(d, 'OCCSFMT', 'OCCS')}"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'OCCITEMS')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
new file mode 100644
index 000000000..86a802698
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@440/w83773g@4c.conf
@@ -0,0 +1,17 @@
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
+
+LABEL_temp2 = "inlet_cpu"
+WARNHI_temp2 = "60000"
+WARNLO_temp2 = "0"
+CRITHI_temp2 = "70000"
+CRITLO_temp2 = "0"
+
+LABEL_temp3 = "inlet_io"
+WARNHI_temp3 = "60000"
+WARNLO_temp3 = "0"
+CRITHI_temp3 = "70000"
+CRITLO_temp3 = "0"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
new file mode 100644
index 000000000..374115ca5
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
@@ -0,0 +1,8 @@
+# Romulus has 7 fan ports but only 3 are used
+LABEL_fan9 = "fan0"
+LABEL_fan11 = "fan1"
+LABEL_fan13 = "fan2"
+
+PWM_TARGET_fan9 = "1"
+PWM_TARGET_fan11 = "2"
+PWM_TARGET_fan13 = "1"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
new file mode 100644
index 000000000..792ae092c
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
@@ -0,0 +1,67 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+LABEL_temp91 = "p0_core0_temp"
+LABEL_temp92 = "p0_core1_temp"
+LABEL_temp93 = "p0_core2_temp"
+LABEL_temp94 = "p0_core3_temp"
+LABEL_temp95 = "p0_core4_temp"
+LABEL_temp96 = "p0_core5_temp"
+LABEL_temp97 = "p0_core6_temp"
+LABEL_temp98 = "p0_core7_temp"
+LABEL_temp99 = "p0_core8_temp"
+LABEL_temp100 = "p0_core9_temp"
+LABEL_temp101 = "p0_core10_temp"
+LABEL_temp102 = "p0_core11_temp"
+LABEL_temp103 = "p0_core12_temp"
+LABEL_temp104 = "p0_core13_temp"
+LABEL_temp105 = "p0_core14_temp"
+LABEL_temp106 = "p0_core15_temp"
+LABEL_temp107 = "p0_core16_temp"
+LABEL_temp108 = "p0_core17_temp"
+LABEL_temp109 = "p0_core18_temp"
+LABEL_temp110 = "p0_core19_temp"
+LABEL_temp111 = "p0_core20_temp"
+LABEL_temp112 = "p0_core21_temp"
+LABEL_temp113 = "p0_core22_temp"
+LABEL_temp114 = "p0_core23_temp"
+LABEL_temp27 = "dimm0_temp"
+LABEL_temp28 = "dimm1_temp"
+LABEL_temp29 = "dimm2_temp"
+LABEL_temp30 = "dimm3_temp"
+LABEL_temp31 = "dimm4_temp"
+LABEL_temp32 = "dimm5_temp"
+LABEL_temp33 = "dimm6_temp"
+LABEL_temp34 = "dimm7_temp"
+LABEL_power2 = "p0_power"
+LABEL_power3 = "p0_vdd_power"
+LABEL_power4 = "p0_vdn_power"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf
new file mode 100644
index 000000000..383c70dac
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon%/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--0a/fsi1/slave@01--00/01--01--00--06/sbefifo2-dev0/occ-hwmon.2.conf
@@ -0,0 +1,67 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+LABEL_temp115 = "p1_core0_temp"
+LABEL_temp116 = "p1_core1_temp"
+LABEL_temp117 = "p1_core2_temp"
+LABEL_temp118 = "p1_core3_temp"
+LABEL_temp119 = "p1_core4_temp"
+LABEL_temp120 = "p1_core5_temp"
+LABEL_temp121 = "p1_core6_temp"
+LABEL_temp122 = "p1_core7_temp"
+LABEL_temp123 = "p1_core8_temp"
+LABEL_temp124 = "p1_core9_temp"
+LABEL_temp125 = "p1_core10_temp"
+LABEL_temp126 = "p1_core11_temp"
+LABEL_temp127 = "p1_core12_temp"
+LABEL_temp128 = "p1_core13_temp"
+LABEL_temp129 = "p1_core14_temp"
+LABEL_temp130 = "p1_core15_temp"
+LABEL_temp131 = "p1_core16_temp"
+LABEL_temp132 = "p1_core17_temp"
+LABEL_temp133 = "p1_core18_temp"
+LABEL_temp134 = "p1_core19_temp"
+LABEL_temp135 = "p1_core20_temp"
+LABEL_temp136 = "p1_core21_temp"
+LABEL_temp137 = "p1_core22_temp"
+LABEL_temp138 = "p1_core23_temp"
+LABEL_temp35 = "dimm8_temp"
+LABEL_temp36 = "dimm9_temp"
+LABEL_temp37 = "dimm10_temp"
+LABEL_temp38 = "dimm11_temp"
+LABEL_temp39 = "dimm12_temp"
+LABEL_temp40 = "dimm13_temp"
+LABEL_temp41 = "dimm14_temp"
+LABEL_temp42 = "dimm15_temp"
+LABEL_power2 = "p1_power"
+LABEL_power3 = "p1_vdd_power"
+LABEL_power4 = "p1_vdn_power"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend
new file mode 100644
index 000000000..4db6f3a6d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_romulus := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf
new file mode 100644
index 000000000..ad50cf698
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/state/phosphor-state-manager/obmc/phosphor-reboot-host/reboot.conf
@@ -0,0 +1,3 @@
+# Sleep 8 seconds on Romulus to make sure the checkstop status on
+# CPU is cleared. See https://github.com/openbmc/openbmc/issues/3330
+REBOOT_DELAY=8
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb b/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb
new file mode 100644
index 000000000..6abc16be5
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/workbook/romulus-config.bb
@@ -0,0 +1,5 @@
+SUMMARY = "Romulus board wiring"
+DESCRIPTION = "Board wiring information for the Romulus OpenPOWER system."
+PR = "r1"
+
+inherit config-in-skeleton
diff --git a/meta-ibm/meta-romulus/recipes.txt b/meta-ibm/meta-romulus/recipes.txt
new file mode 100644
index 000000000..3ec3f4a42
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes.txt
@@ -0,0 +1,2 @@
+recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
+recipes-phosphor - Phosphor OpenBMC applications and configuration
diff --git a/meta-ibm/meta-witherspoon/README.md b/meta-ibm/meta-witherspoon/README.md
new file mode 100644
index 000000000..beb3ca93c
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/README.md
@@ -0,0 +1,8 @@
+Witherspoon
+================
+
+This is the Witherspoon machine layer.
+
+Witherspoon, or AC922, is an IBM POWER9 two-socket, 2U Accelerated Compute
+Server with up to 6 NVIDIA Tesla GPUs. More information can be found
+[here](https://www.ibm.com/us-en/marketplace/power-systems-ac922).
diff --git a/meta-ibm/meta-witherspoon/conf/bblayers.conf.sample b/meta-ibm/meta-witherspoon/conf/bblayers.conf.sample
new file mode 100644
index 000000000..3f18f5434
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/bblayers.conf.sample
@@ -0,0 +1,35 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-witherspoon \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-poky \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-openembedded/meta-webserver \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-ibm \
+ ##OEROOT##/meta-ibm/meta-witherspoon \
+ "
diff --git a/meta-ibm/meta-witherspoon/conf/conf-notes.txt b/meta-ibm/meta-witherspoon/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-ibm/meta-witherspoon/conf/distro/openbmc-witherspoon.conf b/meta-ibm/meta-witherspoon/conf/distro/openbmc-witherspoon.conf
new file mode 100644
index 000000000..f24a74b01
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/distro/openbmc-witherspoon.conf
@@ -0,0 +1,5 @@
+require conf/distro/include/phosphor-base.inc
+require conf/distro/include/phosphor-ubi.inc
+require conf/distro/include/openpower-mrw.inc
+require conf/distro/include/openpower-ubi.inc
+require conf/distro/include/openpower-distrovars.inc
diff --git a/meta-ibm/meta-witherspoon/conf/layer.conf b/meta-ibm/meta-witherspoon/conf/layer.conf
new file mode 100644
index 000000000..6ea504177
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/layer.conf
@@ -0,0 +1,10 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "witherspoon"
+BBFILE_PATTERN_witherspoon = ""
+LAYERSERIES_COMPAT_witherspoon = "sumo"
diff --git a/meta-ibm/meta-witherspoon/conf/local.conf.sample b/meta-ibm/meta-witherspoon/conf/local.conf.sample
new file mode 100644
index 000000000..ca640ce56
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/local.conf.sample
@@ -0,0 +1,21 @@
+MACHINE ??= "witherspoon"
+DISTRO ?= "openbmc-witherspoon"
+PACKAGE_CLASSES ?= "package_rpm"
+SANITY_TESTED_DISTROS_append ?= " *"
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+PATCHRESOLVE = "noop"
+BB_DISKMON_DIRS = "\
+ STOPTASKS,${TMPDIR},1G,100K \
+ STOPTASKS,${DL_DIR},1G,100K \
+ STOPTASKS,${SSTATE_DIR},1G,100K \
+ STOPTASKS,/tmp,100M,100K \
+ ABORT,${TMPDIR},100M,1K \
+ ABORT,${DL_DIR},100M,1K \
+ ABORT,${SSTATE_DIR},100M,1K \
+ ABORT,/tmp,10M,1K"
+CONF_VERSION = "1"
+INHERIT += "extrausers"
+EXTRA_USERS_PARAMS = " \
+ usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \
+ "
diff --git a/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf b/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf
new file mode 100644
index 000000000..1ccd1cf5a
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/conf/machine/witherspoon.conf
@@ -0,0 +1,33 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+KERNEL_FEATURES_append = " phosphor-wdt-on-panic"
+
+UBOOT_MACHINE = "ast_g5_ncsi_config"
+
+OBMC_POWER_SUPPLY_INSTANCES = "0 1"
+
+PREFERRED_PROVIDER_virtual/p9-vcs-workaround = ''
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+require conf/machine/include/p9.inc
+
+PHOSPHOR_MRW_URI = "git://github.com/open-power/witherspoon-xml"
+PHOSPHOR_MRW_REV = "6ca015dbd3e1e9d5206f9ec13ec9db2d8965e181"
+
+# Inhibit phosphor-hwmon-config-mrw
+VIRTUAL-RUNTIME_phosphor-hwmon-config_df-mrw = ""
+
+# Pick up the Witherspoon-specific IPMI configuration
+VIRTUAL-RUNTIME_ipmi-config = "witherspoon-ipmi-config"
+
+# Inhibit phosphor-fan-presence-mrw-native
+PREFERRED_PROVIDER_virtual/phosphor-fan-presence-config_df-mrw = \
+ "phosphor-fan-presence-config-native"
+
+# Inhibit phosphor-fan-control-fan-config-mrw-native
+PREFERRED_PROVIDER_virtual/phosphor-fan-control-fan-config_df-mrw = \
+ "phosphor-fan-control-fan-config-native"
+
+PREFERRED_RPROVIDER_virtual/phosphor-ipmi-config = "witherspoon-ipmi-config"
diff --git a/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-size-policy.conf b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-size-policy.conf
new file mode 100644
index 000000000..fb84c6734
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-size-policy.conf
@@ -0,0 +1,8 @@
+# This file overrides a default for journald
+#
+# - Set a maximum size for journald in filesystem
+#
+# See journald.conf(5) for details
+
+[Journal]
+SystemMaxUse=2.5M
diff --git a/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-storage-policy.conf b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-storage-policy.conf
new file mode 100644
index 000000000..eb746a56f
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/journald-storage-policy.conf
@@ -0,0 +1,8 @@
+# This file overrides a default for journald
+#
+# - Default journald to write to persistent storage
+#
+# See journald.conf(5) for details
+
+[Journal]
+Storage=persistent
diff --git a/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/systemd-journald-override.conf b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/systemd-journald-override.conf
new file mode 100644
index 000000000..0ca86f863
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd/systemd-journald-override.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=local-fs.target
+After=local-fs.target
diff --git a/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend
new file mode 100644
index 000000000..847714b38
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-core/systemd/systemd_%.bbappend
@@ -0,0 +1,14 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+SRC_URI += "file://journald-storage-policy.conf"
+SRC_URI += "file://systemd-journald-override.conf"
+SRC_URI += "file://journald-size-policy.conf"
+
+FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf"
+FILES_${PN} += "${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf"
+FILES_${PN} += "${systemd_unitdir}/journald.conf.d/journald-size-policy.conf"
+
+do_install_append() {
+ install -m 644 -D ${WORKDIR}/journald-storage-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-storage-policy.conf
+ install -m 644 -D ${WORKDIR}/systemd-journald-override.conf ${D}${systemd_system_unitdir}/systemd-journald.service.d/systemd-journald-override.conf
+ install -m 644 -D ${WORKDIR}/journald-size-policy.conf ${D}${systemd_unitdir}/journald.conf.d/journald-size-policy.conf
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/witherspoon.cfg b/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/witherspoon.cfg
new file mode 100644
index 000000000..dc41d5834
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed/witherspoon.cfg
@@ -0,0 +1,7 @@
+CONFIG_SENSORS_IIO_HWMON=y
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_MAX31785=y
+CONFIG_SENSORS_UCD9000=y
+CONFIG_RTC_DRV_RV8803=y
+CONFIG_IIO=y
+CONFIG_BMP280=y
diff --git a/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..cad9140a0
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_witherspoon := "${THISDIR}/${PN}:"
+SRC_URI += "file://witherspoon.cfg"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb
new file mode 100644
index 000000000..a09cdc750
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Witherspoon AVSBus control"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools"
+
+S = "${WORKDIR}"
+SRC_URI += "file://power-workarounds.sh \
+ file://avsbus-enable.sh \
+ file://avsbus-disable.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/power-workarounds.sh \
+ ${D}${bindir}/power-workarounds.sh
+ install -m 0755 ${WORKDIR}/avsbus-disable.sh \
+ ${D}${bindir}/avsbus-disable.sh
+ install -m 0755 ${WORKDIR}/avsbus-enable.sh \
+ ${D}${bindir}/avsbus-enable.sh
+}
+
+TMPL_EN= "avsbus-enable@.service"
+TMPL_DIS= "avsbus-disable@.service"
+TMPL_WA= "power-workarounds@.service"
+INSTFMT_EN= "avsbus-enable@{0}.service"
+INSTFMT_DIS= "avsbus-disable@{0}.service"
+INSTFMT_WA= "power-workarounds@{0}.service"
+TGTFMT = "obmc-chassis-poweron@{0}.target"
+FMT_EN = "../${TMPL_EN}:${TGTFMT}.requires/${INSTFMT_EN}"
+FMT_DIS = "../${TMPL_DIS}:${TGTFMT}.requires/${INSTFMT_DIS}"
+FMT_WA = "../${TMPL_WA}:${TGTFMT}.requires/${INSTFMT_WA}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL_EN}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_EN', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_DIS}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_DIS', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_SERVICE_${PN} += "${TMPL_WA}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_WA', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
new file mode 100644
index 000000000..a158f159e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x01 0x80 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x71 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x71 0x01 0x80 b # VDN 0
+i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+i2cset -y 5 0x70 0x01 0x80 b # VDD 1
+i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+i2cset -y 5 0x70 0x01 0x80 b # VCS 1
+i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+i2cset -y 5 0x71 0x00 0x00 b # VDN 1 - PAGE set
+i2cset -y 5 0x71 0x01 0x80 b # VDN 1
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
new file mode 100644
index 000000000..859f42883
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Disable the AVS bus on the VRMs
+Wants=power-workarounds@%i.service
+After=power-workarounds@%i.service
+Before=vrm-control@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-disable.sh
+SyslogIdentifier=avsbus-disable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
new file mode 100644
index 000000000..6306c58b0
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+i2cset -y 4 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 4 0x70 0x21 0x00 0x01 i # VDD 0 - Set default HW boot voltage
+i2cset -y 4 0x70 0x01 0xB0 b # VDD 0
+i2cset -y 4 0x70 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 4 0x70 0x21 0x08 0x01 i # VCS 0 - Set default HW boot voltage
+i2cset -y 4 0x70 0x01 0xB0 b # VCS 0
+i2cset -y 4 0x70 0x00 0x00 b # VCS 0 - PAGE reset
+i2cset -y 4 0x71 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 4 0x71 0x21 0x00 0x01 i # VDN 0 - Set default HW boot voltage
+i2cset -y 4 0x71 0x01 0xB0 b # VDN 0
+i2cset -y 5 0x70 0x00 0x00 b # VDD 1 - PAGE set
+i2cset -y 5 0x70 0x21 0x00 0x01 i # VDD 1 - Set default HW boot voltage
+i2cset -y 5 0x70 0x01 0xB0 b # VDD 1
+i2cset -y 5 0x70 0x00 0x01 b # VCS 1 - PAGE set
+i2cset -y 5 0x70 0x21 0x08 0x01 i # VCS 1 - Set default HW boot voltage
+i2cset -y 5 0x70 0x01 0xB0 b # VCS 1
+i2cset -y 5 0x70 0x00 0x00 b # VCS 1 - PAGE reset
+i2cset -y 5 0x71 0x00 0x00 b # VDN 1 - PAGE set
+i2cset -y 5 0x71 0x21 0x00 0x01 i # VDN 1 - Set default HW boot voltage
+i2cset -y 5 0x71 0x01 0xB0 b # VDN 1
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
new file mode 100644
index 000000000..b7fb41e24
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-enable@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Enable the AVS bus on VRMs
+Wants=vrm-control@%i.service
+After=vrm-control@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env avsbus-enable.sh
+SyslogIdentifier=avsbus-enable.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh
new file mode 100644
index 000000000..d40579731
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds.sh
@@ -0,0 +1,134 @@
+#!/bin/sh
+
+# ensure VCS ON_OFF_CONFIG set correctly from prior FW drivers
+# A side
+i2cset -y 4 0x70 0x00 0x01 b
+i2cset -y 4 0x70 0x02 0x16 b #respond to ENABLE pin
+i2cset -y 4 0x70 0x00 0x00 b
+# B side
+i2cset -y 5 0x70 0x00 0x01 b
+i2cset -y 5 0x70 0x02 0x16 b #respond to ENABLE pin
+i2cset -y 5 0x70 0x00 0x00 b
+
+# vddio = 1.0V, mdat/sdat PU enabled
+i2cset -y 4 0x12 0xFF 0x00 b # VDD/VCS 0
+i2cset -y 4 0x12 0x2E 0x03 b # VDD/VCS 0
+i2cset -y 4 0x13 0xFF 0x00 b # VDN 0
+i2cset -y 4 0x13 0x2E 0x03 b # VDN 0
+i2cset -y 5 0x12 0xFF 0x00 b # VDD/VCS 1
+i2cset -y 5 0x12 0x2E 0x03 b # VDD/VCS 1
+i2cset -y 5 0x13 0xFF 0x00 b # VDN 1
+i2cset -y 5 0x13 0x2E 0x03 b # VDN 1
+
+# A side VDDR - set to 1.23V
+i2cset -y 4 0x71 0x00 0x01
+i2cset -y 4 0x71 0x21 0x3B 0x01 i
+i2cset -y 4 0x71 0x00 0x00
+
+# B side VDDR - set to 1.23V
+i2cset -y 5 0x71 0x00 0x01
+i2cset -y 5 0x71 0x21 0x3B 0x01 i
+i2cset -y 5 0x71 0x00 0x00
+
+# VDN A - PGOOD_ON threshold
+i2cset -y 4 0x71 0x00 0x00 b # PAGE
+i2cset -y 4 0x71 0x5E 0xCD 0x00 i # set to 0.8V
+
+# VDN B - PGOOD_ON threshold
+i2cset -y 5 0x71 0x00 0x00 b # PAGE
+i2cset -y 5 0x71 0x5E 0xCD 0x00 i # set to 0.8V
+
+# unbind ucd driver to permit i2cset
+ucd_retries=5
+ucd=
+
+ucdpath="/sys/bus/i2c/drivers/ucd9000"
+if [ -e $ucdpath ]
+then
+ ucd=`ls -1 $ucdpath | grep 64`
+ if [ -n "$ucd" ]
+ then
+ echo $ucd > $ucdpath/unbind
+ fi
+fi
+
+# make sure VCS ON_OFF_CONFIG set correctly from old FW releases
+i2cset -y 11 0x64 0x00 0x0E i
+i2cset -y 11 0x64 0x02 0x16 i
+i2cset -y 11 0x64 0x00 0x0F i
+i2cset -y 11 0x64 0x02 0x16 i
+
+## move memory enables to align with VDN (VDN to VDDR leakage issue)
+#GPO_CONFIG_1 (GPIO15) : mem 0 reg enables
+i2cset -y 11 0x64 0xF7 0x00 i
+i2cset -y 11 0x64 0xF8 0x15 0x6E 0x80 0x08 0x00 0x00 0x00 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 i
+#GPO_CONFIG_2 (GPIO7) : mem 1 reg enables
+i2cset -y 11 0x64 0xF7 0x01 i
+i2cset -y 11 0x64 0xF8 0x15 0x16 0x80 0x08 0x00 0x00 0x20 0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 i
+
+# change VDN delays based on UCD MFR_REVISION setting
+REV=`i2cget -y 11 0x64 0x9B i 2|cut -f2 -d' '`
+if [ "$REV" == "0x01" -o "$REV" == "0x02" ] ; then
+ # use 20ms delay for VDN
+ #TON_DELAY rail 8
+ i2cset -y 11 0x64 0x00 0x07 i
+ i2cset -y 11 0x64 0x60 0x80 0xDA i
+ #TON_DELAY rail 9
+ i2cset -y 11 0x64 0x00 0x08 i
+ i2cset -y 11 0x64 0x60 0x80 0xDA i
+else
+ # use 70ms delay for VDN
+ #TON_DELAY rail 8
+ i2cset -y 11 0x64 0x00 0x07 i
+ i2cset -y 11 0x64 0x60 0x30 0xEA i
+ #TON_DELAY rail 9
+ i2cset -y 11 0x64 0x00 0x08 i
+ i2cset -y 11 0x64 0x60 0x30 0xEA i
+fi
+
+# Raise AVDD +100mV
+i2cset -y 11 0x64 0x00 0x09 i # set PAGE
+i2cset -y 11 0x64 0xF5 0x81 i # set margin_config
+i2cset -y 11 0x64 0x21 0x85 0x33 i # set VOUT_COMMAND
+
+# Increase over-current settings
+#VDD A phase current
+i2cset -y 4 0x12 0xFF 0x04 b # set window register high byte to 4
+i2cset -y 4 0x12 0x3C 0x80 b # Set to 64A
+#VDD B phase current
+i2cset -y 5 0x12 0xFF 0x04 b # set window register high byte to 4
+i2cset -y 5 0x12 0x3C 0x80 b # Set to 64A
+#VDD A master OC fault to 445A
+i2cset -y 4 0x70 0x00 0x00 b # PAGE
+i2cset -y 4 0x70 0x46 0x08DE w
+# VDD A master OC warn to 326A
+i2cset -y 4 0x70 0x4A 0x08A3 w # A308
+#VDD B master OC fault to 445A
+i2cset -y 5 0x70 0x00 0x00 b # PAGE
+i2cset -y 5 0x70 0x46 0x08DE w
+# VDD B master OC warn to 326A
+i2cset -y 5 0x70 0x4A 0x08A3 w
+#VCS phase current to 30A C/C
+i2cset -y 4 0x12 0xFF 0x08 b # set window register to 8
+i2cset -y 4 0x12 0x3C 0x3C b # 30A
+i2cset -y 5 0x12 0xFF 0x08 b # set window register to 8
+i2cset -y 5 0x12 0x3C 0x3C b # 30A
+#VCS master OC to 43A
+i2cset -y 4 0x70 0x00 0x01 # PAGE 1
+i2cset -y 4 0x70 0x46 0x0816 w # OC to 43A
+i2cset -y 5 0x70 0x00 0x01 # PAGE 1
+i2cset -y 5 0x70 0x46 0x0816 w # OC to 43A
+
+# re-bind ucd driver only if we unbound it (i.e. ucd has been set with a value)
+if [ -e $ucdpath -a -n "$ucd" ]; then
+ j=0
+ until [ $j -ge $ucd_retries ] || [ -e $ucdpath/$ucd ]; do
+ j=$((j+1))
+ echo $ucd > $ucdpath/bind || ret=$?
+ if [ $j -gt 1 ]; then
+ echo "rebinding UCD driver. Retry number $j"
+ sleep 1
+ fi
+ done
+ if [ ! -e $ucdpath/$ucd ]; then exit $ret; fi
+fi
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service
new file mode 100644
index 000000000..74d8e4bfc
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Perform power workarounds on VRMs
+Wants=ir35221-on-unbind@%i.service
+After=ir35221-on-unbind@%i.service
+Before=avsbus-disable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env power-workarounds.sh
+SyslogIdentifier=power-workarounds.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%.bbappend
new file mode 100644
index 000000000..c1d50e6ff
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%.bbappend
@@ -0,0 +1,24 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+INSTANCES = "motherboard/uuid motherboard/bmc/ethernet"
+ITEMS_FMT = "system/chassis/{0}"
+
+ITEMS = "${@compose_list(d, 'ITEMS_FMT', 'INSTANCES')}"
+
+ENV_FILES = "obmc/sync_inventory_item/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENV_FILES', 'ITEMS')}"
+
+TMPL = "obmc-sync-inventory-item@.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+
+ETH_SVC = "system-chassis-motherboard-bmc-ethernet.service"
+UUID_SVC = "system-chassis-motherboard-uuid.service"
+
+ETH_DROPIN_DIR = "obmc-sync-inventory-item@${ETH_SVC}.d"
+UUID_DROPIN_DIR = "obmc-sync-inventory-item@${UUID_SVC}.d"
+
+SYSTEMD_OVERRIDE_${PN} += "mac_sync_inventory.conf:${ETH_DROPIN_DIR}/mac_sync_inventory.conf"
+SYSTEMD_OVERRIDE_${PN} += "uuid_sync_inventory.conf:${UUID_DROPIN_DIR}/uuid_sync_inventory.conf"
+
+SYSTEMD_LINK_${PN} += "../${TMPL}:${TGT}.wants/obmc-sync-inventory-item@${ETH_SVC}"
+SYSTEMD_LINK_${PN} += "../${TMPL}:${TGT}.wants/obmc-sync-inventory-item@${UUID_SVC}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/mac_sync_inventory.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/mac_sync_inventory.conf
new file mode 100644
index 000000000..f04b6dd37
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/mac_sync_inventory.conf
@@ -0,0 +1,6 @@
+[Unit]
+Wants=mapper-wait@-xyz-openbmc_project-network-config.service
+After=mapper-wait@-xyz-openbmc_project-network-config.service
+
+Wants=op-vpd-parser.service
+After=op-vpd-parser.service
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/bmc/ethernet b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/bmc/ethernet
new file mode 100644
index 000000000..722e0e641
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/bmc/ethernet
@@ -0,0 +1,2 @@
+PROPERTY="MACAddress"
+SYNC_TYPE=mac
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/uuid b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/uuid
new file mode 100644
index 000000000..95abbc885
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/obmc/sync_inventory_item/system/chassis/motherboard/uuid
@@ -0,0 +1,2 @@
+PROPERTY="UUID"
+SYNC_TYPE=uuid
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/uuid_sync_inventory.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/uuid_sync_inventory.conf
new file mode 100644
index 000000000..587476244
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-mgr-inventory%/uuid_sync_inventory.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=op-vpd-parser.service
+After=op-vpd-parser.service
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power/obmc/power_control b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power/obmc/power_control
new file mode 100644
index 000000000..a93bdd758
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/obmc-op-control-power/obmc/power_control
@@ -0,0 +1,2 @@
+POLL_INTERVAL="500"
+PGOOD_TIMEOUT="10"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb
new file mode 100644
index 000000000..d05e67fb9
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Witherspoon VRM Overrides"
+DESCRIPTION = "Sets Witherspoon VRMs to custom voltages"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+RDEPENDS_${PN} += "i2c-tools bash"
+
+S = "${WORKDIR}"
+SRC_URI += "file://vrm-control.sh \
+ file://ir35221-unbind-bind.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh
+ install -m 0755 ${WORKDIR}/ir35221-unbind-bind.sh ${D}${bindir}/ir35221-unbind-bind.sh
+}
+
+TMPL = "vrm-control@.service"
+INSTFMT = "vrm-control@{0}.service"
+TGTFMT_ON = "obmc-chassis-poweron@{0}.target"
+FMT_ON = "../${TMPL}:${TGTFMT_ON}.requires/${INSTFMT}"
+
+TMPL_ON_IRBIND = "ir35221-on-bind@.service"
+INSTFMT_ON_IRBIND = "ir35221-on-bind@{0}.service"
+FMT_ON_IRBIND = "../${TMPL_ON_IRBIND}:${TGTFMT_ON}.wants/${INSTFMT_ON_IRBIND}"
+
+TMPL_ON_IRUNBIND = "ir35221-on-unbind@.service"
+INSTFMT_ON_IRUNBIND = "ir35221-on-unbind@{0}.service"
+FMT_ON_IRUNBIND = "../${TMPL_ON_IRUNBIND}:${TGTFMT_ON}.requires/${INSTFMT_ON_IRUNBIND}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL} ${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRBIND', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRUNBIND', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-bind@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-bind@.service
new file mode 100644
index 000000000..e6adc05f3
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-bind@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Power on bind ir35221 device driver devs
+After=avsbus-enable@%i.service
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/ir35221-unbind-bind.sh bind
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-unbind@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-unbind@.service
new file mode 100644
index 000000000..7638538d1
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-on-unbind@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=power on mode unbind ir35221 device driver devs
+Wants=obmc-power-start-pre@%i.target
+Before=obmc-power-start-pre@%i.target
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/ir35221-unbind-bind.sh unbind
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh
new file mode 100644
index 000000000..160cc5d27
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/ir35221-unbind-bind.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+# #########################################################
+# Script to run on witherspoon BMC to unbind/bind the ir35221
+# driver's devices
+
+status=0
+max_retries=3
+driver_path="/sys/bus/i2c/drivers/ir35221/"
+platform_path="/sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/"
+
+unbind_driver () {
+ echo $1 > $driver_path/unbind
+}
+
+bind_driver () {
+ device=$1
+ tries=0
+
+ until [ $tries -ge $max_retries ]; do
+ tries=$((tries+1))
+ ret=0
+ echo $device > $driver_path/bind || ret=$?
+ if [ $ret -ne 0 ]; then
+ echo "VRM $1 bind failed. Try $tries"
+ sleep 1
+ else
+ tries=$((max_retries+1))
+ fi
+ done
+
+ #Script will return a nonzero value if any binds fail.
+ if [ $ret -ne 0 ]; then
+ status=$ret
+ fi
+}
+
+if [ "$1" = "unbind" ]
+then
+ if [ -e $driver_path/4-0070 ]
+ then
+ unbind_driver "4-0070"
+ fi
+
+ if [ -e $driver_path/4-0071 ]
+ then
+ unbind_driver "4-0071"
+ fi
+
+ if [ -e $driver_path/5-0070 ]
+ then
+ unbind_driver "5-0070"
+ fi
+
+ if [ -e $driver_path/5-0071 ]
+ then
+ unbind_driver "5-0071"
+ fi
+elif [ "$1" = "bind" ]
+then
+ if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0070 ]
+ then
+ bind_driver "4-0070"
+ fi
+
+ if [ -e $platform_path/1e78a140.i2c-bus/i2c-4/4-0071 ]
+ then
+ bind_driver "4-0071"
+ fi
+
+ if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0070 ]
+ then
+ bind_driver "5-0070"
+ fi
+
+ if [ -e $platform_path/1e78a180.i2c-bus/i2c-5/5-0071 ]
+ then
+ bind_driver "5-0071"
+ fi
+fi
+
+exit $status
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control.sh
new file mode 100644
index 000000000..c67e244a7
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control.sh
@@ -0,0 +1,155 @@
+#!/bin/bash
+# #########################################################
+# Script to run on witherspoon BMC to read/set vrm voltages
+
+
+# #########################################################
+d2v () {
+# usage: d2v <decimal volts>
+
+echo $1 | awk '{print $1 * 256 + .5}' | cut -d '.' -f 1
+}
+
+
+# #########################################################
+v2d () {
+# usage: v2d <hex val>
+
+printf " %0.3fV" `echo $1 | awk '{print $1 / 256}'`
+}
+
+
+# #########################################################
+i2d () {
+# usage: i2d <hex val> <current divisor>
+
+# parse current mantisa and exponent
+# format: SEEE ESMM MMMM MMMM
+let e=$1/0x800
+let esign=e/0x10
+let m=$1\&0x07FF
+let msign=m/0x0400
+
+if [ $msign -eq 1 ]
+then
+ # calc ones compliment
+ let m=($m^0x07FF)+1
+ m="-$m"
+fi
+if [ $esign -eq 1 ]
+then
+ # calc ones compliment
+ let e=(e^0x1F)+1
+ e="-$e"
+fi
+printf " %0.3fA\n" `echo $m $e $2 | awk '{print ($1 * 2^$2)}'`
+}
+
+
+# #########################################################
+rw_vc () {
+# usage: rw_vc <bus> <addr> <current divisor> <channel> <value>
+
+# select channel
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 $4 b
+fi
+
+# write new voltage set point
+if [ ! -e $5 ]
+then
+ i2cset -y $1 $2 0x21 `d2v $5` w
+fi
+
+# print voltage set point
+v2d `i2cget -y $1 $2 0x21 w`
+
+# print voltage
+v2d `i2cget -y $1 $2 0x8B w`
+
+# print current
+i2d `i2cget -y $1 $2 0x8C w` $3
+
+# default back to channel 0
+if [ $4 != "x" ]
+then
+ i2cset -y $1 $2 0 0 b
+fi
+}
+
+
+# #########################################################
+# Main
+
+if [ -e $1 ]
+then
+ $0 vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb
+ exit
+fi
+
+if [ $1 == "-h" ]
+then
+ echo " Usage: vrm [<rail>=[value] [<rail>=[value]] ...]"
+ echo " rail: vdda vcsa vdna vioa vddra vppa vddb vcsb vdnb viob vddrb vppb vdnd viod"
+ echo " value: volts"
+ echo
+ echo " e.g., vrm vioa=1.0 viob=1.0"
+ echo
+ exit
+fi
+
+echo "rail set read current"
+echo "------- ------- ------- -------"
+for param in ${@:1}
+do
+ rail=`echo $param | cut -d'=' -f 1`
+ val=`echo ${param}= | cut -d'=' -f 2`
+ echo -n "$rail"
+ case "$rail" in
+ vdda)
+ rw_vc 4 0x70 2 0 $val
+ ;;
+ vddb)
+ rw_vc 5 0x70 2 0 $val
+ ;;
+ vcsa)
+ rw_vc 4 0x70 4 1 $val
+ ;;
+ vcsb)
+ rw_vc 5 0x70 4 1 $val
+ ;;
+ vdna)
+ rw_vc 4 0x71 2 0 $val
+ ;;
+ vdnb)
+ rw_vc 5 0x71 2 0 $val
+ ;;
+ vioa)
+ rw_vc 4 0x40 2 x $val
+ ;;
+ viob)
+ rw_vc 5 0x40 2 x $val
+ ;;
+ vddra)
+ rw_vc 4 0x71 2 1 $val
+ ;;
+ vddrb)
+ rw_vc 5 0x71 2 1 $val
+ ;;
+ vppa)
+ rw_vc 12 0x41 2 x $val
+ ;;
+ vppb)
+ rw_vc 13 0x41 2 x $val
+ ;;
+ vdnd)
+ rw_vc 2 0x70 2 0 $val
+ ;;
+ viod)
+ rw_vc 2 0x70 2 1 $val
+ ;;
+ *)
+ echo " non-existant"
+ esac
+done
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control@.service
new file mode 100644
index 000000000..731ce55c3
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/vrm-control/vrm-control@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Apply voltage overrides to VRMs
+Wants=avsbus-disable@%i.service
+After=avsbus-disable@%i.service
+Before=avsbus-enable@%i.service
+Conflicts=obmc-chassis-poweroff@%i.target
+ConditionPathExists=!/run/openbmc/chassis@%i-on
+
+[Service]
+ExecStart=/usr/bin/env vrm-control.sh vdna=0.9 vdnb=0.9
+SyslogIdentifier=vrm-control.sh
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+WantedBy=obmc-chassis-poweron@%i.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 000000000..a5ba3f328
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,4 @@
+lpc-address = 0x3f8
+sirq = 4
+local-tty = ttyS0
+local-tty-baud = 115200
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 000000000..ffe6b0c64
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_witherspoon := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config-native%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config-native%.bbappend
new file mode 100644
index 000000000..2831afe21
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor-config-native%.bbappend
@@ -0,0 +1,4 @@
+PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " witherspoon-fan-policy-native"
+PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " witherspoon-thermal-policy-native"
+PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " witherspoon-power-supply-policy-native"
+PHOSPHOR_DBUS_MONITOR_CONFIGS_append = " witherspoon-events-policy-native"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor.bbappend
new file mode 100644
index 000000000..e80b49902
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-dbus-monitor.bbappend
@@ -0,0 +1 @@
+SYSTEMD_LINK_phosphor-msl-verify = "../phosphor-msl-verify.service:obmc-chassis-poweron@0.target.requires/phosphor-msl-verify.service"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper.bbappend
new file mode 100644
index 000000000..668ee9374
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+MAPPER_SVC = "xyz.openbmc_project.ObjectMapper.service"
+
+MAPPER_DROPIN_DIR = "${MAPPER_SVC}.d"
+
+SYSTEMD_OVERRIDE_${PN} += "mapper-nice.conf:${MAPPER_DROPIN_DIR}/mapper-nice.conf"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper/mapper-nice.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper/mapper-nice.conf
new file mode 100644
index 000000000..5464cb53e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/dbus/phosphor-mapper/mapper-nice.conf
@@ -0,0 +1,2 @@
+[Service]
+Nice=-5 \ No newline at end of file
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy-native.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy-native.bb
new file mode 100644
index 000000000..c478e12b7
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy-native.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Event policy for Witherspoon"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-dbus-monitor
+
+SRC_URI += "file://config.yaml"
+
+do_install() {
+ install -D ${WORKDIR}/config.yaml ${D}${config_dir}/config.yaml
+}
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy/config.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy/config.yaml
new file mode 100644
index 000000000..0d31afb2b
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/events/witherspoon-events-policy/config.yaml
@@ -0,0 +1,114 @@
+- name: occpath group
+ class: group
+ group: path
+ members:
+ - meta: PATH
+ path: /org/open_power/control/occ0
+
+- name: occproctemp property
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: org.open_power.OCC.Status
+ meta: PROPERTY
+ property: ThrottleProcTemp
+
+- name: occprocpower property
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: org.open_power.OCC.Status
+ meta: PROPERTY
+ property: ThrottleProcPower
+
+- name: occmemtemp property
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: org.open_power.OCC.Status
+ meta: PROPERTY
+ property: ThrottleMemTemp
+
+- name: watch occproctemp
+ class: watch
+ watch: property
+ paths: occpath group
+ properties: occproctemp property
+ callback: check occproctemp
+
+- name: watch occprocpower
+ class: watch
+ watch: property
+ paths: occpath group
+ properties: occprocpower property
+ callback: check occprocpower
+
+- name: watch occmemtemp
+ class: watch
+ watch: property
+ paths: occpath group
+ properties: occmemtemp property
+ callback: check occmemtemp
+
+- name: check occproctemp
+ class: condition
+ condition: count
+ paths: occpath group
+ properties: occproctemp property
+ defer: 1000us
+ callback: create occproctemp event
+ countop: '=='
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check occprocpower
+ class: condition
+ condition: count
+ paths: occpath group
+ properties: occprocpower property
+ defer: 1000us
+ callback: create occprocpower event
+ countop: '=='
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check occmemtemp
+ class: condition
+ condition: count
+ paths: occpath group
+ properties: occmemtemp property
+ defer: 1000us
+ callback: create occmemtemp event
+ countop: '=='
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: create occproctemp event
+ class: callback
+ callback: event
+ paths: occpath group
+ properties: occproctemp property
+ eventName: occ
+ eventMessage: "Processor throttled due to an over temperature condition."
+
+- name: create occprocpower event
+ class: callback
+ callback: event
+ paths: occpath group
+ properties: occprocpower property
+ eventName: occ
+ eventMessage: "Processor throttled due to reaching the power cap limit."
+
+- name: create occmemtemp event
+ class: callback
+ callback: event
+ paths: occpath group
+ properties: occmemtemp property
+ eventName: occ
+ eventMessage: "Memory throttled due to an over temperature condition."
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%.bbappend
new file mode 100644
index 000000000..8cc310e7c
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%.bbappend
@@ -0,0 +1,33 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+
+# Package configuration
+FAN_PACKAGES += " \
+ phosphor-cooling-type \
+"
+
+PACKAGECONFIG += "cooling-type"
+
+RDEPENDS_phosphor-cooling-type += "libevdev"
+
+TMPL_COOLING = "phosphor-cooling-type@.service"
+INSTFMT_COOLING = "phosphor-cooling-type@{0}.service"
+COOLING_TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}"
+
+FILES_phosphor-cooling-type = "${sbindir}/phosphor-cooling-type"
+SYSTEMD_SERVICE_phosphor-cooling-type += "${TMPL_COOLING}"
+SYSTEMD_LINK_phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}"
+
+COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf"
+
+SYSTEMD_ENVIRONMENT_FILE_phosphor-cooling-type += "${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}"
+
+#These services are protected by the watchdog
+SYSTEMD_OVERRIDE_phosphor-fan-control += "fan-watchdog-monitor.conf:phosphor-fan-control-init@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-control += "fan-watchdog-monitor.conf:phosphor-fan-control@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor += "fan-watchdog-monitor.conf:phosphor-fan-monitor-init@0.service.d/fan-watchdog-monitor.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor += "fan-watchdog-monitor.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-monitor.conf"
+
+#These services need to be stopped when watchdog expires
+SYSTEMD_OVERRIDE_phosphor-fan-control += "fan-watchdog-conflicts.conf:phosphor-fan-control@0.service.d/fan-watchdog-conflicts.conf"
+SYSTEMD_OVERRIDE_phosphor-fan-monitor += "fan-watchdog-conflicts.conf:phosphor-fan-monitor@0.service.d/fan-watchdog-conflicts.conf"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf
new file mode 100644
index 000000000..90b1e810e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-conflicts.conf
@@ -0,0 +1,2 @@
+[Unit]
+Conflicts=obmc-fan-watchdog-takeover.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf
new file mode 100644
index 000000000..023e61a64
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/fan-watchdog-monitor.conf
@@ -0,0 +1,5 @@
+[Unit]
+#These overrides allow the fan watchdog to take over when this service dies
+OnFailure=witherspoon-fan-watchdog-monitor@%n.service
+StartLimitIntervalSec=5
+StartLimitBurst=3
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf
new file mode 100644
index 000000000..e5e8f435e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/obmc/phosphor-fan/phosphor-cooling-type-0.conf
@@ -0,0 +1,6 @@
+OBJPATH="--path=/system/chassis"
+AIR="--air"
+WATER=""
+DEVICE="--dev=/dev/input/by-path/platform-gpio-keys-event"
+CODE="--event=13"
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service
new file mode 100644
index 000000000..9086efb77
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan%/phosphor-cooling-type@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Phosphor Cooling Type
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+ConditionPathExists={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
+ExecStart=/usr/bin/env phosphor-cooling-type ${{OBJPATH}} ${{AIR}} ${{WATER}} ${{DEVICE}} ${{CODE}}
+SyslogIdentifier=phosphor-cooling-type
+
+[Install]
+RequiredBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
new file mode 100644
index 000000000..106202344
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -0,0 +1,766 @@
+groups:
+ - name: air_cooled_zone0_fans
+ description: Group of fan inventory objects for air cooled zone 0
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan0
+ - /system/chassis/motherboard/fan1
+ - /system/chassis/motherboard/fan2
+ - /system/chassis/motherboard/fan3
+ - name: water_and_air_cooled_zone0_fans
+ description: Group of fan inventory objects for water/air cooled zone 0
+ type: /xyz/openbmc_project/inventory
+ members:
+ - /system/chassis/motherboard/fan0
+ - /system/chassis/motherboard/fan2
+ - /system/chassis/motherboard/fan3
+ - name: zone0_ambient
+ description: Group of ambient temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/ambient
+ - name: occ0_object
+ description: Dbus object containing OCC0 properties
+ type: /org/open_power/control
+ members:
+ - /occ0
+ - name: occ1_object
+ description: Dbus object containing OCC1 properties
+ type: /org/open_power/control
+ members:
+ - /occ1
+ - name: zone0_cores
+ description: Group of core temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p0_core0_temp
+ - /temperature/p0_core1_temp
+ - /temperature/p0_core2_temp
+ - /temperature/p0_core3_temp
+ - /temperature/p0_core4_temp
+ - /temperature/p0_core5_temp
+ - /temperature/p0_core6_temp
+ - /temperature/p0_core7_temp
+ - /temperature/p0_core8_temp
+ - /temperature/p0_core9_temp
+ - /temperature/p0_core10_temp
+ - /temperature/p0_core11_temp
+ - /temperature/p0_core12_temp
+ - /temperature/p0_core13_temp
+ - /temperature/p0_core14_temp
+ - /temperature/p0_core15_temp
+ - /temperature/p0_core16_temp
+ - /temperature/p0_core17_temp
+ - /temperature/p0_core18_temp
+ - /temperature/p0_core19_temp
+ - /temperature/p0_core20_temp
+ - /temperature/p0_core21_temp
+ - /temperature/p0_core22_temp
+ - /temperature/p0_core23_temp
+ - /temperature/p1_core0_temp
+ - /temperature/p1_core1_temp
+ - /temperature/p1_core2_temp
+ - /temperature/p1_core3_temp
+ - /temperature/p1_core4_temp
+ - /temperature/p1_core5_temp
+ - /temperature/p1_core6_temp
+ - /temperature/p1_core7_temp
+ - /temperature/p1_core8_temp
+ - /temperature/p1_core9_temp
+ - /temperature/p1_core10_temp
+ - /temperature/p1_core11_temp
+ - /temperature/p1_core12_temp
+ - /temperature/p1_core13_temp
+ - /temperature/p1_core14_temp
+ - /temperature/p1_core15_temp
+ - /temperature/p1_core16_temp
+ - /temperature/p1_core17_temp
+ - /temperature/p1_core18_temp
+ - /temperature/p1_core19_temp
+ - /temperature/p1_core20_temp
+ - /temperature/p1_core21_temp
+ - /temperature/p1_core22_temp
+ - /temperature/p1_core23_temp
+ - name: zone0_regulators
+ description: Group of regulator temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/p0_vdd_temp
+ - /temperature/p1_vdd_temp
+ - name: zone0_dimms
+ description: Group of dimm temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/dimm0_temp
+ - /temperature/dimm1_temp
+ - /temperature/dimm2_temp
+ - /temperature/dimm3_temp
+ - /temperature/dimm4_temp
+ - /temperature/dimm5_temp
+ - /temperature/dimm6_temp
+ - /temperature/dimm7_temp
+ - /temperature/dimm8_temp
+ - /temperature/dimm9_temp
+ - /temperature/dimm10_temp
+ - /temperature/dimm11_temp
+ - /temperature/dimm12_temp
+ - /temperature/dimm13_temp
+ - /temperature/dimm14_temp
+ - /temperature/dimm15_temp
+ - name: zone0_gpu_cores
+ description: Group of gpu core temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/gpu0_core_temp
+ - /temperature/gpu1_core_temp
+ - /temperature/gpu2_core_temp
+ - /temperature/gpu3_core_temp
+ - /temperature/gpu4_core_temp
+ - /temperature/gpu5_core_temp
+ - name: zone0_gpu_memory
+ description: Group of gpu memory temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/gpu0_mem_temp
+ - /temperature/gpu1_mem_temp
+ - /temperature/gpu2_mem_temp
+ - /temperature/gpu3_mem_temp
+ - /temperature/gpu4_mem_temp
+ - /temperature/gpu5_mem_temp
+ - name: zone0_pcie
+ description: Group of pcie temperature sensors for zone 0
+ type: /xyz/openbmc_project/sensors
+ members:
+ - /temperature/pcie
+
+matches:
+ - name: propertiesChanged
+ description: >
+ A property changed match
+ parameters:
+ - object
+ - interface
+ signal: propertySignal
+ - name: interfacesAdded
+ description: >
+ An interfaces added match
+ parameters:
+ - object
+ signal: objectSignal
+ - name: interfacesRemoved
+ description: >
+ An interfaces removed match
+ parameters:
+ - object
+ signal:
+ name: objectSignal
+ parameters:
+ - object
+ - interface
+ handler: removeInterface
+ - name: nameOwnerChanged
+ description: >
+ A name owner changed match
+ parameters:
+ - object
+ - interface
+ signal: ownerSignal
+
+signals:
+ - name: propertySignal
+ description: >
+ Handle property signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: objectSignal
+ description: >
+ Handle object signals
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ handler: setProperty
+ - name: ownerSignal
+ description: >
+ Handle owner signals
+ parameters:
+ - object
+ - interface
+ handler: setService
+
+handlers:
+ - name: setProperty
+ description: >
+ Sets a value for the given object/interface/property
+ parameters:
+ - type
+ - object
+ - interface
+ - property
+ - name: setService
+ description: >
+ Sets the service name(s) for the given group
+ parameters:
+ - group
+ - name: removeInterface
+ description: >
+ Removes an interface(and all associated properties) on the
+ given object from use within actions
+ parameters:
+ - object
+ - interface
+
+preconditions:
+ - name: property_states_match
+ description: >
+ All defined properties must match the values given to
+ enable a set speed event otherwise fan speeds are set to full
+ parameters:
+ - groups
+
+actions:
+ - name: call_actions_based_on_timer
+ description: >
+ Sets up a list of actions to be invoked when the defined timer
+ expires (or for each expiration of a repeating timer)
+ parameters:
+ - timer
+ - actions
+ - name: default_floor_on_missing_owner
+ description: >
+ Set the fan floor to the default floor
+ - name: set_speed_on_missing_owner
+ description: >
+ Set fans to the given speed when any service within the group
+ no longer exists
+ parameters:
+ - speed
+ - name: set_request_speed_base_with_max
+ description: >
+ Set the base request speed of a zone to the max value of a group for
+ calculating a new target speed
+ - name: count_state_before_speed
+ description: Set the speed when a number of properties at a state
+ parameters:
+ - count
+ - property
+ - speed
+ - name: set_floor_from_average_sensor_value
+ description: Set floor speed from first entry with average less than key
+ parameters:
+ - map
+ - name: set_ceiling_from_average_sensor_value
+ description: Set ceiling speed based on key transition values with average
+ parameters:
+ - map
+ - name: set_net_increase_speed
+ description: >
+ Set the speed increase delta based on a factor applied to
+ the delta increase size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+ - name: set_net_decrease_speed
+ description: >
+ Set the speed decrease delta based on a factor applied to
+ the delta decrease size times the given value and property's
+ value difference
+ parameters:
+ - property
+ - factor
+ - delta
+
+events:
+ - name: default_fan_floor_on_service_fail
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: zone0_ambient
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: default_floor_on_missing_owner
+ - name: high_speed_on_occ0_service_fail
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: high_speed_on_occ1_service_fail
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ matches:
+ - name: nameOwnerChanged
+ actions:
+ - name: call_actions_based_on_timer
+ timer:
+ delay: 5
+ type: oneshot
+ actions:
+ - name: set_speed_on_missing_owner
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: missing_before_high_speed_air
+ groups:
+ - name: air_cooled_zone0_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: fails_before_high_speed_air
+ groups:
+ - name: air_cooled_zone0_fans
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: missing_before_high_speed_water_and_air
+ groups:
+ - name: water_and_air_cooled_zone0_fans
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Inventory.Item
+ property:
+ name: Present
+ type: bool
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: fails_before_high_speed_water_and_air
+ groups:
+ - name: water_and_air_cooled_zone0_fans
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: set_air_cooled_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone0_ambient
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: set_floor_from_average_sensor_value
+ map:
+ value:
+ - 27000: 3500
+ - 32000: 4600
+ - 37000: 5200
+ - 40000: 5800
+ type: std::map<int64_t, uint64_t>
+ - name: set_ceiling_from_average_sensor_value
+ map:
+ value:
+ - 25000: 7200
+ - 27000: 10500
+ type: std::map<int64_t, uint64_t>
+ - name: set_water_cooled_speed_boundaries_based_on_ambient
+ groups:
+ - name: zone0_ambient
+ zone_conditions:
+ - name: water_and_air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: propertiesChanged
+ actions:
+ - name: set_floor_from_average_sensor_value
+ map:
+ value:
+ - 27000: 3000
+ - 32000: 4300
+ - 37000: 5000
+ - 40000: 5800
+ type: std::map<int64_t, uint64_t>
+ - name: set_ceiling_from_average_sensor_value
+ map:
+ value:
+ - 25000: 7200
+ - 27000: 10500
+ type: std::map<int64_t, uint64_t>
+ - name: speed_changes_based_on_regulator_temps
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: zone0_regulators
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 85000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 400
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 82000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_pcie_temps
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: zone0_pcie
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 55000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 400
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 52000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: occ_active_speed_changes
+ precondition:
+ name: property_states_match
+ groups:
+ - name: occ0_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ - name: occ1_object
+ interface: org.open_power.OCC.Status
+ property:
+ name: OccActive
+ type: bool
+ value: true
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ events:
+ - name: fails_before_high_speed_air
+ groups:
+ - name: zone0_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ - name: zone0_dimms
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ - name: zone0_gpu_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ - name: zone0_gpu_memory
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ property:
+ name: Functional
+ type: bool
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ actions:
+ - name: count_state_before_speed
+ count: 1
+ property:
+ value: false
+ type: bool
+ speed:
+ value: 10500
+ type: uint64_t
+ - name: speed_changes_based_on_core_temps
+ groups:
+ - name: zone0_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ - name: interfacesRemoved
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 73000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 400
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 70000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_dimm_temps
+ # No global zone conditions defined == all unless defined on group
+ groups:
+ - name: zone0_dimms
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ - name: interfacesRemoved
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 64000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 200
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 61000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_gpu_core_temps
+ groups:
+ - name: zone0_gpu_cores
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ - name: interfacesRemoved
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 78000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 600
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 75000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
+ - name: speed_changes_based_on_gpu_memory_temps
+ groups:
+ - name: zone0_gpu_memory
+ zone_conditions:
+ - name: air_cooled_chassis
+ zones:
+ - 0
+ interface: xyz.openbmc_project.Sensor.Value
+ property:
+ name: Value
+ type: int64_t
+ matches:
+ - name: interfacesAdded
+ - name: propertiesChanged
+ - name: interfacesRemoved
+ actions:
+ - name: set_net_increase_speed
+ property:
+ value: 80000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 600
+ type: uint64_t
+ - name: set_net_decrease_speed
+ property:
+ value: 77000
+ type: int64_t
+ factor:
+ value: 1000
+ type: int64_t
+ delta:
+ value: 40
+ type: uint64_t
+ timer:
+ interval: 5
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml
new file mode 100755
index 000000000..a70ac85a3
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-fan-config%/fans.yaml
@@ -0,0 +1,21 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan2
+ cooling_zone: 0
+ cooling_profile: all
+ sensors:
+ - fan2_0
+ - inventory: /system/chassis/motherboard/fan0
+ cooling_zone: 0
+ cooling_profile: all
+ sensors:
+ - fan0_0
+ - inventory: /system/chassis/motherboard/fan1
+ cooling_zone: 0
+ cooling_profile: air
+ sensors:
+ - fan1_0
+ - inventory: /system/chassis/motherboard/fan3
+ cooling_zone: 0
+ cooling_profile: all
+ sensors:
+ - fan3_0
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
new file mode 100644
index 000000000..0c8b3c5ff
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-conditions-config-native/zone_conditions.yaml
@@ -0,0 +1,18 @@
+conditions:
+ - name: air_cooled_chassis
+ type: getProperty
+ properties:
+ - property: WaterCooled
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ path: /xyz/openbmc_project/inventory/system/chassis
+ type: bool
+ value: false
+
+ - name: water_and_air_cooled_chassis
+ type: getProperty
+ properties:
+ - property: WaterCooled
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ path: /xyz/openbmc_project/inventory/system/chassis
+ type: bool
+ value: true
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
new file mode 100644
index 000000000..6d4804d12
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
new file mode 100644
index 000000000..29dd2c79e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
@@ -0,0 +1,32 @@
+manager_configuration:
+ power_on_delay: 20
+
+zone_configuration:
+
+#Air cooled zones
+- zone_conditions:
+ - name: air_cooled_chassis
+
+ zones:
+ - zone: 0
+ cooling_profiles:
+ - air
+ - all
+ full_speed: 10500
+ default_floor: 8000
+ increase_delay: 5
+ decrease_interval: 30
+
+#Water cooled zones
+- zone_conditions:
+ - name: water_and_air_cooled_chassis
+
+ zones:
+ - zone: 0
+ cooling_profiles:
+ - water
+ - all
+ full_speed: 10500
+ default_floor: 8000
+ increase_delay: 5
+ decrease_interval: 30
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
new file mode 100644
index 000000000..5db7966fa
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-monitor-config-native/monitor.yaml
@@ -0,0 +1,73 @@
+fans:
+ - inventory: /system/chassis/motherboard/fan0
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan0_0
+ has_target: true
+ - name: fan0_1
+ has_target: false
+
+ - inventory: /system/chassis/motherboard/fan1
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan1_0
+ has_target: true
+ - name: fan1_1
+ has_target: false
+ # Create fan1 inventory & sensors on air cooled only
+ condition:
+ name: propertiesMatch
+ properties:
+ - object: /xyz/openbmc_project/inventory/system/chassis
+ interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ property:
+ name: WaterCooled
+ type: bool
+ value: false
+
+ - inventory: /system/chassis/motherboard/fan2
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan2_0
+ has_target: true
+ - name: fan2_1
+ has_target: false
+
+ - inventory: /system/chassis/motherboard/fan3
+ functional_delay: 5
+ allowed_out_of_range_time: 30
+ deviation: 15
+ num_sensors_nonfunc_for_fan_nonfunc: 1
+ sensors:
+ - name: fan3_0
+ has_target: true
+ - name: fan3_1
+ has_target: false
+
+sensor_trust_groups:
+ - class: NonzeroSpeed
+ group:
+ # Include all _1 fans to determine trust
+ - name: fan0_1
+ - name: fan1_1
+ - name: fan2_1
+ - name: fan3_1
+ # Add all _0 fans to be included in trust result effects,
+ # but not in determining trust
+ - name: fan0_0
+ in_trust: false
+ - name: fan1_0
+ in_trust: false
+ - name: fan2_0
+ in_trust: false
+ - name: fan3_0
+ in_trust: false
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml
new file mode 100644
index 000000000..c5be29c1e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-presence-config-native%/config.yaml
@@ -0,0 +1,55 @@
+- name: fan0
+ path: /system/chassis/motherboard/fan0
+ methods:
+ - type: gpio
+ key: 4
+ physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060
+ devpath: /dev/input/by-path/platform-gpio-keys-polled-event
+ - type: tach
+ sensors:
+ - fan0_0
+ - fan0_1
+ rpolicy:
+ type: anyof
+
+- name: fan1
+ path: /system/chassis/motherboard/fan1
+ methods:
+ - type: gpio
+ key: 5
+ physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060
+ devpath: /dev/input/by-path/platform-gpio-keys-polled-event
+ - type: tach
+ sensors:
+ - fan1_0
+ - fan1_1
+ rpolicy:
+ type: anyof
+
+- name: fan2
+ path: /system/chassis/motherboard/fan2
+ methods:
+ - type: gpio
+ key: 6
+ physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060
+ devpath: /dev/input/by-path/platform-gpio-keys-polled-event
+ - type: tach
+ sensors:
+ - fan2_0
+ - fan2_1
+ rpolicy:
+ type: anyof
+
+- name: fan3
+ path: /system/chassis/motherboard/fan3
+ methods:
+ - type: gpio
+ key: 7
+ physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:i2c@1e78a000/1e78a100.i2c-bus/i2c-3/3-0060
+ devpath: /dev/input/by-path/platform-gpio-keys-polled-event
+ - type: tach
+ sensors:
+ - fan3_0
+ - fan3_1
+ rpolicy:
+ type: anyof
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy-native.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy-native.bb
new file mode 100644
index 000000000..b7da45c01
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy-native.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Fan policy for Witherspoon"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-dbus-monitor
+
+SRC_URI += "file://air-cooled.yaml"
+SRC_URI += "file://water-cooled.yaml"
+SRC_URI += "file://fan-errors.yaml"
+
+do_install() {
+ install -D ${WORKDIR}/air-cooled.yaml ${D}${config_dir}/air-cooled.yaml
+ install -D ${WORKDIR}/water-cooled.yaml ${D}${config_dir}/water-cooled.yaml
+ install -D ${WORKDIR}/fan-errors.yaml ${D}${config_dir}/fan-errors.yaml
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/air-cooled.yaml
new file mode 100644
index 000000000..d60aa9179
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/air-cooled.yaml
@@ -0,0 +1,328 @@
+# Air cooled Witherspoon fan policy for PDM.
+#
+# An air cooled Witherspoon requires a minimum of three functional fans
+# enclosures or six functional fan rotors across all enclosures.
+# If the number of functional fan enclosures is below three, soft poweroff
+# the system, whereas if the number of fan rotors drop below six, an
+# immediate hard poweroff of the system occurs.
+
+- name: fan enclosures
+ description: >
+ 'An air cooled Witherspoon has four fan enclosures to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+
+- name: fan rotors
+ description: >
+ 'An air cooled Witherspoon has eight fan rotors to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1
+
+- name: chassis state
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis air cooled
+ description: >
+ 'Monitor the chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: watch fan present
+ description: >
+ 'Trigger logic on fan enclosure presence state changes.'
+ class: watch
+ watch: property
+ paths: fan enclosures
+ properties: fan present
+ callback: check cooling type
+
+- name: watch fan functional
+ description: >
+ 'Trigger logic on fan enclosure functional state changes.'
+ class: watch
+ watch: property
+ paths: fan enclosures
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch fan rotor functional
+ description: >
+ 'Trigger logic on fan rotor functional state changes.'
+ class: watch
+ watch: property
+ paths: fan rotors
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check cooling type
+
+- name: watch cooling type
+ description: >
+ 'Maintain a cache of the chassis cooling type.'
+ class: watch
+ watch: property
+ paths: chassis
+ properties: chassis air cooled
+
+- name: check cooling type
+ description: >
+ 'If this condition passes the chassis is air cooled.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: check power
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check power
+ description: >
+ 'If the chassis has power, check fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify there are at least three functional fan enclosures and at least
+ six functional fan rotors, power off if not.'
+ class: callback
+ callback: group
+ members:
+ - check group presence
+ - check group functional enclosures
+ - check group functional rotors
+
+- name: check group presence
+ description: >
+ 'If this condition passes more than one fan has been unplugged
+ for more than 25 seconds. Shut the system down. Count present
+ fans rather than non-present fans since the latter would pass
+ if the fan has not been created for some reason.
+
+ For a more detailed definition of unplugged, consult the documentation
+ of xyz.openbmc_project.Inventory.Item and/or the documentation
+ of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan enclosures
+ properties: fan present
+ defer: 25000000us
+ callback: log and shutdown
+ countop: '<'
+ countbound: 3
+ op: '=='
+ bound: true
+
+- name: check group functional enclosures
+ description: >
+ 'If this condition passes more than one fan enclosure in the group has been
+ marked as nonfunctional for five seconds. Shut the system down.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan enclosures
+ properties: fan functional
+ defer: 5000000us
+ callback: log and shutdown
+ countop: '>'
+ countbound: 1
+ op: '=='
+ bound: false
+
+- name: check group functional rotors
+ description: >
+ 'If this condition passes more than two fan rotors in the group have been
+ marked as nonfunctional for five seconds. Immediately power off.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan rotors
+ properties: fan functional
+ defer: 5000000us
+ callback: log and poweroff
+ countop: '>'
+ countbound: 2
+ op: '=='
+ bound: false
+
+- name: log and poweroff
+ description: >
+ 'Immediately poweroff, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - hard poweroff
+ - log hard poweroff
+ - create shutdown error
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - log shutdown
+ - create shutdown error
+
+- name: hard poweroff
+ description: >
+ 'Immediately power off the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-host-shutdown@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: log hard poweroff
+ description: >
+ 'Log a hard poweroff event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Immediate poweroff of system. There are not enough functional fans.
+
+- name: log shutdown
+ description: >
+ 'Log a shutdown event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Request shutdown of system. There are not enough functional fans.
+
+- name: create shutdown error
+ description: >
+ 'Create a Fan Shutdown Error log.'
+ class: callback
+ callback: elog
+ paths: chassis state
+ properties: chassis powered
+ error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/fan-errors.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/fan-errors.yaml
new file mode 100644
index 000000000..0c14627d2
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/fan-errors.yaml
@@ -0,0 +1,676 @@
+# Witherspoon fan error policy for PDM.
+#
+# * Create a NotPresent error if fan 0, 1, 2, or 3 is not present for more
+# than 20 seconds.
+# * Create a Nonfunctional error if fan 0, 1, 2, or 3 is not
+# functional for any amount of time.
+#
+# The system must be powered on in both of these cases.
+# If a water cooled system, don't create errors for fan 1.
+# Note: An error is created each time the chassis powers on.
+#
+# * Watch for fans to become both present and functional, and then resolve
+# their errors
+
+- name: fan0
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+
+- name: fan1
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+
+- name: fan2
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+
+- name: fan3
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+
+- name: chassis state
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: fan present and functional
+ description: >
+ 'Monitor the present and functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis air cooled
+ description: >
+ 'The chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check power
+
+- name: watch fan0 presence
+ description: >
+ 'Trigger logic on fan0 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan present
+ callback: check power fan0 presence
+
+- name: watch fan0 functional
+ description: >
+ 'Trigger logic on fan0 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan functional
+ callback: check power fan0 functional
+
+- name: watch fan1 presence
+ description: >
+ 'Trigger logic on fan1 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan present
+ callback: check power fan1 presence
+
+- name: watch fan1 functional
+ description: >
+ 'Trigger logic on fan1 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan functional
+ callback: check power fan1 functional
+
+- name: watch fan2 presence
+ description: >
+ 'Trigger logic on fan2 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan present
+ callback: check power fan2 presence
+
+- name: watch fan2 functional
+ description: >
+ 'Trigger logic on fan2 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan functional
+ callback: check power fan2 functional
+
+- name: watch fan3 presence
+ description: >
+ 'Trigger logic on fan3 presence state changes.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan present
+ callback: check power fan3 presence
+
+- name: watch fan3 functional
+ description: >
+ 'Trigger logic on fan3 functional state changes.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan functional
+ callback: check power fan3 functional
+
+- name: watch fan0 present and functional for resolving error logs
+ description: >
+ 'On fan present or functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan0
+ properties: fan present and functional
+ callback: resolve fan0 errors if present and functional
+
+- name: watch fan1 present and functional for resolving error logs
+ description: >
+ 'On fan present or functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan1
+ properties: fan present and functional
+ callback: resolve fan1 errors if present and functional
+
+- name: watch fan2 present and functional for resolving error logs
+ description: >
+ 'On fan present or functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan2
+ properties: fan present and functional
+ callback: resolve fan2 errors if present and functional
+
+- name: watch fan3 present and functional for resolving error logs
+ description: >
+ 'On fan present or functional state changes, check if errors need to be resolved.'
+ class: watch
+ watch: property
+ paths: fan3
+ properties: fan present and functional
+ callback: resolve fan3 errors if present and functional
+
+- name: check power
+ description: >
+ 'If the chassis has power, check all fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan0 presence
+ description: >
+ 'If the chassis has power, check presence of fan0.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan0 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan0 functional
+ description: >
+ 'If the chassis has power, check functional of fan0.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan0 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan1 presence
+ description: >
+ 'If the chassis has power, check presence of fan1.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan1 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan1 functional
+ description: >
+ 'If the chassis has power, check functional of fan1.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan1 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan2 presence
+ description: >
+ 'If the chassis has power, check presence of fan2.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan2 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan2 functional
+ description: >
+ 'If the chassis has power, check functional of fan2.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan2 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan3 presence
+ description: >
+ 'If the chassis has power, check presence of fan3.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan3 presence
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check power fan3 functional
+ description: >
+ 'If the chassis has power, check functional of fan3.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fan3 functional
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify each of the 3 fans are present.'
+ class: callback
+ callback: group
+ members:
+ - check fan0 presence
+ - check fan1 presence
+ - check fan2 presence
+ - check fan3 presence
+ - check fan0 functional
+ - check fan1 functional
+ - check fan2 functional
+ - check fan3 functional
+
+- name: check fan0 presence
+ description: >
+ 'If this condition passes fan0 has been unplugged for more than 20 seconds.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan present
+ defer: 20000000us
+ callback: notpresent fan0 error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan0 functional
+ description: >
+ 'If this condition passes fan0 has been marked as nonfunctional.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan functional
+ callback: nonfunctional fan0 error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan1 presence
+ description: >
+ 'If this condition passes fan1 has been unplugged for more than 20 seconds.
+ Fan 1 is not in a water cooled Witherspoon, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan present
+ defer: 20000000us
+ callback: check cooling type notpresent error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan1 functional
+ description: >
+ 'If this condition passes fan1 has been marked as nonfunctional.
+ Fan 1 is not in a water cooled Witherspoon, so check for cooling type
+ before creating an error.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan functional
+ callback: check cooling type nonfunctional error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan2 presence
+ description: >
+ 'If this condition passes fan2 has been unplugged for more than 20 seconds.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan present
+ defer: 20000000us
+ callback: notpresent fan2 error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan2 functional
+ description: >
+ 'If this condition passes fan2 has been marked as nonfunctional.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan functional
+ callback: nonfunctional fan2 error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check fan3 presence
+ description: >
+ 'If this condition passes fan3 has been unplugged for more than 20 seconds.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan present
+ defer: 20000000us
+ callback: notpresent fan3 error
+ countop: '<'
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check fan3 functional
+ description: >
+ 'If this condition passes fan3 has been marked as nonfunctional.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan functional
+ callback: nonfunctional fan3 error
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: false
+
+- name: check cooling type nonfunctional error
+ description: >
+ 'If this condition passes the chassis is air cooled and will create a
+ nonfunctional error for fan 1.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: nonfunctional fan1 error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: check cooling type notpresent error
+ description: >
+ 'If this condition passes the chassis is air cooled and will create a
+ notpresent error for fan 1.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis air cooled
+ callback: notpresent fan1 error
+ countop: '=='
+ countbound: 0
+ op: '=='
+ bound: true
+
+- name: notpresent fan0 error
+ class: callback
+ callback: elog
+ paths: fan0
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ type: string
+
+- name: nonfunctional fan0 error
+ class: callback
+ callback: elog
+ paths: fan0
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ type: string
+
+- name: notpresent fan1 error
+ class: callback
+ callback: elog
+ paths: fan1
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ type: string
+
+- name: nonfunctional fan1 error
+ class: callback
+ callback: elog
+ paths: fan1
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+ type: string
+
+- name: notpresent fan2 error
+ class: callback
+ callback: elog
+ paths: fan2
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ type: string
+
+- name: nonfunctional fan2 error
+ class: callback
+ callback: elog
+ paths: fan2
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ type: string
+
+- name: notpresent fan3 error
+ class: callback
+ callback: elog
+ paths: fan3
+ properties: fan present
+ error: xyz::openbmc_project::Inventory::Error::NotPresent
+ metadata:
+ - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+ type: string
+
+- name: nonfunctional fan3 error
+ class: callback
+ callback: elog
+ paths: fan3
+ properties: fan functional
+ error: xyz::openbmc_project::Inventory::Error::Nonfunctional
+ metadata:
+ - name: xyz::openbmc_project::Inventory::Nonfunctional::CALLOUT_INVENTORY_PATH
+ value: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+ type: string
+
+- name: resolve fan0 errors if present and functional
+ description: >
+ 'If fan0 is present and functional, call the resolve fan0 errors callback.'
+ class: condition
+ condition: count
+ paths: fan0
+ properties: fan present and functional
+ callback: resolve fan0 errors
+ countop: '=='
+ countbound: 2
+ op: '=='
+ bound: true
+
+#Go ahead and do this on water cooled as well
+- name: resolve fan1 errors if present and functional
+ description: >
+ 'If fan1 is present and functional, call the resolve fan1 errors callback.'
+ class: condition
+ condition: count
+ paths: fan1
+ properties: fan present and functional
+ callback: resolve fan1 errors
+ countop: '=='
+ countbound: 2
+ op: '=='
+ bound: true
+
+- name: resolve fan2 errors if present and functional
+ description: >
+ 'If fan2 is present and functional, call the resolve fan2 errors callback.'
+ class: condition
+ condition: count
+ paths: fan2
+ properties: fan present and functional
+ callback: resolve fan2 errors
+ countop: '=='
+ countbound: 2
+ op: '=='
+ bound: true
+
+- name: resolve fan3 errors if present and functional
+ description: >
+ 'If fan3 is present and functional, call the resolve fan3 errors callback.'
+ class: condition
+ condition: count
+ paths: fan3
+ properties: fan present and functional
+ callback: resolve fan3 errors
+ countop: '=='
+ countbound: 2
+ op: '=='
+ bound: true
+
+- name: resolve fan0 errors
+ class: callback
+ callback: resolve callout
+ paths: fan0
+ properties: fan present and functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+
+- name: resolve fan1 errors
+ class: callback
+ callback: resolve callout
+ paths: fan1
+ properties: fan present and functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1
+
+- name: resolve fan2 errors
+ class: callback
+ callback: resolve callout
+ paths: fan2
+ properties: fan present and functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+
+- name: resolve fan3 errors
+ class: callback
+ callback: resolve callout
+ paths: fan3
+ properties: fan present and functional
+ callout: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml
new file mode 100644
index 000000000..a279cfefa
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml
@@ -0,0 +1,322 @@
+# Water cooled Witherspoon fan policy for PDM.
+#
+# A water cooled Witherspoon requires a minimum of two functional fan
+# enclosures or four functional fan rotors across all enclosures.
+# If the number of functional fan enclosures is below two, soft poweroff
+# the system, whereas if the number of fan rotors drop below four, an
+# immediate hard poweroff of the system occurs.
+
+- name: fan enclosures
+ description: >
+ 'A water cooled Witherspoon has three fan enclosures to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
+
+- name: fan rotors
+ description: >
+ 'A water cooled Witherspoon has six fan rotors to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0
+ - meta: FAN
+ path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1
+
+- name: chassis state
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSISSTATE
+ path: /xyz/openbmc_project/state/chassis0
+
+- name: chassis
+ description: >
+ 'Witherspoon has a single chassis to monitor.'
+ class: group
+ group: path
+ members:
+ - meta: CHASSIS
+ path: /xyz/openbmc_project/inventory/system/chassis
+
+- name: fan present
+ description: >
+ 'Monitor the presence state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Item
+ meta: PRESENT
+ property: Present
+
+- name: fan functional
+ description: >
+ 'Monitor the functional state of each fan.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.State.Decorator.OperationalStatus
+ meta: FUNCTIONAL
+ property: Functional
+
+- name: chassis powered
+ description: >
+ 'Monitor the chassis power state.'
+ class: group
+ group: property
+ type: string
+ members:
+ - interface: xyz.openbmc_project.State.Chassis
+ meta: CHASSIS_STATE
+ property: CurrentPowerState
+
+- name: chassis water cooled
+ description: >
+ 'Monitor the chassis cooling type.'
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
+ meta: COOLING_TYPE
+ property: WaterCooled
+
+- name: watch fan present
+ description: >
+ 'Trigger logic on fan enclosure presence state changes.'
+ class: watch
+ watch: property
+ paths: fan enclosures
+ properties: fan present
+ callback: check cooling type
+
+- name: watch fan functional
+ description: >
+ 'Trigger logic on fan enclosure functional state changes.'
+ class: watch
+ watch: property
+ paths: fan enclosures
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch fan rotor functional
+ description: >
+ 'Trigger logic on fan rotor functional state changes.'
+ class: watch
+ watch: property
+ paths: fan rotors
+ properties: fan functional
+ callback: check cooling type
+
+- name: watch chassis state
+ description: >
+ 'Trigger logic on chassis power state changes.'
+ class: watch
+ watch: property
+ paths: chassis state
+ properties: chassis powered
+ callback: check cooling type
+
+- name: watch cooling type
+ description: >
+ 'Maintain a cache of the chassis cooling type.'
+ class: watch
+ watch: property
+ paths: chassis
+ properties: chassis water cooled
+
+- name: check cooling type
+ description: >
+ 'If this condition passes the chassis is water cooled.'
+ class: condition
+ condition: count
+ paths: chassis
+ properties: chassis water cooled
+ callback: check power
+ countop: '=='
+ countbound: 1
+ op: '=='
+ bound: true
+
+- name: check power
+ description: >
+ 'If the chassis has power, check fans.'
+ class: condition
+ condition: count
+ paths: chassis state
+ properties: chassis powered
+ callback: check fans
+ countop: '>'
+ countbound: 0
+ op: '=='
+ bound: xyz.openbmc_project.State.Chassis.PowerState.On
+
+- name: check fans
+ description: >
+ 'Verify there are at least two functional fan enclosures and at least
+ four functional fan rotors, power off if not.'
+ class: callback
+ callback: group
+ members:
+ - check group presence
+ - check group functional enclosures
+ - check group functional rotors
+
+- name: check group presence
+ description: >
+ 'If this condition passes more than one fan has been unplugged
+ for more than 25 seconds. Shut the system down. Count present
+ fans rather than non-present fans since the latter would pass
+ if the fan has not been created for some reason.
+
+ For a more detailed definition of unplugged, consult the documentation
+ of xyz.openbmc_project.Inventory.Item and/or the documentation
+ of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan enclosures
+ properties: fan present
+ defer: 25000000us
+ callback: log and shutdown
+ countop: '<'
+ countbound: 2
+ op: '=='
+ bound: true
+
+- name: check group functional enclosures
+ description: >
+ 'If this condition passes more than one fan enclosure in the group has been
+ marked as nonfunctional for five seconds. Shut the system down.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan enclosures
+ properties: fan functional
+ defer: 5000000us
+ callback: log and shutdown
+ countop: '>'
+ countbound: 1
+ op: '=='
+ bound: false
+
+- name: check group functional rotors
+ description: >
+ 'If this condition passes more than two fan rotors in the group have been
+ marked as nonfunctional for five seconds. Immediately power off.
+
+ For a more detailed definition of nonfunctional, consult the documentation
+ of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the
+ documentation of the fan inventory object implementation.'
+ class: condition
+ condition: count
+ paths: fan rotors
+ properties: fan functional
+ defer: 5000000us
+ callback: log and poweroff
+ countop: '>'
+ countbound: 2
+ op: '=='
+ bound: false
+
+- name: log and poweroff
+ description: >
+ 'Immediately poweroff, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - hard poweroff
+ - log hard poweroff
+ - create shutdown error
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down, log an event in the journal, and create an
+ error log.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - log shutdown
+ - create shutdown error
+
+- name: hard poweroff
+ description: >
+ 'Immediately power off the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-host-shutdown@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: log hard poweroff
+ description: >
+ 'Log a hard poweroff event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Immediate poweroff of system. There are not enough functional fans.
+
+- name: log shutdown
+ description: >
+ 'Log a shutdown event to the systemd journal.'
+ class: callback
+ callback: journal
+ paths: chassis state
+ properties: chassis powered
+ severity: ERR
+ message: Request shutdown of system. There are not enough functional fans.
+
+- name: create shutdown error
+ description: >
+ 'Create a Fan Shutdown Error log.'
+ class: callback
+ callback: elog
+ paths: chassis state
+ properties: chassis powered
+ error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb
new file mode 100644
index 000000000..c09b9df24
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Witherspoon fan watchdog services"
+PR = "r1"
+
+inherit obmc-phosphor-license
+inherit obmc-phosphor-systemd
+
+RDEPENDS_${PN} += "virtual/obmc-gpio-monitor"
+RDEPENDS_${PN} += "busybox"
+
+RESET_SERVICE = "witherspoon-reset-fan-watchdog.service"
+TGTFMT = "obmc-chassis-poweron@0.target"
+RESET_FMT = "../${RESET_SERVICE}:${TGTFMT}.requires/${RESET_SERVICE}"
+
+MONITOR_SERVICE = "witherspoon-fan-watchdog-monitor@.service"
+
+WATCHDOG_SERVICE = "witherspoon-fan-watchdog.service"
+WATCHDOG_FMT = "../${WATCHDOG_SERVICE}:${TGTFMT}.requires/${WATCHDOG_SERVICE}"
+
+SYSTEMD_SERVICE_${PN} += "${RESET_SERVICE} ${MONITOR_SERVICE} ${WATCHDOG_SERVICE}"
+SYSTEMD_LINK_${PN} += "${RESET_FMT} ${WATCHDOG_FMT}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "obmc/witherspoon-fan-watchdog/fan-watchdog.conf"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/fan-watchdog.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/fan-watchdog.conf
new file mode 100644
index 000000000..ce7824ccb
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/fan-watchdog.conf
@@ -0,0 +1,3 @@
+TIMEOUT=5
+INTERVAL=1
+DEVICE=/dev/watchdog0
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf
new file mode 100644
index 000000000..b4e5ce74e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf
@@ -0,0 +1,4 @@
+GPIO_PATH=/dev/gpiochip0
+GPIO=109
+DELAY=1
+ACTION=low_high
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog-monitor@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog-monitor@.service
new file mode 100644
index 000000000..945561b50
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog-monitor@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Fan Watchdog Failure Monitor
+
+#This can get called every time a process dies, so ensure it's never limited
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env phosphor-unit-failure-monitor --source %i --target obmc-fan-watchdog-takeover.target --action start
+SyslogIdentifier=phosphor-unit-failure-monitor
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service
new file mode 100644
index 000000000..5b59546e3
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-fan-watchdog.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Witherspoon Fan Watchdog Daemon
+Wants=phosphor-fan-control-init@0.service
+Before=phosphor-fan-control-init@0.service
+Conflicts=obmc-fan-watchdog-takeover.target
+
+[Service]
+EnvironmentFile={envfiledir}/obmc/witherspoon-fan-watchdog/fan-watchdog.conf
+ExecStart=/sbin/watchdog -T ${{TIMEOUT}} -t ${{INTERVAL}} -F ${{DEVICE}}
+KillSignal=SIGKILL
+
+[Install]
+RequiredBy=obmc-chassis-poweron@0.target
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service
new file mode 100644
index 000000000..e0ef0aeeb
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-watchdog/witherspoon-reset-fan-watchdog.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Witherspoon Fan Watchdog Reset
+Wants=phosphor-fan-control-init@0.service
+Before=phosphor-fan-control-init@0.service
+Conflicts=obmc-chassis-poweroff@0.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile={envfiledir}/obmc/witherspoon-fan-watchdog/reset-fan-watchdog.conf
+ExecStart=/usr/bin/env phosphor-gpio-util -p ${{GPIO_PATH}} -g ${{GPIO}} -a ${{ACTION}} -d ${{DELAY}}
+SyslogIdentifier=phosphor-gpio-util
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy-native.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy-native.bb
new file mode 100644
index 000000000..39831cf86
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy-native.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Thermal policy for Witherspoon"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-dbus-monitor
+
+SRC_URI += "file://thermal-policy.yaml"
+
+do_install() {
+ install -D ${WORKDIR}/thermal-policy.yaml ${D}${config_dir}/thermal-policy.yaml
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy/thermal-policy.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy/thermal-policy.yaml
new file mode 100644
index 000000000..1dd2306e9
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-thermal-policy/thermal-policy.yaml
@@ -0,0 +1,187 @@
+# Witherspoon thermal policy for PDM.
+#
+# Shut down a Witherspoon system if more than three POWER9 cores
+# have a temperature greater than 115 degrees Celcius.
+
+
+- name: core sensors
+ description: >
+ 'Witherspoon has two POWER9 chips with 24 cores each.'
+ class: group
+ group: path
+ members:
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core0_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core1_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core2_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core3_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core4_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core5_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core6_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core7_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core8_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core9_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core10_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core11_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core12_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core13_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core14_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core15_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core16_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core17_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core18_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core19_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core20_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core21_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core22_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p0_core23_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core0_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core1_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core2_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core3_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core4_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core5_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core6_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core7_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core8_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core9_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core10_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core11_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core12_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core13_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core14_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core15_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core16_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core17_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core18_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core19_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core20_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core21_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core22_temp
+ - meta: SENSOR
+ path: /xyz/openbmc_project/sensors/temperature/p1_core23_temp
+
+- name: core temp
+ description: >
+ 'Monitor the temperature of each core.'
+ class: group
+ group: property
+ type: int64
+ members:
+ - interface: xyz.openbmc_project.Sensor.Value
+ meta: TEMP
+ property: Value
+
+- name: watch core temps
+ description: >
+ 'Trigger logic on core temp changes.'
+ class: watch
+ watch: property
+ paths: core sensors
+ properties: core temp
+ callback: check temps
+
+- name: check temps
+ description: >
+ 'If this condition passes at least three cores are running
+ too hot. Shut the system down.'
+ class: condition
+ condition: count
+ paths: core sensors
+ properties: core temp
+ callback: log and shutdown
+ countop: '>='
+ countbound: 3
+ op: '>='
+ bound: 115000
+ oneshot: true
+
+- name: log and shutdown
+ description: >
+ 'Shut the system down and log an event.'
+ class: callback
+ callback: group
+ members:
+ - shutdown
+ - create criticalhigh error
+ - create shutdown error
+
+- name: shutdown
+ description: >
+ 'Shut down the system.'
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-chassis-hard-poweroff@0.target
+ type: string
+ - value: replace
+ type: string
+
+- name: create criticalhigh error
+ description: >
+ 'Create a CriticalHigh Error log.'
+ class: callback
+ callback: elog_with_metadata
+ paths: core sensors
+ properties: core temp
+ error: xyz::openbmc_project::Sensor::Threshold::Error::CriticalHigh
+ metadata: xyz::openbmc_project::Sensor::Threshold::CriticalHigh::SENSOR_DATA
+
+- name: create shutdown error
+ description: >
+ 'Create a SystemShutdown Error log.'
+ class: callback
+ callback: elog
+ paths: core sensors
+ properties: core temp
+ error: xyz::openbmc_project::State::Shutdown::ThermalEvent::Error::Processor
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager.bbappend
new file mode 100644
index 000000000..3dcc25dd7
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/flash/openpower-software-manager.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG_append_df-openpower-ubi-fs = " verify_pnor_signature"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend
new file mode 100644
index 000000000..eafd11f6c
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/flash/phosphor-software-manager.bbappend
@@ -0,0 +1,10 @@
+BMC_RW_MTD = "bmc"
+BMC_RO_MTD = "alt-bmc+bmc"
+BMC_KERNEL_MTD = "bmc"
+BMC_RW_SIZE = "0x600000"
+
+# Enable signature verification by DISTRO_FEATURE obmc-ubi-fs
+PACKAGECONFIG_append_df-obmc-ubi-fs = " verify_signature"
+
+# Enable sync of persistent files to the alternate BMC chip
+PACKAGECONFIG_append_df-obmc-ubi-fs = " sync_bmc_files"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend
new file mode 100644
index 000000000..b60a64b10
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend
@@ -0,0 +1,12 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+
+TMPL_POWERSUPPLY = "phosphor-gpio-presence@.service"
+INSTFMT_POWERSUPPLY = "phosphor-gpio-presence@{0}.service"
+POWERSUPPLY_TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT_POWERSUPPLY = "../${TMPL_POWERSUPPLY}:${POWERSUPPLY_TGT}.requires/${INSTFMT_POWERSUPPLY}"
+
+SYSTEMD_LINK_${PN}-presence += "${@compose_list(d, 'FMT_POWERSUPPLY', 'OBMC_POWER_SUPPLY_INSTANCES')}"
+
+POWERSUPPLY_ENV_FMT = "obmc/gpio/phosphor-power-supply-{0}.conf"
+
+SYSTEMD_ENVIRONMENT_FILE_${PN}-presence += "${@compose_list(d, 'POWERSUPPLY_ENV_FMT', 'OBMC_POWER_SUPPLY_INSTANCES')}"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf
new file mode 100644
index 000000000..285a8f704
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-0.conf
@@ -0,0 +1,5 @@
+INVENTORY=/system/chassis/motherboard/powersupply0
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=104
+NAME=powersupply0
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0069
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf
new file mode 100644
index 000000000..56e16c567
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-power-supply-1.conf
@@ -0,0 +1,5 @@
+INVENTORY=/system/chassis/motherboard/powersupply1
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=127
+NAME=powersupply1
+DRIVERS=/sys/bus/i2c/drivers/ibm-cffps,3-0068
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend
new file mode 100644
index 000000000..4cac4903f
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/host/p9-host-start.bbappend
@@ -0,0 +1,3 @@
+RDEPENDS_${PN} += 'avsbus-control'
+RDEPENDS_${PN} += 'vrm-control'
+RDEPENDS_${PN}_remove += "p9-vcs-workaround"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..bea352f7d
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd max31785-msl phosphor-msl-verify liberation-fonts uart-render-controller"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest/url_config.json b/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest/url_config.json
new file mode 100644
index 000000000..46a4d02b4
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/interfaces/phosphor-rest/url_config.json
@@ -0,0 +1,14 @@
+{
+ "urls": [
+ "/org/open_power/*",
+ "/com/ibm/*",
+ "/xyz/openbmc_project/*",
+ "/enumerate",
+ "/list",
+ "/login",
+ "/logout",
+ "/subscribe",
+ "/upload/image",
+ "/download/dump/*"
+ ]
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup-native.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup-native.bb
new file mode 100644
index 000000000..6efde485f
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup-native.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Copy Witherspoon inventory cleanup yaml for inventory manager"
+PR = "r1"
+
+inherit native
+inherit obmc-phosphor-license
+inherit phosphor-inventory-manager
+
+SRC_URI += "file://inventory-cleanup.yaml"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}${base_datadir}/events.d/
+ install ${S}/inventory-cleanup.yaml ${D}${base_datadir}/events.d/inventory-cleanup.yaml
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml
new file mode 100644
index 000000000..01632e6d8
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/inventory-cleanup/inventory-cleanup.yaml
@@ -0,0 +1,27 @@
+description: >
+ Witherspoon inventory fixups
+
+events:
+ - name: Remove power_supplies
+ description: >
+ Remove the deprecated 'power_supply' objects
+ type: startup
+ actions:
+ - name: destroyObjects
+ paths:
+ - /system/chassis/power_supply0
+ - /system/chassis/power_supply1
+ - /system/chassis/powersupply0
+ - /system/chassis/powersupply1
+
+ - name: Remove fan1
+ description: >
+ Remove all fan1 associated objects and have fan presence and
+ fan monitor create it based on cooling type.
+ type: startup
+ actions:
+ - name: destroyObjects
+ paths:
+ - /system/chassis/motherboard/fan1/fan1_0
+ - /system/chassis/motherboard/fan1/fan1_1
+ - /system/chassis/motherboard/fan1
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager-config-native.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager-config-native.bbappend
new file mode 100644
index 000000000..d9304c045
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/inventory/phosphor-inventory-manager-config-native.bbappend
@@ -0,0 +1 @@
+PHOSPHOR_INVENTORY_MANAGER_CONFIGS += "inventory-cleanup-native"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
new file mode 100644
index 000000000..072cc5cd6
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-bmc-inventory%/bmc-fru-config.yaml
@@ -0,0 +1,120 @@
+50:
+ /system/chassis/motherboard/fan0:
+ entityID: 29
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+51:
+ /system/chassis/motherboard/fan1:
+ entityID: 29
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+52:
+ /system/chassis/motherboard/fan2:
+ entityID: 29
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+53:
+ /system/chassis/motherboard/fan3:
+ entityID: 29
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+60:
+ /system/chassis/motherboard/boxelder/bmc:
+ entityID: 6
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Board Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+70:
+ /system/chassis/motherboard/boxelder/bmc/ethernet:
+ entityID: 1
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Product Name
+ IPMIFruSection: Product
+75:
+ /system/chassis/motherboard/powersupply0:
+ entityID: 10
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Board Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+76:
+ /system/chassis/motherboard/powersupply1:
+ entityID: 10
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Board Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%.bbappend
new file mode 100644
index 000000000..72d991c7e
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%/fru-config-not-sent-by-host.yaml b/meta-ibm/meta-witherspoon/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..65c02b64b
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-fru-read-not-sent-by-host-inventory%/fru-config-not-sent-by-host.yaml
@@ -0,0 +1,29 @@
+20:
+ /system/chassis/motherboard/gv100card0: &DEFAULTS
+ entityInstance: 1
+ entityID: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Board Name
+ IPMIFruSection: Board
+21:
+ /system/chassis/motherboard/gv100card1:
+ <<: *DEFAULTS
+ entityInstance: 2
+22:
+ /system/chassis/motherboard/gv100card2:
+ <<: *DEFAULTS
+ entityInstance: 3
+23:
+ /system/chassis/motherboard/gv100card3:
+ <<: *DEFAULTS
+ entityInstance: 4
+24:
+ /system/chassis/motherboard/gv100card4:
+ <<: *DEFAULTS
+ entityInstance: 5
+25:
+ /system/chassis/motherboard/gv100card5:
+ <<: *DEFAULTS
+ entityInstance: 6
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
new file mode 100644
index 000000000..a314d163b
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS_append_witherspoon := ":${THISDIR}/${PN}"
+SRC_URI_append_witherspoon = " \
+ file://occ_sensors.hardcoded.yaml \
+ file://hwmon_sensors.hardcoded.yaml \
+ file://channel.yaml \
+ "
+
+EXTRA_OECONF_append_witherspoon = " \
+ CHANNEL_YAML_GEN=${WORKDIR}/channel.yaml \
+ "
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
new file mode 100644
index 000000000..627f4965f
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
@@ -0,0 +1,4 @@
+# Channel Number (must be unique) is the key
+1:
+ # ifName the ethernet device name (used in the dbus path)
+ ifName: eth0
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml
new file mode 100644
index 000000000..f81159c73
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/hwmon_sensors.hardcoded.yaml
@@ -0,0 +1,573 @@
+0xdd:
+ entityID: 0x1D
+ entityInstance: 1
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan0_0
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xde:
+ entityID: 0x1D
+ entityInstance: 2
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan0_1
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xdf:
+ entityID: 0x1D
+ entityInstance: 3
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan1_0
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe2:
+ entityID: 0x1D
+ entityInstance: 4
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan1_1
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe3:
+ entityID: 0x1D
+ entityInstance: 5
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan2_0
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe4:
+ entityID: 0x1D
+ entityInstance: 6
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan2_1
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe5:
+ entityID: 0x1D
+ entityInstance: 7
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan3_0
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe6:
+ entityID: 0x1D
+ entityInstance: 8
+ sensorType: 0x04
+ path: /xyz/openbmc_project/sensors/fan_tach/fan3_1
+ sensorReadingType: 0x01
+ multiplierM: 100
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+ scale: 0
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xe7:
+ entityID: 0x0A
+ entityInstance: 1
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/fan_disk_power
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xee:
+ entityID: 0x0A
+ entityInstance: 9
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_io_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xef:
+ entityID: 0x0A
+ entityInstance: 10
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_io_power
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf0:
+ entityID: 0x0A
+ entityInstance: 11
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_mem_power
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf1:
+ entityID: 0x0A
+ entityInstance: 12
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_mem_power
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf2:
+ entityID: 0x0A
+ entityInstance: 13
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p0_power
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf3:
+ entityID: 0x0A
+ entityInstance: 14
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/p1_power
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+
+0xf4:
+ entityID: 0x0A
+ entityInstance: 15
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/ps0_input_power
+ sensorReadingType: 0x01
+ multiplierM: 10
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf5:
+ entityID: 0x0A
+ entityInstance: 16
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/ps1_input_power
+ sensorReadingType: 0x01
+ multiplierM: 10
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf6:
+ entityID: 0x0A
+ entityInstance: 17
+ sensorType: 0x08
+ path: /xyz/openbmc_project/sensors/power/total_power
+ sensorReadingType: 0x01
+ multiplierM: 20
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+ scale: -6
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf7:
+ entityID: 0x0A
+ entityInstance: 19
+ sensorType: 0x02
+ path: /xyz/openbmc_project/sensors/voltage/ps0_input_voltage
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf8:
+ entityID: 0x0A
+ entityInstance: 20
+ sensorType: 0x02
+ path: /xyz/openbmc_project/sensors/voltage/ps1_input_voltage
+ sensorReadingType: 0x01
+ multiplierM: 2
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xf9:
+ entityID: 0x0A
+ entityInstance: 21
+ sensorType: 0x02
+ path: /xyz/openbmc_project/sensors/voltage/ps0_output_voltage
+ sensorReadingType: 0x01
+ multiplierM: 10
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfa:
+ entityID: 0x0A
+ entityInstance: 22
+ sensorType: 0x02
+ path: /xyz/openbmc_project/sensors/voltage/ps1_output_voltage
+ sensorReadingType: 0x01
+ multiplierM: 10
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfb:
+ entityID: 0x0A
+ entityInstance: 23
+ sensorType: 0x03
+ path: /xyz/openbmc_project/sensors/current/ps0_output_current
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfc:
+ entityID: 0x0A
+ entityInstance: 24
+ sensorType: 0x03
+ path: /xyz/openbmc_project/sensors/current/ps1_output_current
+ sensorReadingType: 0x01
+ multiplierM: 1
+ offsetB: 0
+ bExp: 0
+ rExp: 0
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfd:
+ entityID: 0x23
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/pcie
+ sensorReadingType: 0x01
+ multiplierM: 30
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
+0xfe:
+ entityID: 0x40
+ entityInstance: 1
+ sensorType: 0x01
+ path: /xyz/openbmc_project/sensors/temperature/ambient
+ sensorReadingType: 0x01
+ multiplierM: 20
+ offsetB: 0
+ bExp: 0
+ rExp: -2
+ unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+ scale: -3
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: readingData
+ sensorNamePattern: nameLeaf
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 0xFF:
+ type: int64_t
+
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml
new file mode 100644
index 000000000..a52a8f042
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/phosphor-ipmi-host/occ_sensors.hardcoded.yaml
@@ -0,0 +1,44 @@
+0x08:
+ entityID: 0xD2
+ entityInstance: 1
+ sensorType: 0x09
+ path: /org/open_power/control/occ0
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
+0x09:
+ entityID: 0xD2
+ entityInstance: 2
+ sensorType: 0x09
+ path: /org/open_power/control/occ1
+ sensorReadingType: 0x09
+ serviceInterface: org.freedesktop.DBus.Properties
+ readingType: assertion
+ mutability: Mutability::Write|Mutability::Read
+ sensorNamePattern: nameLeaf
+ interfaces:
+ org.open_power.OCC.Status:
+ OccActive:
+ Offsets:
+ 0x00:
+ assert: false
+ deassert: true
+ type: bool
+ 0x01:
+ assert: true
+ deassert: false
+ type: bool
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config.bb b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config.bb
new file mode 100644
index 000000000..8ab47c631
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config.bb
@@ -0,0 +1,82 @@
+SUMMARY = "Witherspoon 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_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+# Calculate the auxiliary firmware revision to be updated in the dev_id.json
+# file. It is calculated from the VERSION_ID field which currently has two
+# formats. The revision field is 4 bytes, the first two bytes represent the
+# count of commits from the tagging and next two bytes represent the version.
+# Both fields are represented in BCD encoded format, so 9999 is the maximum
+# value both fields can take. With the format "v2.1-216-ga78ace8", Petitboot
+# would display the firmware revision as "Firmware version: 2.01.02160000",
+# "0216" is count and the revision is "0000". With the format
+# "ibm-v2.0-10-r41-0-gd0c319e" Petitboot would display the firmware revision
+# as "Firmware version: 2.00.00100041", "0010" is count and the revision
+# is "0041".
+
+inherit image_version
+
+do_patch[depends] = "os-release:do_populate_sysroot"
+
+python do_patch() {
+ import json
+ import re
+ from shutil import copyfile
+ version_id = do_get_version(d)
+
+ # count from the commit version
+ count = re.findall("-(\d{1,4})-", version_id)
+
+ release = re.findall("-r(\d{1,4})", version_id)
+ if release:
+ auxVer = count[0] + "{0:0>4}".format(release[0])
+ else:
+ auxVer = count[0] + "0000"
+
+ workdir = d.getVar('WORKDIR', True)
+ file = os.path.join(workdir, 'dev_id.json')
+
+ # Update dev_id.json with the auxiliary firmware revision
+ with open(file, "r+") as jsonFile:
+ data = json.load(jsonFile)
+ jsonFile.seek(0)
+ jsonFile.truncate()
+ data["aux"] = int(auxVer, 16)
+ json.dump(data, jsonFile)
+}
+
+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-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json
new file mode 100644
index 000000000..0f13b1e73
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json
@@ -0,0 +1,38 @@
+{
+ "a":{
+ "cipher":1,
+ "authentication":1,
+ "integrity":0,
+ "confidentiality":0
+ },
+ "b":{
+ "cipher":2,
+ "authentication":1,
+ "integrity":1,
+ "confidentiality":0
+ },
+ "c":{
+ "cipher":3,
+ "authentication":1,
+ "integrity":1,
+ "confidentiality":1
+ },
+ "d":{
+ "cipher":15,
+ "authentication":3,
+ "integrity":0,
+ "confidentiality":0
+ },
+ "e":{
+ "cipher":16,
+ "authentication":3,
+ "integrity":4,
+ "confidentiality":0
+ },
+ "f":{
+ "cipher":17,
+ "authentication":3,
+ "integrity":4,
+ "confidentiality":1
+ }
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json
new file mode 100644
index 000000000..2d8832081
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-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-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json
new file mode 100644
index 000000000..837071398
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json
@@ -0,0 +1,58 @@
+{
+ "inlet": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/ambient", "record_id": 254}
+ ],
+ "baseboard": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/pcie", "record_id": 253}
+ ],
+ "cpu": [
+ {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", "record_id": 17},
+ {"instance": 2, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", "record_id": 20},
+ {"instance": 3, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", "record_id": 23},
+ {"instance": 4, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", "record_id": 26},
+ {"instance": 5, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", "record_id": 29},
+ {"instance": 6, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", "record_id": 32},
+ {"instance": 7, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", "record_id": 35},
+ {"instance": 8, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", "record_id": 38},
+ {"instance": 9, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", "record_id": 41},
+ {"instance": 10, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", "record_id": 44},
+ {"instance": 11, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", "record_id": 47},
+ {"instance": 12, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", "record_id": 50},
+ {"instance": 13, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", "record_id": 53},
+ {"instance": 14, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", "record_id": 56},
+ {"instance": 15, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", "record_id": 59},
+ {"instance": 16, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", "record_id": 62},
+ {"instance": 17, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", "record_id": 65},
+ {"instance": 18, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", "record_id": 68},
+ {"instance": 19, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", "record_id": 71},
+ {"instance": 20, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", "record_id": 74},
+ {"instance": 21, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", "record_id": 77},
+ {"instance": 22, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", "record_id": 80},
+ {"instance": 23, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", "record_id": 83},
+ {"instance": 24, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", "record_id": 86},
+ {"instance": 25, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", "record_id": 91},
+ {"instance": 26, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", "record_id": 94},
+ {"instance": 27, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", "record_id": 97},
+ {"instance": 28, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", "record_id": 100},
+ {"instance": 29, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", "record_id": 103},
+ {"instance": 30, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", "record_id": 106},
+ {"instance": 31, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", "record_id": 109},
+ {"instance": 32, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", "record_id": 112},
+ {"instance": 33, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", "record_id": 115},
+ {"instance": 34, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", "record_id": 118},
+ {"instance": 35, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", "record_id": 121},
+ {"instance": 36, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", "record_id": 124},
+ {"instance": 37, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", "record_id": 127},
+ {"instance": 38, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", "record_id": 130},
+ {"instance": 39, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", "record_id": 133},
+ {"instance": 40, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", "record_id": 136},
+ {"instance": 41, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", "record_id": 139},
+ {"instance": 42, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", "record_id": 142},
+ {"instance": 43, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", "record_id": 145},
+ {"instance": 44, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", "record_id": 148},
+ {"instance": 45, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", "record_id": 151},
+ {"instance": 46, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", "record_id": 154},
+ {"instance": 47, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", "record_id": 157},
+ {"instance": 48, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", "record_id": 160}
+ ]
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json
new file mode 100644
index 000000000..6cd9a94b3
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json
@@ -0,0 +1,2 @@
+{"id": 0, "revision": 128, "addn_dev_support": 141,
+ "manuf_id": 42817, "prod_id": 16975, "aux": 0}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json
new file mode 100644
index 000000000..97e8f32b5
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json
@@ -0,0 +1,3 @@
+{
+ "path": "/xyz/openbmc_project/sensors/power/total_power"
+}
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging.bbappend
new file mode 100644
index 000000000..913a0e8bc
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+PACKAGECONFIG += "policy-interface"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json
new file mode 100644
index 000000000..3b6619574
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/logging/ibm-logging/policyTable.json
@@ -0,0 +1,17145 @@
+{
+ "events": {
+ "External Software CSM||Event Type Lookup Failure": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Events / Monitoring",
+ "BMCMessageID": "External Software CSM",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPEM0003G",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Firmware/Software Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "CSM",
+ "Message": "Failed to find an alert in the CSM RAS event types table",
+ "ReferencedInventory": "Event Type Lookup Failure",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": false
+ },
+ "External Software||Network Error": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Interconnect Networking",
+ "BMCMessageID": "External Software",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPIN0001M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Communication Failure/Timeout",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "Connection Error. View additional details for more information",
+ "ReferencedInventory": "Network Error",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": true
+ },
+ "org.open_power.Host.Access.Error.ReadCFAM": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "org.open_power.Host.Access.Error.ReadCFAM",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0044F",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Communication Failure/Timeout",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "Failure to write to host CFAM interface",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": false,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Access.Error.WriteCFAM": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "org.open_power.Host.Access.Error.WriteCFAM",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0043F",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Communication Failure/Timeout",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "Failure to read from host CFAM interface",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": false,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Boot.Error.Checkstop": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Boot.Error.Checkstop",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPAA0007G",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "A system checkstop occurred",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Boot.Error.WatchdogTimedOut": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "org.open_power.Host.Boot.Error.WatchdogTimedOut",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0023M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Firmware/Software Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "Hostboot has become unresponsive",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Checkstop": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.Checkstop",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPAA0007G",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "A system checkstop occurred",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Warning",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPAA0011M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "An error was detected with the base platform, but was not able to be deciphered. Contact your next level of support.",
+ "ReferencedInventory": null,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPAA0008M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "Hostboot procedure callout",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0090M",
+ "ComponentInstance": 0,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,0",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 0 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,1",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 1 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,10",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 10 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,11",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 11 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,12",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 12 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,13",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 13 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,14",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 14 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,15",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 15 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,16",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 16 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,17",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 17 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,18",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 18 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,19",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 19 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,2",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 2 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,20",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 20 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,21",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 21 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,22",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 22 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,23",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 23 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,3",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 3 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,4",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 4 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,5",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 5 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,6",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 6 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,7",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 7 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,8",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 8 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "0,9",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 0 core 9 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0090M",
+ "ComponentInstance": 1,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,0",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 0 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,1",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 1 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,10",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 10 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,11",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 11 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,12",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 12 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,13",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 13 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,14",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 14 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,15",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 15 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,16",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 16 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,17",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 17 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,18",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 18 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,19",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 19 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,2",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 2 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,20",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 20 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,21",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 21 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,22",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 22 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,23",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 23 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,3",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 3 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,4",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 4 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,5",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 5 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,6",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 6 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,7",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 7 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,8",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 8 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Processing",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPPU0091M",
+ "ComponentInstance": "1,9",
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "CPU 1 core 9 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 0,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 0 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 1,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 1 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 10,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 10 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 11,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 11 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 12,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 12 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 13,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 13 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 14,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 14 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 15,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 15 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 2,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 2 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 3,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 3 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 4,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 4 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 5,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 5 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 6,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 6 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 7,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 7 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 8,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 8 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.Event||/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Memory",
+ "BMCMessageID": "org.open_power.Host.Error.Event",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPMA0057M",
+ "ComponentInstance": 9,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "DIMM 9 has failed",
+ "ReferencedInventory": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9",
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.MaintenanceProcedure||0": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPCR0003M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Firmware/Software Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": "BMC",
+ "Message": "A system firmware error occurred.",
+ "ReferencedInventory": 0,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.MaintenanceProcedure||1": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPAA0000M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "A vital system component has been disabled",
+ "ReferencedInventory": 1,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.MaintenanceProcedure||10": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Canister/Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure",
+ "CallHomeCandidate": true,
+ "CommonEventID": "FQPSPAA0001M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Unrecoverable Hardware Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "An unknown problem occurred",
+ "ReferencedInventory": 10,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.MaintenanceProcedure||11": {
+ "AffectedLEDs": null,
+ "AffectedSubsystem": "Systems Management - Core / Virtual Appliance",
+ "BMCMessageID": "org.open_power.Host.Error.MaintenanceProcedure",
+ "CallHomeCandidate": false,
+ "CommonEventID": "FQPSPCR0029M",
+ "ComponentInstance": null,
+ "DateAdded": null,
+ "DateReviewed": null,
+ "EventType": "Firmware/Software Failure",
+ "Internal": false,
+ "LengthyDescription": null,
+ "LogSource": null,
+ "Message": "A system firmware error occurred.",
+ "ReferencedInventory": 11,
+ "RelatedEventIDs": {},
+ "Serviceable": true,
+ "Severity": "Critical",
+ "UserAction": null,
+ "VMMigrationFlag": null
+ },
+ "org.open_power.Host.Error.MaintenanceProcedure||16": {
+ "AffectedLEDs": null,