summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Tanous <ed.tanous@intel.com>2019-06-20 19:46:38 +0300
committerGitHub <noreply@github.com>2019-06-20 19:46:38 +0300
commit43a183cc0926da36e3a218efa02ab4838ace316f (patch)
tree9ea192b408585fc2a19b54d196c3d56eaddc4acb
parent5575b1d27fc222f973d96dc06af0f21ba7656f28 (diff)
parent2c7e8f4ce61f2e0407c37e98e22bbb13e562b414 (diff)
downloadopenbmc-43a183cc0926da36e3a218efa02ab4838ace316f.tar.xz
Merge pull request #12 from Intel-BMC/update
Update
-rw-r--r--meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed_2016.07.inc2
-rwxr-xr-xmeta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig2
-rw-r--r--meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb4
-rw-r--r--meta-evb/meta-evb-nuvoton/conf/layer.conf2
-rw-r--r--meta-evb/meta-evb-nuvoton/meta-evb-npcm750/conf/layer.conf2
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb31
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru-properties.yaml63
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru.yaml219
-rw-r--r--meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml1082
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb38
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-bmc.yaml27
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-properties.yaml140
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru.yaml536
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-inventory-sensors.yaml340
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-sensors.yaml3560
-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-host_%.bbappend8
-rw-r--r--meta-ibm/meta-witherspoon/conf/machine/swift.conf4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh36
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service14
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/power-workarounds@.service16
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/avsbus-disable@.service (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/power-workarounds@.service (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf4
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service11
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service (renamed from meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor-pgood.service)0
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@68.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@69.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/dps310@76.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/si7021a20@20.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/tmp275@48.conf5
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35219@70.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@71.conf47
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@72.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35219@70.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@71.conf47
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@72.conf23
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf436
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/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.conf366
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend27
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/swift/gpio_defs.json2
-rw-r--r--meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd_%.bbappend2
-rw-r--r--meta-inspur/MAINTAINERS47
-rw-r--r--meta-inspur/conf/layer.conf8
-rw-r--r--meta-inspur/conf/machine/include/inspur.inc21
-rw-r--r--meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample31
-rw-r--r--meta-inspur/meta-fp5280g2/conf/conf-notes.txt2
-rw-r--r--meta-inspur/meta-fp5280g2/conf/distro/openbmc-fp5280g2.conf1
-rw-r--r--meta-inspur/meta-fp5280g2/conf/layer.conf10
-rw-r--r--meta-inspur/meta-fp5280g2/conf/local.conf.sample17
-rw-r--r--meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf11
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed/fp5280g2/fp5280g2.cfg4
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed_%.bbappend3
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/host/p9-host-start.bbappend1
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/mboxd/mboxd_%.bbappend1
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a.conf5
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a.conf5
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a.conf5
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@48.conf5
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@49.conf5
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf17
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon-battery.conf9
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf109
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend19
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json (renamed from meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json)37
-rw-r--r--meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend1
-rw-r--r--meta-inspur/meta-on5263m5/conf/layer.conf6
-rw-r--r--meta-inspur/meta-on5263m5/conf/machine/on5263m5.conf8
-rw-r--r--meta-inspur/meta-on5263m5/recipes-inspur/inspur-uuid/inspur-uuid_git.bb (renamed from meta-inspur/meta-common/recipes-inspur/inspur-uuid/inspur-uuid_git.bb)0
-rw-r--r--meta-inspur/meta-on5263m5/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb (renamed from meta-inspur/meta-common/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb)0
-rw-r--r--meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config.bb38
-rw-r--r--meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config/On5263m5.py48
-rwxr-xr-xmeta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb2
-rw-r--r--meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces_git.bb2
-rw-r--r--meta-lenovo/COPYING.BSD11
-rw-r--r--meta-lenovo/COPYING.GPL127
-rw-r--r--meta-lenovo/COPYING.MIT20
-rw-r--r--meta-lenovo/LICENSE14
-rw-r--r--meta-lenovo/README.md1
-rw-r--r--meta-lenovo/conf/layer.conf18
-rw-r--r--meta-lenovo/conf/machine/include/lenovo.inc14
-rw-r--r--meta-lenovo/meta-common/recipes-lenovo/packagegroups/packagegroup-lenovo-apps.bb58
-rw-r--r--meta-lenovo/meta-hr630/conf/bblayers.conf.sample22
-rw-r--r--meta-lenovo/meta-hr630/conf/conf-notes.txt5
-rw-r--r--meta-lenovo/meta-hr630/conf/distro/openbmc-hr630.conf7
-rw-r--r--meta-lenovo/meta-hr630/conf/layer.conf14
-rw-r--r--meta-lenovo/meta-hr630/conf/local.conf.sample23
-rw-r--r--meta-lenovo/meta-hr630/conf/machine/hr630.conf25
-rw-r--r--meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed/hr630.cfg16
-rw-r--r--meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed_%.bbappend5
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config-native.bb21
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config/led.yaml14
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/network/phosphor-network_%.bbappend6
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@40/tmp75@4e.conf8
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@80/tmp75@4d.conf8
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf33
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf25
-rw-r--r--meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend18
-rw-r--r--meta-nuvoton/conf/machine/include/npcm7xx.inc11
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml276
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml194
-rw-r--r--meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml35
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb20
-rw-r--r--meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb19
-rw-r--r--meta-nuvoton/recipes-kernel/linux/linux-nuvoton/defconfig4
-rw-r--r--meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb4
-rw-r--r--meta-openbmc-mods/conf/machine/include/intel.inc2
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/0001-arm-dts-add-DTS-for-Intel-platforms.patch4
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/intel-ast2500.cfg2
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/CYP-baseboard.json21
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/FCXXPDBASSMBL_PDB.json2
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/OPB2RH-Chassis.json36
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/TNP-baseboard.json118
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WC-Baseboard.json8
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WP-Baseboard.json17
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-phosphor/workbook/wolfpass-config.bb2
-rw-r--r--meta-openbmc-mods/meta-common/classes/obmc-phosphor-image-common.bbclass1
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0016-Add-support-for-128MB-Macronix-spi-flash-MX66L1G45G.patch28
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0017-Enable-Macronix-and-Micron-SPI-support.patch54
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0018-Add-support-for-Macronix-and-Micron-1Gbits-SPI-flash.patch73
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0022-KCS-driver-support-in-uBoot.patch45
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0024-IPMI-command-handler-implementation-in-uboot.patch29
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch1271
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend19
-rw-r--r--[l---------]meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_%.bbappend51
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/com.intel.AtScaleDebug.service4
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/crashdump/crashdump_git.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend1
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/peci-pcie/peci-pcie_git.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-time-wait-sync.service36
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-timesyncd.service53
-rw-r--r--meta-openbmc-mods/meta-common/recipes-core/systemd/systemd_%.bbappend5
-rw-r--r--meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb26
-rw-r--r--meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0052-drivers-jtag-Add-JTAG-core-driver.patch64
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0053-Add-Aspeed-SoC-24xx-and-25xx-families-JTAG.patch62
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0055-Documentation-jtag-Add-ABI-documentation.patch32
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0059-media-aspeed-remove-source-buffer-allocation-before-.patch75
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0060-media-aspeed-use-different-delays-for-triggering-VE-.patch60
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch68
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0065-i2c-aspeed-fix-master-pending-state-handling.patch55
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0066-i2c-aspeed-add-buffer-mode-transfer-support.patch770
-rw-r--r--meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend5
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0024-Add-the-pre-timeout-interrupt-defined-in-IPMI-spec.patch57
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend3
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch140
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend3
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs/99-ipmi-kcs.rules2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend11
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/settings/settings_git.bb20
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/special-mode-mgr/special-mode-mgr_git.bb4
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0003-Add-redfish-log-support-for-IPMI-watchdog-pre-timeou.patch48
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend1
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-wolfpass/conf/local.conf.sample2
-rw-r--r--meta-openpower/classes/openpower-software-manager-ubi.bbclass4
-rw-r--r--meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb (renamed from meta-openpower/recipes-bsp/pdbg/pdbg_2.0.bb)4
-rw-r--r--meta-openpower/recipes-devtools/hostboot/hostboot-debug-tools.bb21
-rw-r--r--meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend2
-rw-r--r--meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb35
-rw-r--r--meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-fru-properties-mrw.yaml37
-rw-r--r--meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-fru-mrw.yaml130
-rw-r--r--meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-volatile-sensor-mrw.yaml16
-rw-r--r--meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-occ-active-sensor-mrw.yaml17
-rw-r--r--meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb2
-rw-r--r--meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service13
-rw-r--r--meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh46
-rw-r--r--meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb22
-rw-r--r--meta-phosphor/classes/phosphor-networkd-rev.bbclass2
-rw-r--r--meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass1
-rw-r--r--meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend70
-rw-r--r--meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb2
-rw-r--r--meta-phosphor/recipes-extended/sdeventplus/sdeventplus_git.bb2
-rw-r--r--meta-phosphor/recipes-extended/stdplus/stdplus_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service2
-rw-r--r--meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb3
-rw-r--r--meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru_git.bb8
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc2
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service1
-rw-r--r--meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb5
-rw-r--r--meta-phosphor/recipes-phosphor/logging/ffdc_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb3
-rw-r--r--meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb4
-rw-r--r--meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb2
-rw-r--r--meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb4
-rw-r--r--meta-phosphor/recipes-support/libgpiod/libgpiod_%.bbappend1
-rw-r--r--meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh78
-rw-r--r--meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh63
-rw-r--r--meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powermanager.sh82
-rw-r--r--meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb6
-rw-r--r--meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/time-default.override.yml12
-rw-r--r--meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend2
-rw-r--r--meta-yadro/.gitignore0
-rw-r--r--meta-yadro/COPYING.MIT17
-rw-r--r--meta-yadro/COPYING.apache-2.0175
-rw-r--r--meta-yadro/LICENSE12
-rw-r--r--meta-yadro/MAINTAINERS47
-rw-r--r--meta-yadro/README.md9
-rw-r--r--meta-yadro/conf/layer.conf11
-rw-r--r--meta-yadro/meta-vesnin/README.md7
-rw-r--r--meta-yadro/meta-vesnin/conf/bblayers.conf.sample31
-rw-r--r--meta-yadro/meta-vesnin/conf/conf-notes.txt2
-rw-r--r--meta-yadro/meta-vesnin/conf/layer.conf10
-rw-r--r--meta-yadro/meta-vesnin/conf/local.conf.sample238
-rw-r--r--meta-yadro/meta-vesnin/conf/machine/vesnin.conf23
-rw-r--r--meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch38
-rw-r--r--meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch41
-rw-r--r--meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/vesnin.cfg10
-rw-r--r--meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend6
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/images/obmc-phosphor-image.bbappend1
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/initfs/obmc-phosphor-initfs.bbappend5
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-native.bb23
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-read-native.bb25
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map/config.yaml4417
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb19
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml40
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/mboxd/mboxd_%.bbappend1
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/network/first-boot-set-mac_%.bbappend1
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/occ/files/occ_sensor.yaml12
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/occ/openpower-occ-control_%.bbappend1
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb18
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend1
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json131
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend (renamed from meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend)0
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host/0001-Replace-ColdFire-FSI-with-plain-FSI-over-GPIO.patch358
-rw-r--r--meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host_%.bbappend2
-rwxr-xr-xsetup36
257 files changed, 17778 insertions, 936 deletions
diff --git a/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed_2016.07.inc b/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed_2016.07.inc
index 261c1a425..7e400b7ad 100644
--- a/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed_2016.07.inc
+++ b/meta-aspeed/recipes-bsp/u-boot/u-boot-common-aspeed_2016.07.inc
@@ -8,7 +8,7 @@ PE = "1"
# We use the revision in order to avoid having to fetch it from the
# repo during parse
-SRCREV = "cc6c5bef00ebbac0b37f9a406913ca17ff9c56b5"
+SRCREV = "59428fe010c4c95261e88b737a847643f2682a6b"
UBRANCH = "v2016.07-aspeed-openbmc"
SRC_URI = "git://git@github.com/openbmc/u-boot.git;branch=${UBRANCH};protocol=https"
diff --git a/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig b/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig
index 1452eec6c..adb9c0766 100755
--- a/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig
+++ b/meta-aspeed/recipes-kernel/linux/linux-aspeed/aspeed-g5/defconfig
@@ -160,6 +160,8 @@ CONFIG_I2C_FSI=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_ASPEED=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_W1=y
CONFIG_W1_MASTER_GPIO=y
CONFIG_W1_SLAVE_THERM=y
diff --git a/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb b/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
index e432eed9e..0086dee73 100644
--- a/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
+++ b/meta-aspeed/recipes-kernel/linux/linux-aspeed_git.bb
@@ -1,6 +1,6 @@
KBRANCH ?= "dev-5.1"
-LINUX_VERSION ?= "5.1.5"
+LINUX_VERSION ?= "5.1.9"
-SRCREV="42a312b1b9fe4c0acfe812e7e5d6ff43cf81bb0f"
+SRCREV="fa272957f698f24b90db374fe31a977f1a286c24"
require linux-aspeed.inc
diff --git a/meta-evb/meta-evb-nuvoton/conf/layer.conf b/meta-evb/meta-evb-nuvoton/conf/layer.conf
index 10cb886a8..6617b5fbe 100644
--- a/meta-evb/meta-evb-nuvoton/conf/layer.conf
+++ b/meta-evb/meta-evb-nuvoton/conf/layer.conf
@@ -3,4 +3,4 @@ BBPATH .= ":${LAYERDIR}"
BBFILE_COLLECTIONS += "evb-nuvoton"
BBFILE_PATTERN_evb-nuvoton = ""
-LAYERSERIES_COMPAT_evb-nuvoton = "thud"
+LAYERSERIES_COMPAT_evb-nuvoton = "thud warrior"
diff --git a/meta-evb/meta-evb-nuvoton/meta-evb-npcm750/conf/layer.conf b/meta-evb/meta-evb-nuvoton/meta-evb-npcm750/conf/layer.conf
index ae210ebab..51398d012 100644
--- a/meta-evb/meta-evb-nuvoton/meta-evb-npcm750/conf/layer.conf
+++ b/meta-evb/meta-evb-nuvoton/meta-evb-npcm750/conf/layer.conf
@@ -3,4 +3,4 @@ BBPATH .= ":${LAYERDIR}"
BBFILE_COLLECTIONS += "evb-npcm750"
BBFILE_PATTERN_evb-npcm750 = ""
-LAYERSERIES_COMPAT_evb-npcm750 = "thud"
+LAYERSERIES_COMPAT_evb-npcm750 = "thud warrior"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb
new file mode 100644
index 000000000..743b51fa8
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config.bb
@@ -0,0 +1,31 @@
+SUMMARY = "YAML configuration for Palmetto"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit allarch
+
+SRC_URI = " \
+ file://palmetto-ipmi-fru.yaml \
+ file://palmetto-ipmi-fru-properties.yaml \
+ file://palmetto-ipmi-sensors.yaml \
+ "
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -m 0644 -D palmetto-ipmi-fru-properties.yaml \
+ ${D}${datadir}/${BPN}/ipmi-extra-properties.yaml
+ install -m 0644 -D palmetto-ipmi-fru.yaml \
+ ${D}${datadir}/${BPN}/ipmi-fru-read.yaml
+ install -m 0644 -D palmetto-ipmi-sensors.yaml \
+ ${D}${datadir}/${BPN}/ipmi-sensors.yaml
+}
+
+FILES_${PN}-dev = " \
+ ${datadir}/${BPN}/ipmi-extra-properties.yaml \
+ ${datadir}/${BPN}/ipmi-fru-read.yaml \
+ ${datadir}/${BPN}/ipmi-sensors.yaml \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru-properties.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru-properties.yaml
new file mode 100644
index 000000000..920ca9425
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru-properties.yaml
@@ -0,0 +1,63 @@
+/system:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm1:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm2:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm3:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/membuf0:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru.yaml
new file mode 100644
index 000000000..c36d0baa5
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-fru.yaml
@@ -0,0 +1,219 @@
+1:
+ /system/chassis/motherboard/cpu0:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+2:
+ /system/chassis:
+ entityID: 23
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ /system/chassis/motherboard/membuf:
+ entityID: 23
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ 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.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+4:
+ /system/chassis/motherboard/dimm1:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+5:
+ /system/chassis/motherboard/dimm2:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+6:
+ /system/chassis/motherboard/dimm3:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+14:
+ /system/chassis/motherboard:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ 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.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
diff --git a/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml
new file mode 100644
index 000000000..372ad2dbb
--- /dev/null
+++ b/meta-ibm/meta-palmetto/recipes-phosphor/configuration/palmetto-yaml-config/palmetto-ipmi-sensors.yaml
@@ -0,0 +1,1082 @@
+5:
+ 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
+8:
+ 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
+9:
+ 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
+30:
+ 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
+31:
+ 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
+32:
+ 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
+33:
+ 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
+34:
+ 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
+35:
+ 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
+36:
+ 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
+37:
+ 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
+38:
+ 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
+39:
+ 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
+40:
+ 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
+41:
+ 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
+42:
+ 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
+43:
+ 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
+44:
+ 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
+45:
+ 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
+47:
+ 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/cpu
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 111
+ sensorType: 7
+ serviceInterface: xyz.openbmc_project.Inventory.Manager
+50:
+ 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
+101:
+ bExp: 0
+ entityID: 209
+ entityInstance: 1
+ 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/centaur0_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: 32
+ entityInstance: 5
+ 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
+103:
+ bExp: 0
+ entityID: 32
+ entityInstance: 6
+ 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
+104:
+ bExp: 0
+ entityID: 32
+ entityInstance: 7
+ 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
+105:
+ bExp: 0
+ entityID: 32
+ entityInstance: 8
+ 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
+106:
+ bExp: 0
+ entityID: 208
+ entityInstance: 13
+ 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/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
+107:
+ bExp: 0
+ entityID: 208
+ 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/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
+108:
+ bExp: 0
+ entityID: 208
+ 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/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
+109:
+ bExp: 0
+ entityID: 208
+ 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/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
+110:
+ bExp: 0
+ entityID: 208
+ 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/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
+111:
+ bExp: 0
+ entityID: 208
+ 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/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
+112:
+ bExp: 0
+ entityID: 208
+ 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/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
+113:
+ bExp: 0
+ entityID: 208
+ entityInstance: 14
+ 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/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
+114:
+ bExp: 0
+ entityID: 208
+ entityInstance: 15
+ 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/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
+115:
+ bExp: 0
+ entityID: 208
+ entityInstance: 16
+ 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/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
+116:
+ bExp: 0
+ entityID: 208
+ 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/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
+117:
+ bExp: 0
+ entityID: 208
+ 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/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
+131:
+ bExp: 0
+ entityID: 10
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 2
+ offsetB: 0
+ path: /xyz/openbmc_project/sensors/power/p0_power
+ rExp: 0
+ readingType: readingData
+ scale: -6
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 8
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+132:
+ bExp: 0
+ entityID: 10
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 2
+ offsetB: 0
+ path: /xyz/openbmc_project/sensors/power/p0_pcie_power
+ rExp: 0
+ readingType: readingData
+ scale: -6
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 8
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+133:
+ bExp: 0
+ entityID: 10
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 2
+ offsetB: 0
+ path: /xyz/openbmc_project/sensors/power/p0_io_power
+ rExp: 0
+ readingType: readingData
+ scale: -6
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 8
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
+135:
+ bExp: 0
+ entityID: 10
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Sensor.Value:
+ Value:
+ Offsets:
+ 255:
+ type: int64_t
+ multiplierM: 2
+ offsetB: 0
+ path: /xyz/openbmc_project/sensors/power/centaur0_power
+ rExp: 0
+ readingType: readingData
+ scale: -6
+ sensorNamePattern: nameLeaf
+ sensorReadingType: 1
+ sensorType: 8
+ serviceInterface: org.freedesktop.DBus.Properties
+ unit: xyz.openbmc_project.Sensor.Value.Unit.Watts
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb
new file mode 100644
index 000000000..a2f609eec
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config.bb
@@ -0,0 +1,38 @@
+SUMMARY = "YAML configuration for Romulus"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${IBMBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit allarch
+
+SRC_URI = " \
+ file://romulus-ipmi-fru.yaml \
+ file://romulus-ipmi-fru-bmc.yaml \
+ file://romulus-ipmi-fru-properties.yaml \
+ file://romulus-ipmi-inventory-sensors.yaml \
+ file://romulus-ipmi-sensors.yaml \
+ "
+
+S = "${WORKDIR}"
+
+do_install() {
+ cat romulus-ipmi-fru.yaml romulus-ipmi-fru-bmc.yaml > fru-read.yaml
+
+ install -m 0644 -D romulus-ipmi-fru-properties.yaml \
+ ${D}${datadir}/${BPN}/ipmi-extra-properties.yaml
+ install -m 0644 -D fru-read.yaml \
+ ${D}${datadir}/${BPN}/ipmi-fru-read.yaml
+ install -m 0644 -D romulus-ipmi-inventory-sensors.yaml \
+ ${D}${datadir}/${BPN}/ipmi-inventory-sensors.yaml
+ install -m 0644 -D romulus-ipmi-sensors.yaml \
+ ${D}${datadir}/${BPN}/ipmi-sensors.yaml
+}
+
+FILES_${PN}-dev = " \
+ ${datadir}/${BPN}/ipmi-extra-properties.yaml \
+ ${datadir}/${BPN}/ipmi-fru-read.yaml \
+ ${datadir}/${BPN}/ipmi-inventory-sensors.yaml \
+ ${datadir}/${BPN}/ipmi-sensors.yaml \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-bmc.yaml b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-bmc.yaml
new file mode 100644
index 000000000..c48f50200
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-bmc.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/configuration/romulus-yaml-config/romulus-ipmi-fru-properties.yaml b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-properties.yaml
new file mode 100644
index 000000000..a4eab8a6d
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru-properties.yaml
@@ -0,0 +1,140 @@
+/system:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/cpu0:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/cpu1:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm0:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm1:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm10:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm11:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm12:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm13:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm14:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm15:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm2:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm3:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm4:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm5:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm6:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm7:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm8:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+/system/chassis/motherboard/dimm9:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'true'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru.yaml b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru.yaml
new file mode 100644
index 000000000..901914c15
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-fru.yaml
@@ -0,0 +1,536 @@
+1:
+ /system/chassis/motherboard/cpu0:
+ entityID: 3
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ 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.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: 58
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ Value: false
+3:
+ /system:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ /system/chassis/motherboard:
+ entityID: 7
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+4:
+ /system/chassis/motherboard/dimm0:
+ entityID: 32
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+5:
+ /system/chassis/motherboard/dimm1:
+ entityID: 32
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+6:
+ /system/chassis/motherboard/dimm2:
+ entityID: 32
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+7:
+ /system/chassis/motherboard/dimm3:
+ entityID: 32
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+8:
+ /system/chassis/motherboard/dimm4:
+ entityID: 32
+ entityInstance: 5
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+9:
+ /system/chassis/motherboard/dimm5:
+ entityID: 32
+ entityInstance: 6
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+10:
+ /system/chassis/motherboard/dimm6:
+ entityID: 32
+ entityInstance: 7
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+11:
+ /system/chassis/motherboard/dimm7:
+ entityID: 32
+ entityInstance: 8
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+12:
+ /system/chassis/motherboard/dimm8:
+ entityID: 32
+ entityInstance: 9
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+13:
+ /system/chassis/motherboard/dimm9:
+ entityID: 32
+ entityInstance: 10
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+14:
+ /system/chassis/motherboard/dimm10:
+ entityID: 32
+ entityInstance: 11
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+15:
+ /system/chassis/motherboard/dimm11:
+ entityID: 32
+ entityInstance: 12
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+16:
+ /system/chassis/motherboard/dimm12:
+ entityID: 32
+ entityInstance: 13
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+17:
+ /system/chassis/motherboard/dimm13:
+ entityID: 32
+ entityInstance: 14
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+18:
+ /system/chassis/motherboard/dimm14:
+ entityID: 32
+ entityInstance: 15
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+19:
+ /system/chassis/motherboard/dimm15:
+ entityID: 32
+ entityInstance: 16
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-inventory-sensors.yaml b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-inventory-sensors.yaml
new file mode 100644
index 000000000..5f96f87c1
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-inventory-sensors.yaml
@@ -0,0 +1,340 @@
+/xyz/openbmc_project/inventory/system:
+ eventReadingType: 111
+ offset: 2
+ sensorID: 144
+ sensorType: 18
+/xyz/openbmc_project/inventory/system/chassis/motherboard:
+ eventReadingType: 3
+ offset: 0
+ sensorID: 140
+ sensorType: 199
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 8
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 43
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 44
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 53
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 54
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 55
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core13:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 56
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core14:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 57
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core15:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 58
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core16:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 59
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core17:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 60
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core18:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 61
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core19:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 62
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core2:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 45
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core20:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 63
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core21:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 64
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core22:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 65
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core23:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 66
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core3:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 46
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core4:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 47
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core5:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 48
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core6:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 49
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core7:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 50
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core8:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 51
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core9:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 52
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 9
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core0:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 67
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core1:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 68
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core10:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 77
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core11:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 78
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core12:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 79
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core13:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 80
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core14:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 81
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core15:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 82
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core16:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 83
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core17:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 84
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core18:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 85
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core19:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 86
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core2:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 69
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core20:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 87
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core21:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 88
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core22:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 89
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core23:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 90
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core3:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 70
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core4:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 71
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core5:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 72
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core6:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 73
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core7:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 74
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core8:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 75
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/cpu1/core9:
+ eventReadingType: 111
+ offset: 8
+ sensorID: 76
+ sensorType: 7
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 11
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 12
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 21
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm11:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 22
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 23
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 24
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 25
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 26
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 13
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 14
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 15
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 16
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 17
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 18
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 19
+ sensorType: 12
+/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9:
+ eventReadingType: 111
+ offset: 4
+ sensorID: 20
+ sensorType: 12
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-sensors.yaml b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-sensors.yaml
new file mode 100644
index 000000000..3d6a664eb
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/configuration/romulus-yaml-config/romulus-ipmi-sensors.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/phosphor-ipmi-host/channel.yaml b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
deleted file mode 100644
index 627f4965f..000000000
--- a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host/channel.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-# 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-host_%.bbappend b/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
deleted file mode 100644
index 378dab4d3..000000000
--- a/meta-ibm/meta-romulus/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
+++ /dev/null
@@ -1,8 +0,0 @@
-FILESEXTRAPATHS_prepend_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-witherspoon/conf/machine/swift.conf b/meta-ibm/meta-witherspoon/conf/machine/swift.conf
index 6b5b7ce4c..077d0b558 100644
--- a/meta-ibm/meta-witherspoon/conf/machine/swift.conf
+++ b/meta-ibm/meta-witherspoon/conf/machine/swift.conf
@@ -1,11 +1,13 @@
require conf/machine/witherspoon.conf
+IMAGE_FSTYPES += "ext4"
+
KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
PHOSPHOR_MRW_LICENSE = "Apache-2.0"
PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
PHOSPHOR_MRW_URI = "git://git@github.com/open-power/swift-xml;protocol=ssh"
-PHOSPHOR_MRW_REV = "661fdc993683bd40df4e5f11463ba51da702c55b"
+PHOSPHOR_MRW_REV = "7880e778af3fca75f46aa3e94f7e9971a6ddbb1f"
# 128MB flash size
FLASH_SIZE = "131072"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh
index 1228ff945..61d8516bc 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable.sh
@@ -1,18 +1,18 @@
-#!/bin/sh
-# For each AVSBus attached rail go back to using VOUT_COMMAND (PMBus voltage)
-# instead of AVSBus and do *not* update VOUT_COMMAND with last voltage sent via
-# AVSBus. This should be run after power-down. This is platform specific
-# settings that must be updated/removed if not Swift.
-
-i2cset -y 9 0x70 0x00 0x00 b # VDD 0 - PAGE set
-i2cset -y 9 0x70 0x01 0x80 b # VDD 0
-i2cset -y 9 0x71 0x00 0x01 b # VCS 0 - PAGE set
-i2cset -y 9 0x71 0x01 0x80 b # VCS 0
-i2cset -y 9 0x71 0x00 0x00 b # VDN 0 - PAGE set
-i2cset -y 9 0x71 0x01 0x80 b # VDN 0
-i2cset -y 10 0x70 0x00 0x00 b # VDD 1 - PAGE set
-i2cset -y 10 0x70 0x01 0x80 b # VDD 1
-i2cset -y 10 0x71 0x00 0x01 b # VCS 1 - PAGE set
-i2cset -y 10 0x71 0x01 0x80 b # VCS 1
-i2cset -y 10 0x71 0x00 0x00 b # VDN 1 - PAGE set
-i2cset -y 10 0x71 0x01 0x80 b # VDN 1
+#!/bin/sh
+# For each AVSBus attached rail go back to using VOUT_COMMAND (PMBus voltage)
+# instead of AVSBus and do *not* update VOUT_COMMAND with last voltage sent via
+# AVSBus. This should be run after power-down. This is platform specific
+# settings that must be updated/removed if not Swift.
+
+i2cset -y 9 0x70 0x00 0x00 b # VDD 0 - PAGE set
+i2cset -y 9 0x70 0x01 0x80 b # VDD 0
+i2cset -y 9 0x71 0x00 0x01 b # VCS 0 - PAGE set
+i2cset -y 9 0x71 0x01 0x80 b # VCS 0
+i2cset -y 9 0x71 0x00 0x00 b # VDN 0 - PAGE set
+i2cset -y 9 0x71 0x01 0x80 b # VDN 0
+i2cset -y 10 0x70 0x00 0x00 b # VDD 1 - PAGE set
+i2cset -y 10 0x70 0x01 0x80 b # VDD 1
+i2cset -y 10 0x71 0x00 0x01 b # VCS 1 - PAGE set
+i2cset -y 10 0x71 0x01 0x80 b # VCS 1
+i2cset -y 10 0x71 0x00 0x00 b # VDN 1 - PAGE set
+i2cset -y 10 0x71 0x01 0x80 b # VDN 1
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service
new file mode 100644
index 000000000..fbab180ce
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/avsbus-disable@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Disable the AVS bus on the VRMs
+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/swift/power-workarounds@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/power-workarounds@.service
new file mode 100644
index 000000000..0926e033b
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/swift/power-workarounds@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Perform power workarounds on VRMs after PGOOD is up
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%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/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/avsbus-control/avsbus-disable@.service b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/avsbus-disable@.service
index 859f42883..859f42883 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/avsbus-disable@.service
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/avsbus-disable@.service
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/witherspoon/power-workarounds@.service
index 74d8e4bfc..74d8e4bfc 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/power-workarounds@.service
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/chassis/avsbus-control/witherspoon/power-workarounds@.service
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml
index 494d0a034..66f8a92b6 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/power-sequencer/swift/ucd90160.yaml
@@ -1,7 +1,7 @@
- Device:
index: 0
# Linux sysfs path for this power sequencer (0xC8 8-bit address)
- path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-8/8-0064
+ path: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0064
RailNames:
- "12.0V"
- "3.3V"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc
index 00b703d63..db7c16e5d 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/witherspoon-pfault-analysis"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI += "git://github.com/openbmc/witherspoon-pfault-analysis"
-SRCREV = "9c7897ce9176bf954e7e6b9a50d07c71e4035242"
+SRCREV = "03c19db6a8f72d7f5408667a7daf915d82190efc"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf
index 207eb503f..167e605d0 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-0.conf
@@ -1,6 +1,6 @@
-DEVPATH=/sys/bus/i2c/devices/3-0069
+DEVPATH=/sys/bus/i2c/devices/3-0068
INSTANCE=0
INVENTORY=/system/chassis/motherboard/powersupply0
NUM_HISTORY_RECORDS=120
SYNC_GPIO_PATH=/dev/gpiochip0
-SYNC_GPIO_NUM=105 \ No newline at end of file
+SYNC_GPIO_NUM=105
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf
index 73efd450d..faa5adec6 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/obmc/power-supply-monitor/power-supply-monitor-1.conf
@@ -1,6 +1,6 @@
-DEVPATH=/sys/bus/i2c/devices/3-0068
+DEVPATH=/sys/bus/i2c/devices/3-0069
INSTANCE=1
INVENTORY=/system/chassis/motherboard/powersupply1
NUM_HISTORY_RECORDS=120
SYNC_GPIO_PATH=/dev/gpiochip0
-SYNC_GPIO_NUM=105 \ No newline at end of file
+SYNC_GPIO_NUM=105
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service
new file mode 100644
index 000000000..206fc6602
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/swift/pseq-monitor-pgood.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Power Sequencer Power-on Monitor
+Wants=op-power-start@0.service
+After=op-power-start@0.service
+Conflicts=obmc-chassis-poweroff@0.target
+ConditionPathExists=!/run/openbmc/chassis@0-on
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env pseq-monitor -a pgood-monitor -i 5000
+SyslogIdentifier=pseq-monitor
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor-pgood.service b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service
index 458c5e6d7..458c5e6d7 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/pseq-monitor-pgood.service
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/power/witherspoon-pfault-analysis/witherspoon/pseq-monitor-pgood.service
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@68.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@68.conf
new file mode 100644
index 000000000..2fadbdec0
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@68.conf
@@ -0,0 +1,23 @@
+LABEL_in1="ps0_input_voltage"
+WARNHI_in1="290000"
+WARNLO_in1="200000"
+CRITHI_in1="300000"
+CRITLO_in1="180000"
+
+LABEL_in2="ps0_output_voltage"
+WARNHI_in2="12700"
+WARNLO_in2="0"
+CRITHI_in2="13000"
+CRITLO_in2="0"
+
+LABEL_curr1="ps0_output_current"
+WARNHI_curr1="170000"
+WARNLO_curr1="0"
+CRITHI_curr1="180000"
+CRITLO_curr1="0"
+
+LABEL_power1="ps0_input_power"
+WARNHI_power1="2350000000"
+WARNLO_power1="0"
+CRITHI_power1="2500000000"
+CRITLO_power1="0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@69.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@69.conf
new file mode 100644
index 000000000..e463b517c
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@100/power-supply@69.conf
@@ -0,0 +1,23 @@
+LABEL_in1="ps1_input_voltage"
+WARNHI_in1="290000"
+WARNLO_in1="200000"
+CRITHI_in1="300000"
+CRITLO_in1="180000"
+
+LABEL_in2="ps1_output_voltage"
+WARNHI_in2="12700"
+WARNLO_in2="0"
+CRITHI_in2="13000"
+CRITLO_in2="0"
+
+LABEL_curr1="ps1_output_current"
+WARNHI_curr1="170000"
+WARNLO_curr1="0"
+CRITHI_curr1="180000"
+CRITLO_curr1="0"
+
+LABEL_power1="ps1_input_power"
+WARNHI_power1="2350000000"
+WARNLO_power1="0"
+CRITHI_power1="2500000000"
+CRITLO_power1="0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/dps310@76.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/dps310@76.conf
new file mode 100644
index 000000000..d685863f8
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/dps310@76.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "ambient1"
+WARNHI_temp1 = "25000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "35000"
+CRITLO_temp1 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/si7021a20@20.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/si7021a20@20.conf
new file mode 100644
index 000000000..c8a729067
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/si7021a20@20.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "ambient2"
+WARNHI_temp1 = "25000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "35000"
+CRITLO_temp1 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/tmp275@48.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/tmp275@48.conf
new file mode 100644
index 000000000..ef2b46d53
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@300/tmp275@48.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "ambient0"
+WARNHI_temp1 = "25000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "35000"
+CRITLO_temp1 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35219@70.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35219@70.conf
new file mode 100644
index 000000000..7d2f2ef2a
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35219@70.conf
@@ -0,0 +1,23 @@
+qLABEL_temp1 = "p0_vdd_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p0_vdd_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "320000"
+CRITHI_curr2 = "360000"
+
+LABEL_in2 = "p0_vdd_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1150"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p0_vdd_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "270000000"
+CRITHI_power2 = "290000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@71.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@71.conf
new file mode 100644
index 000000000..ca7793722
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@71.conf
@@ -0,0 +1,47 @@
+LABEL_temp1 = "p0_vdn_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p0_vdn_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "80000"
+CRITHI_curr2 = "110000"
+
+LABEL_in2 = "p0_vdn_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1100"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p0_vdn_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "88000000"
+CRITHI_power2 = "121000000"
+
+LABEL_temp2 = "p0_vcs_temp"
+WARNHI_temp2 = "80000"
+WARNLO_temp2 = "0"
+CRITHI_temp2 = "85000"
+CRITLO_temp2 = "0"
+
+LABEL_curr3 = "p0_vcs_current"
+WARNLO_curr3 = "0"
+CRITLO_curr3 = "0"
+WARNHI_curr3 = "20000"
+CRITHI_curr3 = "25000"
+
+LABEL_in3 = "p0_vcs_voltage"
+WARNLO_in3 = "0"
+CRITLO_in3 = "0"
+WARNHI_in3 = "1150"
+CRITHI_in3 = "1300"
+
+LABEL_power3 = "p0_vcs_power"
+WARNLO_power3 = "0"
+CRITLO_power3 = "0"
+WARNHI_power3 = "20000000"
+CRITHI_power3 = "25000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@72.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@72.conf
new file mode 100644
index 000000000..7b6b356a4
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@380/ir35221@72.conf
@@ -0,0 +1,23 @@
+LABEL_temp1 = "p0_vio_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p0_vio_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "80000"
+CRITHI_curr2 = "110000"
+
+LABEL_in2 = "p0_vio_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1100"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p0_vio_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "88000000"
+CRITHI_power2 = "121000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35219@70.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35219@70.conf
new file mode 100644
index 000000000..5e0c63d34
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35219@70.conf
@@ -0,0 +1,23 @@
+LABEL_temp1 = "p1_vdd_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p1_vdd_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "320000"
+CRITHI_curr2 = "360000"
+
+LABEL_in2 = "p1_vdd_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1150"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p1_vdd_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "270000000"
+CRITHI_power2 = "290000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@71.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@71.conf
new file mode 100644
index 000000000..836eef63b
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@71.conf
@@ -0,0 +1,47 @@
+LABEL_temp1 = "p1_vdn_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p1_vdn_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "80000"
+CRITHI_curr2 = "110000"
+
+LABEL_in2 = "p1_vdn_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1100"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p1_vdn_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "88000000"
+CRITHI_power2 = "121000000"
+
+LABEL_temp2 = "p1_vcs_temp"
+WARNHI_temp2 = "80000"
+WARNLO_temp2 = "0"
+CRITHI_temp2 = "85000"
+CRITLO_temp2 = "0"
+
+LABEL_curr3 = "p1_vcs_current"
+WARNLO_curr3 = "0"
+CRITLO_curr3 = "0"
+WARNHI_curr3 = "20000"
+CRITHI_curr3 = "25000"
+
+LABEL_in3 = "p1_vcs_voltage"
+WARNLO_in3 = "0"
+CRITLO_in3 = "0"
+WARNHI_in3 = "1150"
+CRITHI_in3 = "1300"
+
+LABEL_power3 = "p1_vcs_power"
+WARNLO_power3 = "0"
+CRITLO_power3 = "0"
+WARNHI_power3 = "20000000"
+CRITHI_power3 = "25000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@72.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@72.conf
new file mode 100644
index 000000000..213f64845
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@3c0/ir35221@72.conf
@@ -0,0 +1,23 @@
+LABEL_temp1 = "p1_vio_temp"
+WARNHI_temp1 = "80000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "85000"
+CRITLO_temp1 = "0"
+
+LABEL_curr2 = "p1_vio_current"
+WARNLO_curr2 = "0"
+CRITLO_curr2 = "0"
+WARNHI_curr2 = "80000"
+CRITHI_curr2 = "110000"
+
+LABEL_in2 = "p1_vio_voltage"
+WARNLO_in2 = "0"
+CRITLO_in2 = "0"
+WARNHI_in2 = "1100"
+CRITHI_in2 = "1300"
+
+LABEL_power2 = "p1_vio_power"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "88000000"
+CRITHI_power2 = "121000000"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/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..5582e9dbf
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/obmc/hwmon/devices/platform/gpio-fsi/fsi0/slave@00--00/00--00--00--06/sbefifo1-dev0/occ-hwmon.1.conf
@@ -0,0 +1,436 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+MODE_temp33 = "label"
+MODE_temp34 = "label"
+MODE_temp35 = "label"
+MODE_temp36 = "label"
+MODE_temp37 = "label"
+MODE_temp38 = "label"
+MODE_temp39 = "label"
+MODE_temp40 = "label"
+MODE_temp41 = "label"
+MODE_temp42 = "label"
+MODE_temp43 = "label"
+MODE_temp44 = "label"
+MODE_temp45 = "label"
+MODE_temp46 = "label"
+MODE_temp47 = "label"
+MODE_temp48 = "label"
+MODE_temp49 = "label"
+MODE_temp50 = "label"
+MODE_temp51 = "label"
+MODE_temp52 = "label"
+
+MODE_power1 = "label"
+MODE_power2 = "label"
+MODE_power3 = "label"
+MODE_power4 = "label"
+MODE_power5 = "label"
+MODE_power6 = "label"
+MODE_power7 = "label"
+MODE_power8 = "label"
+MODE_power9 = "label"
+MODE_power10 = "label"
+MODE_power11 = "label"
+MODE_power12 = "label"
+MODE_power13 = "label"
+MODE_power14 = "label"
+MODE_power15 = "label"
+
+REMOVERCS = "11"
+
+LABEL_temp17 = "p0_core0_temp"
+WARNHI_temp17 = "78000"
+WARNLO_temp17 = "0"
+CRITHI_temp17 = "83000"
+CRITLO_temp17 = "0"
+
+LABEL_temp20 = "p0_core1_temp"
+WARNHI_temp20 = "78000"
+WARNLO_temp20 = "0"
+CRITHI_temp20 = "83000"
+CRITLO_temp20 = "0"
+
+LABEL_temp23 = "p0_core2_temp"
+WARNHI_temp23 = "78000"
+WARNLO_temp23 = "0"
+CRITHI_temp23 = "83000"
+CRITLO_temp23 = "0"
+
+LABEL_temp26 = "p0_core3_temp"
+WARNHI_temp26 = "78000"
+WARNLO_temp26 = "0"
+CRITHI_temp26 = "83000"
+CRITLO_temp26 = "0"
+
+LABEL_temp29 = "p0_core4_temp"
+WARNHI_temp29 = "78000"
+WARNLO_temp29 = "0"
+CRITHI_temp29 = "83000"
+CRITLO_temp29 = "0"
+
+LABEL_temp32 = "p0_core5_temp"
+WARNHI_temp32 = "78000"
+WARNLO_temp32 = "0"
+CRITHI_temp32 = "83000"
+CRITLO_temp32 = "0"
+
+LABEL_temp35 = "p0_core6_temp"
+WARNHI_temp35 = "78000"
+WARNLO_temp35 = "0"
+CRITHI_temp35 = "83000"
+CRITLO_temp35 = "0"
+
+LABEL_temp38 = "p0_core7_temp"
+WARNHI_temp38 = "78000"
+WARNLO_temp38 = "0"
+CRITHI_temp38 = "83000"
+CRITLO_temp38 = "0"
+
+LABEL_temp41 = "p0_core8_temp"
+WARNHI_temp41 = "78000"
+WARNLO_temp41 = "0"
+CRITHI_temp41 = "83000"
+CRITLO_temp41 = "0"
+
+LABEL_temp44 = "p0_core9_temp"
+WARNHI_temp44 = "78000"
+WARNLO_temp44 = "0"
+CRITHI_temp44 = "83000"
+CRITLO_temp44 = "0"
+
+LABEL_temp47 = "p0_core10_temp"
+WARNHI_temp47 = "78000"
+WARNLO_temp47 = "0"
+CRITHI_temp47 = "83000"
+CRITLO_temp47 = "0"
+
+LABEL_temp50 = "p0_core11_temp"
+WARNHI_temp50 = "78000"
+WARNLO_temp50 = "0"
+CRITHI_temp50 = "83000"
+CRITLO_temp50 = "0"
+
+LABEL_temp53 = "p0_core12_temp"
+WARNHI_temp53 = "78000"
+WARNLO_temp53 = "0"
+CRITHI_temp53 = "83000"
+CRITLO_temp53 = "0"
+
+LABEL_temp56 = "p0_core13_temp"
+WARNHI_temp56 = "78000"
+WARNLO_temp56 = "0"
+CRITHI_temp56 = "83000"
+CRITLO_temp56 = "0"
+
+LABEL_temp59 = "p0_core14_temp"
+WARNHI_temp59 = "78000"
+WARNLO_temp59 = "0"
+CRITHI_temp59 = "83000"
+CRITLO_temp59 = "0"
+
+LABEL_temp62 = "p0_core15_temp"
+WARNHI_temp62 = "78000"
+WARNLO_temp62 = "0"
+CRITHI_temp62 = "83000"
+CRITLO_temp62 = "0"
+
+LABEL_temp65 = "p0_core16_temp"
+WARNHI_temp65 = "78000"
+WARNLO_temp65 = "0"
+CRITHI_temp65 = "83000"
+CRITLO_temp65 = "0"
+
+LABEL_temp68 = "p0_core17_temp"
+WARNHI_temp68 = "78000"
+WARNLO_temp68 = "0"
+CRITHI_temp68 = "83000"
+CRITLO_temp68 = "0"
+
+LABEL_temp71 = "p0_core18_temp"
+WARNHI_temp71 = "78000"
+WARNLO_temp71 = "0"
+CRITHI_temp71 = "83000"
+CRITLO_temp71 = "0"
+
+LABEL_temp74 = "p0_core19_temp"
+WARNHI_temp74 = "78000"
+WARNLO_temp74 = "0"
+CRITHI_temp74 = "83000"
+CRITLO_temp74 = "0"
+
+LABEL_temp77 = "p0_core20_temp"
+WARNHI_temp77 = "78000"
+WARNLO_temp77 = "0"
+CRITHI_temp77 = "83000"
+CRITLO_temp77 = "0"
+
+LABEL_temp80 = "p0_core21_temp"
+WARNHI_temp80 = "78000"
+WARNLO_temp80 = "0"
+CRITHI_temp80 = "83000"
+CRITLO_temp80 = "0"
+
+LABEL_temp83 = "p0_core22_temp"
+WARNHI_temp83 = "78000"
+WARNLO_temp83 = "0"
+CRITHI_temp83 = "83000"
+CRITLO_temp83 = "0"
+
+LABEL_temp86 = "p0_core23_temp"
+WARNHI_temp86 = "78000"
+WARNLO_temp86 = "0"
+CRITHI_temp86 = "83000"
+CRITLO_temp86 = "0"
+
+LABEL_temp165 = "dimm0_temp0"
+WARNHI_temp165 = "78000"
+WARNLO_temp165 = "0"
+CRITHI_temp165 = "83000"
+CRITLO_temp165 = "0"
+
+LABEL_temp166 = "dimm0_temp1"
+WARNHI_temp166 = "78000"
+WARNLO_temp166 = "0"
+CRITHI_temp166 = "83000"
+CRITLO_temp166 = "0"
+
+LABEL_temp168 = "dimm1_temp0"
+WARNHI_temp168 = "78000"
+WARNLO_temp168 = "0"
+CRITHI_temp168 = "83000"
+CRITLO_temp168 = "0"
+
+LABEL_temp169 = "dimm1_temp1"
+WARNHI_temp169 = "78000"
+WARNLO_temp169 = "0"
+CRITHI_temp169 = "83000"
+CRITLO_temp169 = "0"
+
+LABEL_temp171 = "dimm2_temp0"
+WARNHI_temp171 = "78000"
+WARNLO_temp171 = "0"
+CRITHI_temp171 = "83000"
+CRITLO_temp171 = "0"
+
+LABEL_temp172 = "dimm2_temp1"
+WARNHI_temp172 = "78000"
+WARNLO_temp172 = "0"
+CRITHI_temp172 = "83000"
+CRITLO_temp172 = "0"
+
+LABEL_temp174 = "dimm3_temp0"
+WARNHI_temp174 = "78000"
+WARNLO_temp174 = "0"
+CRITHI_temp174 = "83000"
+CRITLO_temp174 = "0"
+
+LABEL_temp175 = "dimm3_temp1"
+WARNHI_temp175 = "78000"
+WARNLO_temp175 = "0"
+CRITHI_temp175 = "83000"
+CRITLO_temp175 = "0"
+
+LABEL_temp177 = "dimm4_temp0"
+WARNHI_temp177 = "78000"
+WARNLO_temp177 = "0"
+CRITHI_temp177 = "83000"
+CRITLO_temp177 = "0"
+
+LABEL_temp178 = "dimm4_temp1"
+WARNHI_temp178 = "78000"
+WARNLO_temp178 = "0"
+CRITHI_temp178 = "83000"
+CRITLO_temp178 = "0"
+
+LABEL_temp180 = "dimm5_temp0"
+WARNHI_temp180 = "78000"
+WARNLO_temp180 = "0"
+CRITHI_temp180 = "83000"
+CRITLO_temp180 = "0"
+
+LABEL_temp181 = "dimm5_temp1"
+WARNHI_temp181 = "78000"
+WARNLO_temp181 = "0"
+CRITHI_temp181 = "83000"
+CRITLO_temp181 = "0"
+
+LABEL_temp183 = "dimm6_temp0"
+WARNHI_temp183 = "78000"
+WARNLO_temp183 = "0"
+CRITHI_temp183 = "83000"
+CRITLO_temp183 = "0"
+
+LABEL_temp184 = "dimm6_temp1"
+WARNHI_temp184 = "78000"
+WARNLO_temp184 = "0"
+CRITHI_temp184 = "83000"
+CRITLO_temp184 = "0"
+
+LABEL_temp186 = "dimm7_temp0"
+WARNHI_temp186 = "78000"
+WARNLO_temp186 = "0"
+CRITHI_temp186 = "83000"
+CRITLO_temp186 = "0"
+
+LABEL_temp187 = "dimm7_temp1"
+WARNHI_temp187 = "78000"
+WARNLO_temp187 = "0"
+CRITHI_temp187 = "83000"
+CRITLO_temp187 = "0"
+
+LABEL_temp189 = "dimm8_temp0"
+WARNHI_temp189 = "78000"
+WARNLO_temp189 = "0"
+CRITHI_temp189 = "83000"
+CRITLO_temp189 = "0"
+
+LABEL_temp190 = "dimm8_temp1"
+WARNHI_temp190 = "78000"
+WARNLO_temp190 = "0"
+CRITHI_temp190 = "83000"
+CRITLO_temp190 = "0"
+
+LABEL_temp192 = "dimm9_temp0"
+WARNHI_temp192 = "78000"
+WARNLO_temp192 = "0"
+CRITHI_temp192 = "83000"
+CRITLO_temp192 = "0"
+
+LABEL_temp193 = "dimm9_temp1"
+WARNHI_temp193 = "78000"
+WARNLO_temp193 = "0"
+CRITHI_temp193 = "83000"
+CRITLO_temp193 = "0"
+
+LABEL_temp195 = "dimm10_temp0"
+WARNHI_temp195 = "78000"
+WARNLO_temp195 = "0"
+CRITHI_temp195 = "83000"
+CRITLO_temp195 = "0"
+
+LABEL_temp196 = "dimm10_temp1"
+WARNHI_temp196 = "78000"
+WARNLO_temp196 = "0"
+CRITHI_temp196 = "83000"
+CRITLO_temp196 = "0"
+
+LABEL_temp198 = "dimm11_temp0"
+WARNHI_temp198 = "78000"
+WARNLO_temp198 = "0"
+CRITHI_temp198 = "83000"
+CRITLO_temp198 = "0"
+
+LABEL_temp199 = "dimm11_temp1"
+WARNHI_temp199 = "78000"
+WARNLO_temp199 = "0"
+CRITHI_temp199 = "83000"
+CRITLO_temp199 = "0"
+
+LABEL_temp237 = "gpu0_core_temp"
+WARNHI_temp237 = "76000"
+WARNLO_temp237 = "0"
+CRITHI_temp237 = "81000"
+CRITLO_temp237 = "0"
+
+LABEL_temp238 = "gpu0_mem_temp"
+WARNHI_temp238 = "78000"
+WARNLO_temp238 = "0"
+CRITHI_temp238 = "83000"
+CRITLO_temp238 = "0"
+
+LABEL_temp240 = "gpu1_core_temp"
+WARNHI_temp240 = "76000"
+WARNLO_temp240 = "0"
+CRITHI_temp240 = "81000"
+CRITLO_temp240 = "0"
+
+LABEL_temp241 = "gpu1_mem_temp"
+WARNHI_temp241 = "78000"
+WARNLO_temp241 = "0"
+CRITHI_temp241 = "83000"
+CRITLO_temp241 = "0"
+
+LABEL_power0_22_0 = "total_power"
+WARNHI_power0_22_0 = "3050000000"
+WARNLO_power0_22_0 = "0"
+CRITHI_power0_22_0 = "3100000000"
+CRITLO_power0_22_0 = "0"
+
+LABEL_power0_5_2 = "p0_power"
+WARNHI_power0_5_2 = "250000000"
+WARNLO_power0_5_2 = "0"
+CRITHI_power0_5_2 = "300000000"
+CRITLO_power0_5_2 = "0"
+
+LABEL_power0_6_3 = "p1_power"
+WARNHI_power0_6_3 = "250000000"
+WARNLO_power0_6_3 = "0"
+CRITHI_power0_6_3 = "300000000"
+CRITLO_power0_6_3 = "0"
+
+LABEL_power0_9_4 = "p0_io_power"
+WARNHI_power0_9_4 = "80000000"
+WARNLO_power0_9_4 = "0"
+CRITHI_power0_9_4 = "100000000"
+CRITLO_power0_9_4 = "0"
+
+LABEL_power0_10_5 = "p1_io_power"
+WARNHI_power0_10_5 = "80000000"
+WARNLO_power0_10_5 = "0"
+CRITHI_power0_10_5 = "100000000"
+CRITLO_power0_10_5 = "0"
+
+LABEL_power0_1_6 = "p0_mem_power"
+WARNHI_power0_1_6 = "250000000"
+WARNLO_power0_1_6 = "0"
+CRITHI_power0_1_6 = "300000000"
+CRITLO_power0_1_6 = "0"
+
+LABEL_power0_2_7 = "p1_mem_power"
+WARNHI_power0_2_7 = "250000000"
+WARNLO_power0_2_7 = "0"
+CRITHI_power0_2_7 = "300000000"
+CRITLO_power0_2_7 = "0"
+
+LABEL_power0_18_14 = "fan_disk_power"
+WARNHI_power0_18_14 = "375000000"
+WARNLO_power0_18_14 = "0"
+CRITHI_power0_18_14 = "400000000"
+CRITLO_power0_18_14 = "0"
+
+LABEL_power0_13_15 = "io_power"
+WARNHI_power0_13_15 = "128000000"
+WARNLO_power0_13_15 = "0"
+CRITHI_power0_13_15 = "150000000"
+CRITLO_power0_13_15 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/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-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/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..1cc4afb71
--- /dev/null
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon/swift/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,366 @@
+MODE_temp1 = "label"
+MODE_temp2 = "label"
+MODE_temp3 = "label"
+MODE_temp4 = "label"
+MODE_temp5 = "label"
+MODE_temp6 = "label"
+MODE_temp7 = "label"
+MODE_temp8 = "label"
+MODE_temp9 = "label"
+MODE_temp10 = "label"
+MODE_temp11 = "label"
+MODE_temp12 = "label"
+MODE_temp13 = "label"
+MODE_temp14 = "label"
+MODE_temp15 = "label"
+MODE_temp16 = "label"
+MODE_temp17 = "label"
+MODE_temp18 = "label"
+MODE_temp19 = "label"
+MODE_temp20 = "label"
+MODE_temp21 = "label"
+MODE_temp22 = "label"
+MODE_temp23 = "label"
+MODE_temp24 = "label"
+MODE_temp25 = "label"
+MODE_temp26 = "label"
+MODE_temp27 = "label"
+MODE_temp28 = "label"
+MODE_temp29 = "label"
+MODE_temp30 = "label"
+MODE_temp31 = "label"
+MODE_temp32 = "label"
+MODE_temp33 = "label"
+MODE_temp34 = "label"
+MODE_temp35 = "label"
+MODE_temp36 = "label"
+MODE_temp37 = "label"
+MODE_temp38 = "label"
+MODE_temp39 = "label"
+MODE_temp40 = "label"
+MODE_temp41 = "label"
+MODE_temp42 = "label"
+MODE_temp43 = "label"
+MODE_temp44 = "label"
+MODE_temp45 = "label"
+MODE_temp46 = "label"
+MODE_temp47 = "label"
+MODE_temp48 = "label"
+MODE_temp49 = "label"
+MODE_temp50 = "label"
+MODE_temp51 = "label"
+MODE_temp52 = "label"
+
+REMOVERCS = "11"
+
+LABEL_temp91 = "p1_core0_temp"
+WARNHI_temp91 = "78000"
+WARNLO_temp91 = "0"
+CRITHI_temp91 = "83000"
+CRITLO_temp91 = "0"
+
+LABEL_temp94 = "p1_core1_temp"
+WARNHI_temp94 = "78000"
+WARNLO_temp94 = "0"
+CRITHI_temp94 = "83000"
+CRITLO_temp94 = "0"
+
+LABEL_temp97 = "p1_core2_temp"
+WARNHI_temp97 = "78000"
+WARNLO_temp97 = "0"
+CRITHI_temp97 = "83000"
+CRITLO_temp97 = "0"
+
+LABEL_temp100 = "p1_core3_temp"
+WARNHI_temp100 = "78000"
+WARNLO_temp100 = "0"
+CRITHI_temp100 = "83000"
+CRITLO_temp100 = "0"
+
+LABEL_temp103 = "p1_core4_temp"
+WARNHI_temp103 = "78000"
+WARNLO_temp103 = "0"
+CRITHI_temp103 = "83000"
+CRITLO_temp103 = "0"
+
+LABEL_temp106 = "p1_core5_temp"
+WARNHI_temp106 = "78000"
+WARNLO_temp106 = "0"
+CRITHI_temp106 = "83000"
+CRITLO_temp106 = "0"
+
+LABEL_temp109 = "p1_core6_temp"
+WARNHI_temp109 = "78000"
+WARNLO_temp109 = "0"
+CRITHI_temp109 = "83000"
+CRITLO_temp109 = "0"
+
+LABEL_temp112 = "p1_core7_temp"
+WARNHI_temp112 = "78000"
+WARNLO_temp112 = "0"
+CRITHI_temp112 = "83000"
+CRITLO_temp112 = "0"
+
+LABEL_temp115 = "p1_core8_temp"
+WARNHI_temp115 = "78000"
+WARNLO_temp115 = "0"
+CRITHI_temp115 = "83000"
+CRITLO_temp115 = "0"
+
+LABEL_temp118 = "p1_core9_temp"
+WARNHI_temp118 = "78000"
+WARNLO_temp118 = "0"
+CRITHI_temp118 = "83000"
+CRITLO_temp118 = "0"
+
+LABEL_temp121 = "p1_core10_temp"
+WARNHI_temp121 = "78000"
+WARNLO_temp121 = "0"
+CRITHI_temp121 = "83000"
+CRITLO_temp121 = "0"
+
+LABEL_temp124 = "p1_core11_temp"
+WARNHI_temp124 = "78000"
+WARNLO_temp124 = "0"
+CRITHI_temp124 = "83000"
+CRITLO_temp124 = "0"
+
+LABEL_temp127 = "p1_core12_temp"
+WARNHI_temp127 = "78000"
+WARNLO_temp127 = "0"
+CRITHI_temp127 = "83000"
+CRITLO_temp127 = "0"
+
+LABEL_temp130 = "p1_core13_temp"
+WARNHI_temp130 = "78000"
+WARNLO_temp130 = "0"
+CRITHI_temp130 = "83000"
+CRITLO_temp130 = "0"
+
+LABEL_temp133 = "p1_core14_temp"
+WARNHI_temp133 = "78000"
+WARNLO_temp133 = "0"
+CRITHI_temp133 = "83000"
+CRITLO_temp133 = "0"
+
+LABEL_temp136 = "p1_core15_temp"
+WARNHI_temp136 = "78000"
+WARNLO_temp136 = "0"
+CRITHI_temp136 = "83000"
+CRITLO_temp136 = "0"
+
+LABEL_temp139 = "p1_core16_temp"
+WARNHI_temp139 = "78000"
+WARNLO_temp139 = "0"
+CRITHI_temp139 = "83000"
+CRITLO_temp139 = "0"
+
+LABEL_temp142 = "p1_core17_temp"
+WARNHI_temp142 = "78000"
+WARNLO_temp142 = "0"
+CRITHI_temp142 = "83000"
+CRITLO_temp142 = "0"
+
+LABEL_temp145 = "p1_core18_temp"
+WARNHI_temp145 = "78000"
+WARNLO_temp145 = "0"
+CRITHI_temp145 = "83000"
+CRITLO_temp145 = "0"
+
+LABEL_temp148 = "p1_core19_temp"
+WARNHI_temp148 = "78000"
+WARNLO_temp148 = "0"
+CRITHI_temp148 = "83000"
+CRITLO_temp148 = "0"
+
+LABEL_temp151 = "p1_core20_temp"
+WARNHI_temp151 = "78000"
+WARNLO_temp151 = "0"
+CRITHI_temp151 = "83000"
+CRITLO_temp151 = "0"
+
+LABEL_temp154 = "p1_core21_temp"
+WARNHI_temp154 = "78000"
+WARNLO_temp154 = "0"
+CRITHI_temp154 = "83000"
+CRITLO_temp154 = "0"
+
+LABEL_temp157 = "p1_core22_temp"
+WARNHI_temp157 = "78000"
+WARNLO_temp157 = "0"
+CRITHI_temp157 = "83000"
+CRITLO_temp157 = "0"
+
+LABEL_temp160 = "p1_core23_temp"
+WARNHI_temp160 = "78000"
+WARNLO_temp160 = "0"
+CRITHI_temp160 = "83000"
+CRITLO_temp160 = "0"
+
+LABEL_temp201 = "dimm12_temp0"
+WARNHI_temp201 = "78000"
+WARNLO_temp201 = "0"
+CRITHI_temp201 = "83000"
+CRITLO_temp201 = "0"
+
+LABEL_temp202 = "dimm12_temp1"
+WARNHI_temp202 = "78000"
+WARNLO_temp202 = "0"
+CRITHI_temp202 = "83000"
+CRITLO_temp202 = "0"
+
+LABEL_temp204 = "dimm13_temp0"
+WARNHI_temp204 = "78000"
+WARNLO_temp204 = "0"
+CRITHI_temp204 = "83000"
+CRITLO_temp204 = "0"
+
+LABEL_temp205 = "dimm13_temp1"
+WARNHI_temp205 = "78000"
+WARNLO_temp205 = "0"
+CRITHI_temp205 = "83000"
+CRITLO_temp205 = "0"
+
+LABEL_temp207 = "dimm14_temp0"
+WARNHI_temp207 = "78000"
+WARNLO_temp207 = "0"
+CRITHI_temp207 = "83000"
+CRITLO_temp207 = "0"
+
+LABEL_temp208 = "dimm14_temp1"
+WARNHI_temp208 = "78000"
+WARNLO_temp208 = "0"
+CRITHI_temp208 = "83000"
+CRITLO_temp208 = "0"
+
+LABEL_temp210 = "dimm15_temp0"
+WARNHI_temp210 = "78000"
+WARNLO_temp210 = "0"
+CRITHI_temp210 = "83000"
+CRITLO_temp210 = "0"
+
+LABEL_temp211 = "dimm15_temp1"
+WARNHI_temp211 = "78000"
+WARNLO_temp211 = "0"
+CRITHI_temp211 = "83000"
+CRITLO_temp211 = "0"
+
+LABEL_temp213 = "dimm16_temp0"
+WARNHI_temp213 = "78000"
+WARNLO_temp213 = "0"
+CRITHI_temp213 = "83000"
+CRITLO_temp213 = "0"
+
+LABEL_temp214 = "dimm16_temp1"
+WARNHI_temp214 = "78000"
+WARNLO_temp214 = "0"
+CRITHI_temp214 = "83000"
+CRITLO_temp214 = "0"
+
+LABEL_temp216 = "dimm17_temp0"
+WARNHI_temp216 = "78000"
+WARNLO_temp216 = "0"
+CRITHI_temp216 = "83000"
+CRITLO_temp216 = "0"
+
+LABEL_temp217 = "dimm17_temp1"
+WARNHI_temp217 = "78000"
+WARNLO_temp217 = "0"
+CRITHI_temp217 = "83000"
+CRITLO_temp217 = "0"
+
+LABEL_temp219 = "dimm18_temp0"
+WARNHI_temp219 = "78000"
+WARNLO_temp219 = "0"
+CRITHI_temp219 = "83000"
+CRITLO_temp219 = "0"
+
+LABEL_temp220 = "dimm18_temp1"
+WARNHI_temp220 = "78000"
+WARNLO_temp220 = "0"
+CRITHI_temp220 = "83000"
+CRITLO_temp220 = "0"
+
+LABEL_temp222 = "dimm19_temp0"
+WARNHI_temp222 = "78000"
+WARNLO_temp222 = "0"
+CRITHI_temp222 = "83000"
+CRITLO_temp222 = "0"
+
+LABEL_temp223 = "dimm19_temp1"
+WARNHI_temp223 = "78000"
+WARNLO_temp223 = "0"
+CRITHI_temp223 = "83000"
+CRITLO_temp223 = "0"
+
+LABEL_temp225 = "dimm20_temp0"
+WARNHI_temp225 = "78000"
+WARNLO_temp225 = "0"
+CRITHI_temp225 = "83000"
+CRITLO_temp225 = "0"
+
+LABEL_temp226 = "dimm20_temp1"
+WARNHI_temp226 = "78000"
+WARNLO_temp226 = "0"
+CRITHI_temp226 = "83000"
+CRITLO_temp226 = "0"
+
+LABEL_temp228 = "dimm21_temp0"
+WARNHI_temp228 = "78000"
+WARNLO_temp228 = "0"
+CRITHI_temp228 = "83000"
+CRITLO_temp228 = "0"
+
+LABEL_temp229 = "dimm21_temp1"
+WARNHI_temp229 = "78000"
+WARNLO_temp229 = "0"
+CRITHI_temp229 = "83000"
+CRITLO_temp229 = "0"
+
+LABEL_temp231 = "dimm22_temp0"
+WARNHI_temp231 = "78000"
+WARNLO_temp231 = "0"
+CRITHI_temp231 = "83000"
+CRITLO_temp231 = "0"
+
+LABEL_temp232 = "dimm22_temp1"
+WARNHI_temp232 = "78000"
+WARNLO_temp232 = "0"
+CRITHI_temp232 = "83000"
+CRITLO_temp232 = "0"
+
+LABEL_temp234 = "dimm23_temp0"
+WARNHI_temp234 = "78000"
+WARNLO_temp234 = "0"
+CRITHI_temp234 = "83000"
+CRITLO_temp234 = "0"
+
+LABEL_temp235 = "dimm23_temp1"
+WARNHI_temp235 = "78000"
+WARNLO_temp235 = "0"
+CRITHI_temp235 = "83000"
+CRITLO_temp235 = "0"
+
+LABEL_temp243 = "gpu2_core_temp"
+WARNHI_temp243 = "76000"
+WARNLO_temp243 = "0"
+CRITHI_temp243 = "81000"
+CRITLO_temp243 = "0"
+
+LABEL_temp244 = "gpu2_mem_temp"
+WARNHI_temp244 = "78000"
+WARNLO_temp244 = "0"
+CRITHI_temp244 = "83000"
+CRITLO_temp244 = "0"
+
+LABEL_temp246 = "gpu3_core_temp"
+WARNHI_temp246 = "76000"
+WARNLO_temp246 = "0"
+CRITHI_temp246 = "81000"
+CRITLO_temp246 = "0"
+
+LABEL_temp247 = "gpu3_mem_temp"
+WARNHI_temp247 = "78000"
+WARNLO_temp247 = "0"
+CRITHI_temp247 = "83000"
+CRITLO_temp247 = "0"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
index 75e7655af..993ca281f 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
@@ -9,12 +9,12 @@ SRC_URI += " \
CHIPS = " \
bus@1e78a000/i2c-bus@100/max31785@52_air \
bus@1e78a000/i2c-bus@100/max31785@52_water \
+ bus@1e78a000/i2c-bus@100/power-supply@68 \
+ bus@1e78a000/i2c-bus@100/power-supply@69 \
"
CHIPS_append_witherspoon = " \
bus@1e78a000/i2c-bus@100/bmp280@77 \
bus@1e78a000/i2c-bus@100/dps310@76 \
- bus@1e78a000/i2c-bus@100/power-supply@68 \
- bus@1e78a000/i2c-bus@100/power-supply@69 \
bus@1e78a000/i2c-bus@140/ir35221@70 \
bus@1e78a000/i2c-bus@140/ir35221@71 \
bus@1e78a000/i2c-bus@180/ir35221@70 \
@@ -24,21 +24,30 @@ CHIPS_append_witherspoon = " \
CHIPS_append_swift = " \
bus@1e78a000/i2c-bus@440/tmp275@4a \
bus@1e78a000/i2c-bus@440/tmp275@48 \
+ bus@1e78a000/i2c-bus@300/tmp275@48 \
+ bus@1e78a000/i2c-bus@300/dps310@76 \
+ bus@1e78a000/i2c-bus@300/si7021a20@20 \
+ bus@1e78a000/i2c-bus@380/ir35219@70 \
+ bus@1e78a000/i2c-bus@380/ir35221@71 \
+ bus@1e78a000/i2c-bus@380/ir35221@72 \
+ bus@1e78a000/i2c-bus@3c0/ir35219@70 \
+ bus@1e78a000/i2c-bus@3c0/ir35221@71 \
+ bus@1e78a000/i2c-bus@3c0/ir35221@72 \
"
ITEMSFMT = "ahb/apb/{0}.conf"
ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"
-OCCS_witherspoon = " \
- 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_witherspoon = "devices/platform/gpio-fsi/fsi0/slave@00--00/{0}.conf"
-OCCITEMS_witherspoon = "${@compose_list(d, 'OCCSFMT_witherspoon', 'OCCS_witherspoon')}"
+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}_append_witherspoon = " ${@compose_list(d, 'ENVS', 'OCCITEMS_witherspoon')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}_append = " ${@compose_list(d, 'ENVS', 'OCCITEMS')}"
SYSTEMD_ENVIRONMENT_FILE_max31785-msl += "obmc/hwmon-max31785/max31785.conf"
SYSTEMD_LINK_max31785-msl += "../phosphor-max31785-msl@.service:multi-user.target.wants/phosphor-max31785-msl@${MACHINE}.service"
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/swift/gpio_defs.json b/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/swift/gpio_defs.json
index 83332db61..83143b0f4 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/swift/gpio_defs.json
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/skeleton/obmc-libobmc-intf/swift/gpio_defs.json
@@ -53,7 +53,7 @@
"name": "POWER_BUTTON",
"pin": "I3",
"direction": "both"
- }
+ },
{
"name": "AIR_WATER_N",
"pin": "B5",
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd_%.bbappend b/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd_%.bbappend
index 530950328..3fc3d487e 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd_%.bbappend
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/vpd/openpower-fru-vpd_%.bbappend
@@ -5,5 +5,5 @@ do_install_append_witherspoon() {
do_install_append_swift() {
DEST=${D}${inventory_envdir}
- printf "\nEEPROM=/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a400.i2c-bus/i2c-08/08-0051/eeprom" >> ${DEST}/inventory
+ printf "\nEEPROM=/sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0051/eeprom" >> ${DEST}/inventory
}
diff --git a/meta-inspur/MAINTAINERS b/meta-inspur/MAINTAINERS
new file mode 100644
index 000000000..af86b18f7
--- /dev/null
+++ b/meta-inspur/MAINTAINERS
@@ -0,0 +1,47 @@
+How to use this list:
+ Find the most specific section entry (described below) that matches where
+ your change lives and add the reviewers (R) and maintainers (M) as
+ reviewers. You can use the same method to track down who knows a particular
+ code base best.
+
+ Your change/query may span multiple entries; that is okay.
+
+ If you do not find an entry that describes your request at all, someone
+ forgot to update this list; please at least file an issue or send an email
+ to a maintainer, but preferably you should just update this document.
+
+Description of section entries:
+
+ Section entries are structured according to the following scheme:
+
+ X: NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
+ X: ...
+ .
+ .
+ .
+
+ Where REPO_NAME is the name of the repository within the OpenBMC GitHub
+ organization; FILE_PATH is a file path within the repository, possibly with
+ wildcards; X is a tag of one of the following types:
+
+ M: Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ if omitted from an entry, assume one of the maintainers from the
+ MAINTAINERS entry.
+ R: Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ these people are to be added as reviewers for a change matching the repo
+ path.
+ F: Denotes forked from an external repository; has fields URL.
+
+ Line comments are to be denoted "# SOME COMMENT" (typical shell style
+ comment); it is important to follow the correct syntax and semantics as we
+ may want to use automated tools with this file in the future.
+
+ A change cannot be added to an OpenBMC repository without a MAINTAINER's
+ approval; thus, a MAINTAINER should always be listed as a reviewer.
+
+START OF MAINTAINERS LIST
+-------------------------
+
+M: John Wang <wangzqbj@inspur.com> <JohnWang!>
+R: George Liu <liuxiwei@inspur.com> <liuxiwei!>
+R: Lei Yu <mine260309@gmail.com> <LeiYU!>
diff --git a/meta-inspur/conf/layer.conf b/meta-inspur/conf/layer.conf
index 16f6f2a7b..3ba10679e 100644
--- a/meta-inspur/conf/layer.conf
+++ b/meta-inspur/conf/layer.conf
@@ -2,13 +2,11 @@
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
-BBFILES += "${LAYERDIR}/meta-common/recipes-*/*/*.bb \
- ${LAYERDIR}/meta-common/recipes-*/*/*.bbappend"
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "inspur-layer"
-BBFILE_PATTERN_inspur-layer = ""
-LAYERVERSION_inspur-layer = "1"
+BBFILE_PATTERN_inspur-layer = "^${LAYERDIR}/"
LAYERSERIES_COMPAT_inspur-layer = "thud warrior"
INSPURBASE = '${@os.path.normpath("${LAYERDIR}/")}'
-
diff --git a/meta-inspur/conf/machine/include/inspur.inc b/meta-inspur/conf/machine/include/inspur.inc
deleted file mode 100644
index d90a01ad2..000000000
--- a/meta-inspur/conf/machine/include/inspur.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-OBMC_MACHINE_FEATURES += "\
- obmc-phosphor-fan-mgmt \
- obmc-phosphor-chassis-mgmt \
- obmc-phosphor-flash-mgmt \
- obmc-host-ipmi \
- obmc-host-ctl \
- obmc-host-state-mgmt \
- obmc-chassis-state-mgmt \
- obmc-bmc-state-mgmt \
- "
-
-VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config"
-
-PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-inspur-apps"
-PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-inspur-apps"
-PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-inspur-apps"
-PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-inspur-apps"
-PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host"
-PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_workbook}"
-PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
-#PREFERRED_PROVIDER_virtual/obmc-gpio-monitor ?= "phosphor-gpio-monitor"
diff --git a/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample b/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample
new file mode 100644
index 000000000..85de97268
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/conf/bblayers.conf.sample
@@ -0,0 +1,31 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-inspur \
+ ##OEROOT##/meta-inspur/meta-fp5280g2\
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-inspur \
+ ##OEROOT##/meta-inspur/meta-fp5280g2 \
+ "
diff --git a/meta-inspur/meta-fp5280g2/conf/conf-notes.txt b/meta-inspur/meta-fp5280g2/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-inspur/meta-fp5280g2/conf/distro/openbmc-fp5280g2.conf b/meta-inspur/meta-fp5280g2/conf/distro/openbmc-fp5280g2.conf
new file mode 100644
index 000000000..2570a9a19
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/conf/distro/openbmc-fp5280g2.conf
@@ -0,0 +1 @@
+require conf/distro/openbmc-openpower.conf
diff --git a/meta-inspur/meta-fp5280g2/conf/layer.conf b/meta-inspur/meta-fp5280g2/conf/layer.conf
new file mode 100644
index 000000000..56da4ba91
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/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 += "fp5280g2-layer"
+BBFILE_PATTERN_fp5280g2-layer := "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_fp5280g2-layer = "thud warrior"
diff --git a/meta-inspur/meta-fp5280g2/conf/local.conf.sample b/meta-inspur/meta-fp5280g2/conf/local.conf.sample
new file mode 100644
index 000000000..189fcb3d2
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/conf/local.conf.sample
@@ -0,0 +1,17 @@
+MACHINE ??= "fp5280g2"
+DISTRO ?= "openbmc-fp5280g2"
+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"
diff --git a/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf b/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf
new file mode 100644
index 000000000..2e754bc1f
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/conf/machine/fp5280g2.conf
@@ -0,0 +1,11 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-inspur-${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/openpower.inc
+require conf/machine/include/p9.inc
diff --git a/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed/fp5280g2/fp5280g2.cfg b/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed/fp5280g2/fp5280g2.cfg
new file mode 100644
index 000000000..587dc57d1
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed/fp5280g2/fp5280g2.cfg
@@ -0,0 +1,4 @@
+CONFIG_SENSORS_TMP421=y
+CONFIG_SENSORS_EMC1403=y
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_GPIO_PCA953X=y
diff --git a/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..4d2288fe4
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append_fp5280g2 = " file://fp5280g2.cfg"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/host/p9-host-start.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/host/p9-host-start.bbappend
new file mode 100644
index 000000000..a2c59c5f8
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/host/p9-host-start.bbappend
@@ -0,0 +1 @@
+RDEPENDS_${PN}_remove_fp5280g2 = "p9-vcs-workaround"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..a19860e12
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append_fp5280g2 = " mboxd liberation-fonts uart-render-controller"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/mboxd/mboxd_%.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/mboxd/mboxd_%.bbappend
new file mode 100644
index 000000000..b6a7b0ca3
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/mboxd/mboxd_%.bbappend
@@ -0,0 +1 @@
+MBOXD_FLASH_SIZE_fp5280g2 = "64M"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a.conf
new file mode 100644
index 000000000..3f0260bfe
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "psu_inlet"
+WARNHI_temp1 = "63000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "65000"
+CRITLO_temp1 = "0"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a.conf
new file mode 100644
index 000000000..7390e7747
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "ocp_zone"
+WARNHI_temp1 = "63000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "65000"
+CRITLO_temp1 = "0"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a.conf
new file mode 100644
index 000000000..642b3d83d
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "bmc_zone"
+WARNHI_temp1 = "120000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "125000"
+CRITLO_temp1 = "0"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@48.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@48.conf
new file mode 100644
index 000000000..4189ab342
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@48.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "inlet"
+WARNHI_temp1 = "40000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "42000"
+CRITLO_temp1 = "0"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@49.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@49.conf
new file mode 100644
index 000000000..615a1cbc3
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@c0/tmp112@49.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "68000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
new file mode 100644
index 000000000..8835411fb
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
@@ -0,0 +1,17 @@
+LABEL_fan1 = "fan0_0"
+LABEL_fan2 = "fan0_1"
+LABEL_fan3 = "fan1_0"
+LABEL_fan4 = "fan1_1"
+LABEL_fan5 = "fan2_0"
+LABEL_fan6 = "fan2_1"
+LABEL_fan7 = "fan3_0"
+LABEL_fan8 = "fan3_1"
+
+PWM_TARGET_fan1 = "1"
+PWM_TARGET_fan2 = "1"
+PWM_TARGET_fan3 = "2"
+PWM_TARGET_fan4 = "2"
+PWM_TARGET_fan5 = "3"
+PWM_TARGET_fan6 = "3"
+PWM_TARGET_fan7 = "4"
+PWM_TARGET_fan8 = "4"
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon-battery.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon-battery.conf
new file mode 100644
index 000000000..0ef4a957b
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon-battery.conf
@@ -0,0 +1,9 @@
+LABEL_in1=p3v_bat
+GAIN_in1=3.00
+MINVALUE_in1=2300
+MAXVALUE_in1=5500
+# The battery read is controlled by S5
+GPIOCHIP_in1=0
+GPIO_in1=149
+# Sleep in microseconds (stored into a uint64_t)
+INTERVAL=86400000000
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf
new file mode 100644
index 000000000..09a32d36a
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf
@@ -0,0 +1,109 @@
+LABEL_in1=P3V3
+GAIN_in1=2.47
+WARNHI_in1=3531
+WARNLO_in1=3069
+CRITHI_in1=3630
+CRITLO_in1=2970
+MINVALUE_in1=3135
+MAXVALUE_in1=3465
+LABEL_in2=P5V
+GAIN_in2=4.30
+WARNHI_in2=5350
+WARNLO_in2=4650
+CRITHI_in2=5500
+CRITLO_in2=4500
+MINVALUE_in2=4750
+MAXVALUE_in2=5250
+LABEL_in3=P12V
+GAIN_in3=9.22
+WARNHI_in3=12840
+WARNLO_in3=11160
+CRITHI_in3=13200
+CRITLO_in3=10800
+MINVALUE_in3=11400
+MAXVALUE_in3=12600
+LABEL_in4=PVDD_CPU0
+WARNHI_in4=1177
+WARNLO_in4=558
+CRITHI_in4=1210
+CRITLO_in4=540
+MINVALUE_in4=600
+MAXVALUE_in4=1100
+LABEL_in5=PVDD_CPU1
+WARNHI_in5=1177
+WARNLO_in5=558
+CRITHI_in5=1210
+CRITLO_in5=540
+MINVALUE_in5=600
+MAXVALUE_in5=1100
+LABEL_in6=PVCS_CPU0
+WARNHI_in6=1177
+WARNLO_in6=893
+CRITHI_in6=1210
+CRITLO_in6=864
+MINVALUE_in6=960
+MAXVALUE_in6=1100
+LABEL_in7=PVCS_CPU1
+WARNHI_in7=1177
+WARNLO_in7=893
+CRITHI_in7=1210
+CRITLO_in7=864
+MINVALUE_in7=960
+MAXVALUE_in7=1100
+LABEL_in8=PVDN_CPU0
+WARNHI_in8=1177
+WARNLO_in8=605
+CRITHI_in8=1210
+CRITLO_in8=585
+MINVALUE_in8=650
+MAXVALUE_in8=1100
+LABEL_in9=PVDN_CPU1
+WARNHI_in9=1177
+WARNLO_in9=605
+CRITHI_in9=1210
+CRITLO_in9=585
+MINVALUE_in9=650
+MAXVALUE_in9=1100
+LABEL_in10=PVIO_CPU0
+WARNHI_in10=1124
+WARNLO_in10=977
+CRITHI_in10=1155
+CRITLO_in10=945
+MINVALUE_in10=998
+MAXVALUE_in10=1103
+LABEL_in11=PVIO_CPU1
+WARNHI_in11=1124
+WARNLO_in11=977
+CRITHI_in11=1155
+CRITLO_in11=945
+MINVALUE_in11=998
+MAXVALUE_in11=1103
+LABEL_in12=PVDDQ_CPU0_CH01
+WARNHI_in12=1284
+WARNLO_in12=1116
+CRITHI_in12=1320
+CRITLO_in12=1080
+MINVALUE_in12=1140
+MAXVALUE_in12=1260
+LABEL_in13=PVDDQ_CPU0_CH67
+WARNHI_in13=1284
+WARNLO_in13=1116
+CRITHI_in13=1320
+CRITLO_in13=1080
+MINVALUE_in13=1140
+MAXVALUE_in13=1260
+LABEL_in14=PVDDQ_CPU1_CH01
+WARNHI_in14=1284
+WARNLO_in14=1116
+CRITHI_in14=1320
+CRITLO_in14=1080
+MINVALUE_in14=1140
+MAXVALUE_in14=1260
+LABEL_in15=PVDDQ_CPU1_CH67
+WARNHI_in15=1284
+WARNLO_in15=1116
+CRITHI_in15=1320
+CRITLO_in15=1080
+MINVALUE_in15=1140
+MAXVALUE_in15=1260
+
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
new file mode 100644
index 000000000..a2aeb2c6c
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append_fp5280g2= " --enable-negative-errno-on-fail"
+
+CHIPS = " \
+ bus@1e78a000/i2c-bus@c0/tmp112@48 \
+ bus@1e78a000/i2c-bus@c0/tmp112@49 \
+ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@0/tmp112@4a \
+ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@1/tmp112@4a \
+ bus@1e78a000/i2c-bus@c0/i2c-switch@70/i2c@2/tmp112@4a \
+ pwm-tacho-controller@1e786000 \
+ "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"
+ITEMS += "iio-hwmon.conf iio-hwmon-battery.conf"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"
diff --git a/meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json b/meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json
index b02709ec2..0809fe6d3 100644
--- a/meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json
@@ -2,45 +2,40 @@
"gpio_configs": {
"power_config": {
- "power_good_in": "PGOOD",
+ "power_good_in": "CPLD_BMC_SYS_PWROK",
"power_up_outs": [
- {"name": "POWER_UP_PIN", "polarity": true}
+ { "name": "BMC_CPLD_SOFTWARE_PG_N", "polarity": false},
+ { "name": "BMC_CPLD_SYS_PWRON", "polarity": false}
],
"reset_outs": [
- {"name": "RESET_OUT", "polarity": false}
]
}
},
"gpio_definitions": [
{
- "name": "PGOOD",
- "pin": "AB3",
- "direction": "in"
- },
- {
- "name": "POWER_BUTTON",
- "pin": "E2",
- "direction": "both"
+ "name": "BMC_CPLD_SOFTWARE_PG_N",
+ "pin": "J3",
+ "direction": "out"
},
{
- "name": "POWER_UP_PIN",
- "pin": "E3",
+ "name": "BMC_CPLD_SYS_PWRON",
+ "pin": "AA7",
"direction": "out"
},
{
- "name": "RESET_BUTTON",
- "pin": "E0",
- "direction": "both"
+ "name": "CPLD_BMC_SYS_PWROK",
+ "pin": "AA1",
+ "direction": "in"
},
{
- "name": "RESET_OUT",
- "pin": "E1",
- "direction": "out"
+ "name": "POWER_BUTTON",
+ "pin": "AA6",
+ "direction": "both"
},
{
- "name": "ID_BUTTON",
- "pin": "S6",
+ "name": "RESET_BUTTON",
+ "pin": "AB0",
"direction": "both"
}
]
diff --git a/meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend b/meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend
new file mode 100644
index 000000000..27e7cf9cf
--- /dev/null
+++ b/meta-inspur/meta-fp5280g2/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend
@@ -0,0 +1 @@
+FILESEXTRAPATHS_prepend_fp5280g2 := "${THISDIR}/${PN}:"
diff --git a/meta-inspur/meta-on5263m5/conf/layer.conf b/meta-inspur/meta-on5263m5/conf/layer.conf
index 93db95c5c..b49d300bf 100644
--- a/meta-inspur/meta-on5263m5/conf/layer.conf
+++ b/meta-inspur/meta-on5263m5/conf/layer.conf
@@ -6,7 +6,5 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "on5263m5-layer"
-BBFILE_PATTERN_on5263m5-layer = ""
-BBFILE_PRIORITY_on5263m5-layer = "5"
-LAYERSERIES_COMPAT_on5263m5-layer = "sumo"
-
+BBFILE_PATTERN_on5263m5-layer = "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_on5263m5-layer = "thud warrior"
diff --git a/meta-inspur/meta-on5263m5/conf/machine/on5263m5.conf b/meta-inspur/meta-on5263m5/conf/machine/on5263m5.conf
index ba8ce1067..1c217913e 100644
--- a/meta-inspur/meta-on5263m5/conf/machine/on5263m5.conf
+++ b/meta-inspur/meta-on5263m5/conf/machine/on5263m5.conf
@@ -3,10 +3,14 @@ KERNEL_DEVICETREE = "${KMACHINE}-bmc-inspur-${MACHINE}.dtb"
require conf/machine/include/ast2500.inc
require conf/machine/include/obmc-bsp-common.inc
-require conf/machine/include/inspur.inc
+
+PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-inspur-apps"
+PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-inspur-apps"
+PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-inspur-apps"
+PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-inspur-apps"
+PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
UBOOT_MACHINE = "ast_g5_phy_config"
FLASH_SIZE = "32768"
-VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config"
diff --git a/meta-inspur/meta-common/recipes-inspur/inspur-uuid/inspur-uuid_git.bb b/meta-inspur/meta-on5263m5/recipes-inspur/inspur-uuid/inspur-uuid_git.bb
index 2174da950..2174da950 100644
--- a/meta-inspur/meta-common/recipes-inspur/inspur-uuid/inspur-uuid_git.bb
+++ b/meta-inspur/meta-on5263m5/recipes-inspur/inspur-uuid/inspur-uuid_git.bb
diff --git a/meta-inspur/meta-common/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb b/meta-inspur/meta-on5263m5/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb
index 517b9eb77..517b9eb77 100644
--- a/meta-inspur/meta-common/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb
+++ b/meta-inspur/meta-on5263m5/recipes-inspur/packagegroups/packagegroup-inspur-apps.bb
diff --git a/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config.bb b/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config.bb
deleted file mode 100644
index 1b6e926b9..000000000
--- a/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Inspur On5263 board wiring"
-DESCRIPTION = "Board wiring information for the On5263 system."
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${INSPURBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
-
-inherit allarch
-inherit setuptools
-inherit pythonnative
-
-PROVIDES += "virtual/obmc-inventory-data"
-RPROVIDES_${PN} += "virtual-obmc-inventory-data"
-
-DEPENDS += "python"
-
-S = "${WORKDIR}"
-SRC_URI += "file://On5263m5.py"
-
-# the following is unnecessary.
-python() {
- machine = d.getVar('MACHINE', True).capitalize() + '.py'
- d.setVar('_config_in_skeleton', machine)
-}
-
-do_make_setup() {
- cp ${S}/${_config_in_skeleton} \
- ${S}/obmc_system_config.py
- cat <<EOF > ${S}/setup.py
-from distutils.core import setup
-
-setup(name='${BPN}',
- version='${PR}',
- py_modules=['obmc_system_config'],
- )
-EOF
-}
-
-addtask make_setup after do_patch before do_configure
diff --git a/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config/On5263m5.py b/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config/On5263m5.py
deleted file mode 100644
index ca7cb2098..000000000
--- a/meta-inspur/meta-on5263m5/recipes-phosphor/workbook/on5263m5-config/On5263m5.py
+++ /dev/null
@@ -1,48 +0,0 @@
-## System states
-## state can change to next state in 2 ways:
-## - a process emits a GotoSystemState signal with state name to goto
-## - objects specified in EXIT_STATE_DEPEND have started
-SYSTEM_STATES = [
- 'BASE_APPS',
- 'BMC_STARTING',
- 'BMC_READY',
- 'HOST_POWERING_ON',
- 'HOST_POWERED_ON',
- 'HOST_BOOTING',
- 'HOST_BOOTED',
- 'HOST_POWERED_OFF',
-]
-
-EXIT_STATE_DEPEND = {
- 'BASE_APPS' : {
- '/xyz/openbmc_poroject/sensors': 0,
- },
- 'BMC_STARTING' : {
- '/xyz/openbmc_project/control/chassis0': 0,
- },
-}
-
-FRU_INSTANCES = {}
-
-# I believe these numbers need to match the yaml file used to create the c++ ipmi map.
-# the devices have types, but I don't believe that factors in here, I think these are
-# just unique IDs.
-ID_LOOKUP = {
- 'FRU' : {},
- # The number at the end needs to match the FRU ID.
- # https://github.com/openbmc/skeleton/blob/master/pysystemmgr/system_manager.py#L143
- # The parameter for it is of type 'y' (unsigned 8-bit integer) presumably decimal?
- 'FRU_STR' : {},
- 'SENSOR' : {},
- 'GPIO_PRESENT' : {}
-}
-
-GPIO_CONFIG = {}
-HWMON_CONFIG = {}
-GPIO_CONFIGS = {}
-
-# Miscellaneous non-poll sensor with system specific properties.
-# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
-MISC_SENSORS = {}
-
-# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb b/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
index 139be0251..abbb06c81 100755
--- a/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
+++ b/meta-intel/meta-common/recipes-intel/ipmi/intel-ipmi-oem_git.bb
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6a4edad4aed50f39a66d098d74b265b"
SRC_URI = "git://github.com/openbmc/intel-ipmi-oem"
-SRCREV = "b1cc61d2a0f0d36169915349476e96b006d058a5"
+SRCREV = "529d415fec12ae7b8981f1a4806722552ad67ebf"
S = "${WORKDIR}/git"
PV = "0.1+git${SRCPV}"
diff --git a/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces_git.bb b/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces_git.bb
index d91edde40..76fb67dc3 100644
--- a/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces_git.bb
+++ b/meta-intel/meta-common/recipes-phosphor/dbus/intel-dbus-interfaces_git.bb
@@ -15,7 +15,7 @@ DEPENDS += "autoconf-archive-native"
DEPENDS += "sdbus++-native"
SRC_URI = "git://github.com/openbmc/intel-dbus-interfaces"
-SRCREV = "2b8f89f5876c5a97a34cdf922729d4283d5f2627"
+SRCREV = "b5f2dd444c5d3808d005452417e4ae2ea28624ff"
DEPENDS_remove_class-native = "sdbus++-native"
DEPENDS_remove_class-nativesdk = "sdbus++-native"
diff --git a/meta-lenovo/COPYING.BSD b/meta-lenovo/COPYING.BSD
new file mode 100644
index 000000000..513ea9922
--- /dev/null
+++ b/meta-lenovo/COPYING.BSD
@@ -0,0 +1,11 @@
+Copyright © 2019-present Lenovo
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-lenovo/COPYING.GPL b/meta-lenovo/COPYING.GPL
new file mode 100644
index 000000000..c9cd1233c
--- /dev/null
+++ b/meta-lenovo/COPYING.GPL
@@ -0,0 +1,127 @@
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Programs
+If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+one line to give the program's name and an idea of what it does.
+Copyright (C) yyyy name of author
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'. This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c'
+for details.
+The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written
+by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.
+
diff --git a/meta-lenovo/COPYING.MIT b/meta-lenovo/COPYING.MIT
new file mode 100644
index 000000000..96449462b
--- /dev/null
+++ b/meta-lenovo/COPYING.MIT
@@ -0,0 +1,20 @@
+Copyright © 2019 – present Lenovo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/meta-lenovo/LICENSE b/meta-lenovo/LICENSE
new file mode 100644
index 000000000..b182e4019
--- /dev/null
+++ b/meta-lenovo/LICENSE
@@ -0,0 +1,14 @@
+Different components of meta-lenovo are under different licenses (a mix
+of MIT, GPL version 2 and BSD-3 license). Please see:
+
+COPYING.GPL
+COPYING.MIT
+COPYING.BSD
+
+All metadata is license under an MIT licensed unless otherwise stated. Source code included in tree for individual recipes is under the LICENSE stated in
+the associated recipe (.bb file) unless otherwise stated.
+
+License information for any other files is either explicitly stated
+or defaults to BSD license.
+
+The software code or recipe (.bb file) developed by Lenovo in the meta-lenovo folder, the licenses use BSD license.
diff --git a/meta-lenovo/README.md b/meta-lenovo/README.md
new file mode 100644
index 000000000..723fde2d4
--- /dev/null
+++ b/meta-lenovo/README.md
@@ -0,0 +1 @@
+# meta-lenovo \ No newline at end of file
diff --git a/meta-lenovo/conf/layer.conf b/meta-lenovo/conf/layer.conf
new file mode 100644
index 000000000..30d2bbc8e
--- /dev/null
+++ b/meta-lenovo/conf/layer.conf
@@ -0,0 +1,18 @@
+#"Copyright ? 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/meta-common/recipes-*/*/*.bb \
+ ${LAYERDIR}/meta-common/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "lenovo-layer"
+BBFILE_PATTERN_lenovo-layer = ""
+LAYERVERSION_lenovo-layer = "1"
+LAYERSERIES_COMPAT_lenovo-layer = "thud warrior"
+
+# Provide a variable that points the base of the lenovo layer.
+LENOVOBASE = '${@os.path.normpath("${LAYERDIR}/")}'
diff --git a/meta-lenovo/conf/machine/include/lenovo.inc b/meta-lenovo/conf/machine/include/lenovo.inc
new file mode 100644
index 000000000..9ae182a76
--- /dev/null
+++ b/meta-lenovo/conf/machine/include/lenovo.inc
@@ -0,0 +1,14 @@
+#"Copyright ? 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+OBMC_MACHINE_FEATURES += "\
+ obmc-phosphor-fan-mgmt \
+ obmc-phosphor-chassis-mgmt \
+ obmc-phosphor-flash-mgmt \
+ obmc-host-ipmi \
+ obmc-host-state-mgmt \
+ obmc-chassis-state-mgmt \
+ obmc-bmc-state-mgmt \
+ "
+
+VIRTUAL-RUNTIME_skeleton_workbook = "${MACHINE}-config"
diff --git a/meta-lenovo/meta-common/recipes-lenovo/packagegroups/packagegroup-lenovo-apps.bb b/meta-lenovo/meta-common/recipes-lenovo/packagegroups/packagegroup-lenovo-apps.bb
new file mode 100644
index 000000000..9defef22a
--- /dev/null
+++ b/meta-lenovo/meta-common/recipes-lenovo/packagegroups/packagegroup-lenovo-apps.bb
@@ -0,0 +1,58 @@
+#"Copyright ? 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+SUMMARY = "OpenBMC for Lenovo - Applications"
+PR = "r1"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = " \
+ ${PN}-chassis \
+ ${PN}-fans \
+ ${PN}-flash \
+ ${PN}-system \
+ "
+
+PROVIDES += "virtual/obmc-chassis-mgmt"
+PROVIDES += "virtual/obmc-fan-mgmt"
+PROVIDES += "virtual/obmc-flash-mgmt"
+PROVIDES += "virtual/obmc-system-mgmt"
+
+RPROVIDES_${PN}-chassis += "virtual-obmc-chassis-mgmt"
+RPROVIDES_${PN}-fans += "virtual-obmc-fan-mgmt"
+RPROVIDES_${PN}-flash += "virtual-obmc-flash-mgmt"
+RPROVIDES_${PN}-system += "virtual-obmc-system-mgmt"
+
+SUMMARY_${PN}-chassis = "Lenovo Chassis"
+RDEPENDS_${PN}-chassis = " \
+ obmc-control-chassis \
+ obmc-op-control-power \
+ lenovo-powerctrl \
+ "
+
+SUMMARY_${PN}-fans = "Lenovo Fans"
+RDEPENDS_${PN}-fans = " \
+ obmc-control-fan \
+ "
+
+SUMMARY_${PN}-flash = "Lenovo Flash"
+RDEPENDS_${PN}-flash = " \
+ obmc-flash-bmc \
+ obmc-mgr-download \
+ obmc-control-bmc \
+ "
+
+SUMMARY_${PN}-system = "Lenovo System"
+RDEPENDS_${PN}-system = " \
+ ipmitool \
+ tree \
+ obmc-pydevtools \
+ spitools \
+ bmcweb \
+ entity-manager \
+ phosphor-webui \
+ google-ipmi-sys \
+ phosphor-ipmi-ethstats \
+ uart-routing \
+ "
diff --git a/meta-lenovo/meta-hr630/conf/bblayers.conf.sample b/meta-lenovo/meta-hr630/conf/bblayers.conf.sample
new file mode 100644
index 000000000..5ecfeada5
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/bblayers.conf.sample
@@ -0,0 +1,22 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-x86 \
+ ##OEROOT##/meta-google \
+ ##OEROOT##/meta-lenovo \
+ ##OEROOT##/meta-lenovo/meta-hr630 \
+"
diff --git a/meta-lenovo/meta-hr630/conf/conf-notes.txt b/meta-lenovo/meta-hr630/conf/conf-notes.txt
new file mode 100644
index 000000000..c0087e2a7
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/conf-notes.txt
@@ -0,0 +1,5 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-lenovo/meta-hr630/conf/distro/openbmc-hr630.conf b/meta-lenovo/meta-hr630/conf/distro/openbmc-hr630.conf
new file mode 100644
index 000000000..f736653df
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/distro/openbmc-hr630.conf
@@ -0,0 +1,7 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+require conf/distro/include/phosphor-base.inc
+
+DISTRO_NAME = "Lenovo Hr630 OpenBMC"
+DISTRO_VERSION = "0.1.2"
diff --git a/meta-lenovo/meta-hr630/conf/layer.conf b/meta-lenovo/meta-hr630/conf/layer.conf
new file mode 100644
index 000000000..2cec8b572
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/layer.conf
@@ -0,0 +1,14 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+# 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 += "hr630-layer"
+BBFILE_PATTERN_hr630-layer = ""
+BBFILE_PRIORITY_hr630-layer = "5"
+LAYERSERIES_COMPAT_hr630-layer = "thud warrior"
diff --git a/meta-lenovo/meta-hr630/conf/local.conf.sample b/meta-lenovo/meta-hr630/conf/local.conf.sample
new file mode 100644
index 000000000..3e24b3ff1
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/local.conf.sample
@@ -0,0 +1,23 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+MACHINE ??= "hr630"
+DISTRO ?= "openbmc-hr630"
+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-lenovo/meta-hr630/conf/machine/hr630.conf b/meta-lenovo/meta-hr630/conf/machine/hr630.conf
new file mode 100644
index 000000000..04080de3d
--- /dev/null
+++ b/meta-lenovo/meta-hr630/conf/machine/hr630.conf
@@ -0,0 +1,25 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-lenovo-${MACHINE}.dtb"
+
+UBOOT_MACHINE = "ast_g5_phy_config"
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/lenovo.inc
+
+FLASH_SIZE = "32768"
+
+PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "hr630-led-manager-config-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-sensor-inventory = "hr630-ipmi-sensor-inventory-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "hr630-ipmi-fru-read-inventory-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "hr630-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-properties = "hr630-ipmi-fru-properties-native"
+PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-lenovo-apps"
+PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-lenovo-apps"
+PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-lenovo-apps"
+PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-lenovo-apps"
+PREFERRED_PROVIDER_virtual/obmc-inventory-data ?= "${VIRTUAL-RUNTIME_skeleton_workbook}"
diff --git a/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed/hr630.cfg b/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed/hr630.cfg
new file mode 100644
index 000000000..7f8d07b5e
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed/hr630.cfg
@@ -0,0 +1,16 @@
+//"Copyright (c) 2019-present Lenovo
+//Licensed under GPL v2, see COPYING file for details."
+
+CONFIG_I2C_MUX=y
+CONFIG_I2C_MUX_PCA9541=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_SENSORS_ASPEED=y
+CONFIG_SENSORS_TMP421=y
+CONFIG_ASPEED_ADC=y
+CONFIG_SENSORS_IIO_HWMON=y
+CONFIG_I2C_SLAVE=y
+CONFIG_PMBUS=y
+CONFIG_SPI=y
+CONFIG_SENSORS_MAX31790=y
+CONFIG_EEPROM_AT24=y
+CONFIG_DEVMEM=y
diff --git a/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..d4d8b818a
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,5 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+FILESEXTRAPATHS_prepend_hr630 := "${THISDIR}/${PN}:"
+SRC_URI_append_hr630 = " file://hr630.cfg"
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config-native.bb b/meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config-native.bb
new file mode 100644
index 000000000..e3efa3d6d
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config-native.bb
@@ -0,0 +1,21 @@
+#"Copyright (c) 2019-present Lenovo"
+
+SUMMARY = "Phosphor LED Group Management for hr630"
+PR = "r1"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${LENOVOBASE}/COPYING.BSD;md5=efc72ac5d37ea632ccf0001f56126210"
+
+inherit native
+inherit obmc-phosphor-utils
+
+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-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config/led.yaml b/meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config/led.yaml
new file mode 100644
index 000000000..b8b9ff620
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/leds/hr630-led-manager-config/led.yaml
@@ -0,0 +1,14 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+bmc_booted:
+ heartbeat:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+
+enclosure_fault:
+ fault:
+ Action: 'On'
+ DutyOn: 50
+ Period: 0
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/network/phosphor-network_%.bbappend b/meta-lenovo/meta-hr630/recipes-phosphor/network/phosphor-network_%.bbappend
new file mode 100644
index 000000000..ac2c4ccd3
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/network/phosphor-network_%.bbappend
@@ -0,0 +1,6 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+FILESEXTRAPATHS_prepend_hr630 := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append_hr630 = "--disable-link-local-autoconfiguration"
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@40/tmp75@4e.conf b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@40/tmp75@4e.conf
new file mode 100644
index 000000000..ef316c193
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@40/tmp75@4e.conf
@@ -0,0 +1,8 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+LABEL_temp1 = "inlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@80/tmp75@4d.conf b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@80/tmp75@4d.conf
new file mode 100644
index 000000000..98ed39b49
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/bus@1e78a000/i2c-bus@80/tmp75@4d.conf
@@ -0,0 +1,8 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
new file mode 100644
index 000000000..d91006d54
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/pwm-tacho-controller@1e786000.conf
@@ -0,0 +1,33 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+# hr630x has 14 fan ports
+LABEL_fan1 = "fan1"
+LABEL_fan2 = "fan2"
+LABEL_fan3 = "fan3"
+LABEL_fan4 = "fan4"
+LABEL_fan5 = "fan5"
+LABEL_fan6 = "fan6"
+LABEL_fan7 = "fan7"
+LABEL_fan8 = "fan8"
+LABEL_fan9 = "fan9"
+LABEL_fan10 = "fan10"
+LABEL_fan11 = "fan11"
+LABEL_fan12 = "fan12"
+LABEL_fan13 = "fan13"
+LABEL_fan14 = "fan14"
+
+PWM_TARGET_fan1 = "1"
+PWM_TARGET_fan2 = "1"
+PWM_TARGET_fan3 = "2"
+PWM_TARGET_fan4 = "2"
+PWM_TARGET_fan5 = "3"
+PWM_TARGET_fan6 = "3"
+PWM_TARGET_fan7 = "4"
+PWM_TARGET_fan8 = "4"
+PWM_TARGET_fan9 = "5"
+PWM_TARGET_fan10 = "5"
+PWM_TARGET_fan11 = "6"
+PWM_TARGET_fan12 = "6"
+PWM_TARGET_fan13 = "7"
+PWM_TARGET_fan14 = "7"
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf
new file mode 100644
index 000000000..299d23698
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon.conf
@@ -0,0 +1,25 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+LABEL_in1=P12V_AUX
+GAIN_in1=8.90
+LABEL_in2=P5V_AUX
+GAIN_in2=3.68
+LABEL_in3=P3V3_AUX
+GAIN_in3=2.47
+LABEL_in4=P1V8_PCH_AUX
+GAIN_in4=1.50
+LABEL_in5=PVNN_PCH_AUX
+LABEL_in6=P1V05_PCH_AUX
+LABEL_in7=P1V2_DDR_BMC
+LABEL_in8=P1V15_BMC
+LABEL_in9=PVCCIO_CPU2
+LABEL_in10=PVCCIO_CPU1
+LABEL_in11=P12V_STBY
+GAIN_in11=8.90
+LABEL_in12=P12V
+GAIN_in12=8.90
+LABEL_in13=P5V
+GAIN_in13=3.68
+LABEL_in14=P3V3
+GAIN_in14=2.47
diff --git a/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
new file mode 100644
index 000000000..507954d49
--- /dev/null
+++ b/meta-lenovo/meta-hr630/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
@@ -0,0 +1,18 @@
+#"Copyright (c) 2019-present Lenovo
+#Licensed under BSD-3, see COPYING.BSD file for details."
+
+FILESEXTRAPATHS_prepend_hr630 := "${THISDIR}/${PN}:"
+EXTRA_OECONF_append_hr630 = " --enable-negative-errno-on-fail"
+
+CHIPS = " \
+ bus@1e78a000/i2c-bus@40/tmp75@4e \
+ bus@1e78a000/i2c-bus@80/tmp75@4d \
+ pwm-tacho-controller@1e786000 \
+ "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'CHIPS')}"
+ITEMS += "iio-hwmon.conf"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}_append_hr630 := "${@compose_list(d, 'ENVS', 'ITEMS')}"
diff --git a/meta-nuvoton/conf/machine/include/npcm7xx.inc b/meta-nuvoton/conf/machine/include/npcm7xx.inc
index 3d8847dc4..0a154678d 100644
--- a/meta-nuvoton/conf/machine/include/npcm7xx.inc
+++ b/meta-nuvoton/conf/machine/include/npcm7xx.inc
@@ -11,6 +11,17 @@ UBOOT_MACHINE ?= "PolegSVB_config"
UBOOT_ENTRYPOINT ?= "0x00008000"
UBOOT_LOADADDRESS ?= "0x00008000"
+FLASH_UBOOT_OFFSET = "0"
+FLASH_UBOOT_ENV_OFFSET = "1024"
+FLASH_KERNEL_OFFSET = "2048"
+FLASH_UBI_OFFSET = "${FLASH_KERNEL_OFFSET}"
+FLASH_ROFS_OFFSET = "7680"
+FLASH_RWFS_OFFSET = "30720"
+
+# UBI volume sizes in KB unless otherwise noted.
+FLASH_UBI_RWFS_SIZE = "6144"
+FLASH_UBI_RWFS_TXT_SIZE = "6MiB"
+
DEFAULTTUNE ?= "arm7a-novfp"
SERIAL_CONSOLES = "115200;ttyS3"
diff --git a/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml b/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml
new file mode 100644
index 000000000..03deb3026
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/files/BootBlockAndHeader_EB.xml
@@ -0,0 +1,276 @@
+<!-- SPDX-License-Identifier: GPL-2.0
+#
+# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
+#
+# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
+#--------------------------------------------------------------------------->
+
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Bin_Ecc_Map>
+ <!-- BMC mandatory fields -->
+ <ImageProperties>
+ <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
+ <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
+ </ImageProperties>
+
+ <BinField>
+ <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
+ uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
+ <name>StartTag</name> <!-- name of field -->
+ <config>
+ <offset>0</offset>
+ <size>0x8</size>
+ </config>
+ <content format='bytes'>0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Code destination address, 32-bit aligned: for BootBlock should be 0xFFFD5E00 so code will run in 0xFFFD6000 as linked for -->
+ <name>DestAddr</name> <!-- name of field -->
+ <config>
+ <offset>0x140</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0xFFFD5E00</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- BootBlock or u-boot Code size -->
+ <name>CodeSize</name> <!-- name of field -->
+ <config>
+ <offset>0x144</offset>
+ <size>0x4</size>
+ </config>
+ <content format='FileSize'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- The BootBlock or u-boot binary file -->
+ <name>Code</name> <!-- name of field -->
+ <config>
+ <offset>0x200</offset>
+ <size format='FileSize'>Poleg_bootblock.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+ <content format='FileContent'>Poleg_bootblock.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+ <BinField>
+ <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
+ <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
+ <config>
+ <offset>0x108</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x030011BB</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
+ <name>FIU_Clk_Divider</name> <!-- name of field -->
+ <config>
+ <offset>0x10C</offset>
+ <size>0x1</size>
+ </config>
+ <content format='bytes'>4</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Version (Major.Minor) -->
+ <name>Version</name> <!-- name of field -->
+ <config>
+ <offset>0x148</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x0201</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Board manufaturer ( Dell = 0, Nuvoton = 100, Google = 1, MS = 2) -->
+ <name>BOARD_VENDOR</name> <!-- name of field -->
+ <config>
+ <offset>0x14C</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>100</content> <!--Board_manufacturer: Nuvoton-->
+ </BinField>
+ <BinField>
+ <!-- Board type ( DRB = 0, SVB = 1, EB = 2,HORIZON = 3, SANDSTORM = 4, ROCKAWAY = 100 RunBMC = 10) -->
+ <!-- WARNING: Currently this value is only printed to serial. Set BOARD_VENDOR to 1 get Dell specific customization. -->
+ <name>BOARD_TYPE</name> <!-- name of field -->
+ <config>
+ <offset>0x150</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x02</content> <!--Board_type: EB-->
+ </BinField>
+
+ <!-- the next two fields are available since version 10.7.0 -->
+ <BinField>
+ <!-- supported values: 333,444,500,600,666,700,720,750,775,787,800,825,850,900,950,1000,1060 -->
+ <name>MC_FREQ_IN_MHZ</name> <!-- name of field -->
+ <config>
+ <offset>0x11C</offset>
+ <size>0x2</size>
+ </config>
+ <content format='32bit'>800</content>
+ </BinField>
+ <BinField>
+ <!-- supporeted values: 333,500,600,666,700,720,750,800,825,850,900,950,1000,1060 -->
+ <name>CPU_FREQ_IN_MHZ</name> <!-- name of field -->
+ <config>
+ <offset>0x154</offset>
+ <size>0x2</size>
+ </config>
+ <content format='32bit'>800</content>
+ </BinField>
+
+ <BinField>
+ <!-- MC_CONFIG.
+ Bit 0: MC_DISABLE_CAPABILITY_INPUT_DQS_ENHANCE_TRAINING (0x01)
+ Bit 1: MC_CAPABILITY_IGNORE_ECC_DEVICE (0x02) -->
+ <name>MC_CONFIG</name> <!-- name of field -->
+ <config>
+ <offset>0x156</offset>
+ <size>0x1</size>
+ </config>
+ <content format='32bit'>0x00</content>
+ </BinField>
+
+ <BinField>
+ <!-- HOST_IF.
+ 0xFF: LPC backward compatible
+ 0x00: LPC.
+ 0x01: eSPI
+ 0x02: GPIOs TRIS. -->
+ <name>HOST_IF</name> <!-- name of field -->
+ <config>
+ <offset>0x157</offset>
+ <size>0x1</size>
+ </config>
+ <content format='32bit'>0x00</content>
+ </BinField>
+
+ <BinField>
+ <!-- SECURITY_LEVEL_T.
+ 0xFF: SECURITY_LEVEL_UNKNOWN: backward compatible
+ 0x00: SECURITY_LEVEL_NONE.
+ 0x01: SECURITY_LEVEL_STANDARD
+ 0x02: SECURITY_LEVEL_NIST. (require BootBlock with NIST support) -->
+ <name>SECURITY_LEVEL_T</name> <!-- name of field -->
+ <config>
+ <offset>0x15C</offset>
+ <size>0x1</size>
+ </config>
+ <content format='32bit'>0xFF</content>
+ </BinField>
+
+ <BinField>
+ <!-- Key revoke (bitwise). Set bit 0 to revoke key 0 etc. -->
+ <name>SECURITY_REVOKE_KEYS</name> <!-- name of field -->
+ <config>
+ <offset>0x1D7</offset>
+ <size>0x1</size>
+ </config>
+ <content format='bytes'>0x00</content>
+ </BinField>
+
+ <BinField>
+ <!-- security log offset -->
+ <name>SECURITY_LOG</name> <!-- name of field -->
+ <config>
+ <offset>0x1D8</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x090000</content>
+ </BinField>
+ <BinField>
+ <!-- hole 0 size: used for NIST security. -->
+ <name>SECURITY_LOG_SIZE</name> <!-- name of field -->
+ <config>
+ <offset>0x1DC</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x3000</content>
+ </BinField>
+
+
+ <BinField>
+ <!-- hole 0: used for NIST security. -->
+ <name>HOLE0</name> <!-- name of field -->
+ <config>
+ <offset>0x1E0</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0x0A0000</content>
+ </BinField>
+ <BinField>
+ <!-- hole 0 size: used for NIST security. -->
+ <name>HOLE0_SIZE</name> <!-- name of field -->
+ <config>
+ <offset>0x1E4</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0xF70000</content>
+ </BinField>
+
+ <BinField>
+ <!-- hole 1: used for NIST security. -->
+ <name>HOLE1</name> <!-- name of field -->
+ <config>
+ <offset>0x1E8</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0</content>
+ </BinField>
+ <BinField>
+ <!-- hole 1 size: used for NIST security. -->
+ <name>HOLE1_SIZE</name> <!-- name of field -->
+ <config>
+ <offset>0x1EC</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0</content>
+ </BinField>
+
+
+ <BinField>
+ <!-- hole 2: used for NIST security. -->
+ <name>HOLE2</name> <!-- name of field -->
+ <config>
+ <offset>0x1F0</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0xFFFFFFFF</content>
+ </BinField>
+ <BinField>
+ <!-- hole 2 size: used for NIST security. -->
+ <name>HOLE2_SIZE</name> <!-- name of field -->
+ <config>
+ <offset>0x1F4</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0</content>
+ </BinField>
+
+ <BinField>
+ <!-- hole 3: used for NIST security. -->
+ <name>HOLE3</name> <!-- name of field -->
+ <config>
+ <offset>0x1F8</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0</content>
+ </BinField>
+ <BinField>
+ <!-- hole 3 size: used for NIST security. -->
+ <name>HOLE3_SIZE</name> <!-- name of field -->
+ <config>
+ <offset>0x1FC</offset>
+ <size>0x4</size>
+ </config>
+ <content format='32bit'>0</content>
+ </BinField>
+
+</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml b/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml
new file mode 100644
index 000000000..2e648599b
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/files/UbootHeader_EB.xml
@@ -0,0 +1,194 @@
+<!-- SPDX-License-Identifier: GPL-2.0
+#
+# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
+#
+# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
+#--------------------------------------------------------------------------->
+
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Bin_Ecc_Map>
+ <!-- BMC mandatory fields -->
+ <ImageProperties>
+ <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
+ <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
+ </ImageProperties>
+
+ <BinField>
+ <!-- BootBlock tag (0x50 0x07 0x55 0xAA 0x54 0x4F 0x4F 0x42) or
+ uboot tag (0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B) -->
+ <name>StartTag</name> <!-- name of field -->
+ <config>
+ <offset>0</offset> <!-- offset in the header -->
+ <size>0x8</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x55 0x42 0x4F 0x4F 0x54 0x42 0x4C 0x4B</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Code destination address, 32-bit aligned: for u-boot should be 0x80005000 so code will run in 0x80005200 as linked for -->
+ <name>DestAddr</name> <!-- name of field -->
+ <config>
+ <offset>0x140</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0x8000</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- BootBlock or u-boot Code size -->
+ <name>CodeSize</name> <!-- name of field -->
+ <config>
+ <offset>0x144</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='FileSize'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- The BootBlock or u-boot binary file -->
+ <name>Code</name> <!-- name of field -->
+ <config>
+ <offset>0x200</offset> <!-- offset in the header -->
+ <size format='FileSize'>u-boot.bin</size> <!-- size in the header calculated by tool-->
+ </config>
+ <content format='FileContent'>u-boot.bin</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+ <BinField>
+ <!-- Word contents copied by ROM code to FIU0 FIU_DRD_CFG register -->
+ <name>FIU0_DRD_CFG_Set</name> <!-- name of field -->
+ <config>
+ <offset>0x108</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0x030111BC</content> <!-- content the user should fill 0x030032EB -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines the clock divide ratio from AHB to FIU0 clock -->
+ <name>FIU0_Clk_Divider</name> <!-- name of field -->
+ <config>
+ <offset>0x10C</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines if FIU0 CS1 is enabled -->
+ <name>fiu0_cs1_en</name> <!-- name of field -->
+ <config>
+ <offset>0x10D</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines if FIU0 CS2 is enabled -->
+ <name>fiu0_cs2_en</name> <!-- name of field -->
+ <config>
+ <offset>0x10E</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines if FIU0 CS3 is enabled -->
+ <name>fiu0_cs3_en</name> <!-- name of field -->
+ <config>
+ <offset>0x10F</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+ <BinField>
+ <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
+ <name>FIU3_DRD_CFG_Set</name> <!-- name of field -->
+ <config>
+ <offset>0x110</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+ <BinField>
+ <!-- Word contents copied by ROM code to FIU3 FIU_DRD_CFG register -->
+ <name>FIU3_DWR_CFG_Set</name> <!-- name of field -->
+ <config>
+ <offset>0x114</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines the clock divide ratio from AHB to FIU3 clock -->
+ <name>FIU3_Clk_Divider</name> <!-- name of field -->
+ <config>
+ <offset>0x118</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+
+ <BinField>
+ <!-- Defines if FIU3 CS1 is enabled -->
+ <name>fiu3_cs1_en</name> <!-- name of field -->
+ <config>
+ <offset>0x119</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines if FIU3 CS2 is enabled -->
+ <name>fiu3_cs2_en</name> <!-- name of field -->
+ <config>
+ <offset>0x11A</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Defines if FIU3 CS3 is enabled -->
+ <name>fiu3_cs3_en</name> <!-- name of field -->
+ <config>
+ <offset>0x11B</offset> <!-- offset in the header -->
+ <size>0x1</size> <!-- size in the header -->
+ </config>
+ <content format='bytes'>0x0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <!-- Version (Major.Minor) -->
+ <name>Version</name> <!-- name of field -->
+ <config>
+ <offset>0x148</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0</content> <!-- content the user should fill -->
+ </BinField>
+
+ <!-- BMC optional fields -->
+ <BinField>
+ <!-- Word contents copied by BB code to FIU0 FIU_DWR_CFG register -->
+ <name>FIU0_DWR_CFG_Set</name> <!-- name of field -->
+ <config>
+ <offset>0x14C</offset> <!-- offset in the header -->
+ <size>0x4</size> <!-- size in the header -->
+ </config>
+ <content format='32bit'>0x03001102</content> <!-- content the user should fill -->
+ </BinField>
+
+
+</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml b/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml
new file mode 100644
index 000000000..03529dcac
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/files/mergedBootBlockAndUboot.xml
@@ -0,0 +1,35 @@
+<!-- SPDX-License-Identifier: GPL-2.0
+#
+# Nuvoton IGPS: Image Generation And Programming Scripts For Poleg BMC
+#
+# Copyright (C) 2018 Nuvoton Technologies, All Rights Reserved
+#--------------------------------------------------------------------------->
+
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Bin_Ecc_Map>
+ <!-- BMC mandatory fields -->
+ <ImageProperties>
+ <BinSize>0</BinSize> <!-- If 0 the binary size will be calculated by the tool -->
+ <PadValue>0xFF</PadValue> <!-- Byte value to pad the empty areas, default is 0 -->
+ </ImageProperties>
+
+ <BinField>
+ <name>BootBlock</name> <!-- name of field -->
+ <config>
+ <offset>0</offset> <!-- offset in the header -->
+ <size format='FileSize'>Poleg_bootblock.bin.full</size> <!-- size in the header -->
+ </config>
+ <content format='FileContent'>Poleg_bootblock.bin.full</content> <!-- content the user should fill -->
+ </BinField>
+
+ <BinField>
+ <name>u-boot</name> <!-- name of field -->
+ <config>
+ <offset format='FileSize' align='0x1000'>Poleg_bootblock.bin.full</offset> <!-- offset in the header -->
+ <size format='FileSize'>u-boot.bin.full</size> <!-- size in the header -->
+ </config>
+ <content format='FileContent'>u-boot.bin.full</content> <!-- content the user should fill -->
+ </BinField>
+
+</Bin_Ecc_Map>
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb
new file mode 100644
index 000000000..1ce19433c
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-bingo-native.bb
@@ -0,0 +1,20 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI += "git://github.com/Nuvoton-Israel/bingo"
+SRC_URI += "file://BootBlockAndHeader_EB.xml"
+SRC_URI += "file://UbootHeader_EB.xml"
+SRC_URI += "file://mergedBootBlockAndUboot.xml"
+
+SRCREV = "4f102ff7851da9fd11965857edd1b3046c187b7a"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+
+ install -d "${D}${bindir}"
+ install deliverables/linux/Release/bingo ${D}${bindir}
+ install ${WORKDIR}/*.xml ${D}${bindir}
+}
+
+inherit native
diff --git a/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb b/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb
new file mode 100644
index 000000000..85b80708d
--- /dev/null
+++ b/meta-nuvoton/recipes-bsp/images/npcm7xx-bootblock.bb
@@ -0,0 +1,19 @@
+LICENSE = "CLOSED"
+LIC_FILES_CHKSUM = ""
+
+SRCREV = "10.09.05"
+FILENAME = "Poleg_bootblock.bin"
+
+SRC_URI = "git://github.com/Nuvoton-Israel/npcm7xx-bootblock;protocol=git"
+SRC_URI[md5sum] = "cf8daa5f4636ed1ff952618e435af028"
+
+S = "${WORKDIR}/git"
+
+inherit deploy
+
+do_deploy () {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${FILENAME} ${DEPLOYDIR}/
+}
+
+addtask deploy before do_build after do_compile
diff --git a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/defconfig b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/defconfig
index e5b6cdf43..207ec6691 100644
--- a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/defconfig
+++ b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton/defconfig
@@ -99,7 +99,11 @@ CONFIG_USB_EDM_KBD_MOUSE=m
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_NPCM750=y
+CONFIG_EDAC=y
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+CONFIG_EDAC_NPCM7XX=y
CONFIG_IIO=y
+CONFIG_RAS=y
CONFIG_NPCM_ADC=y
CONFIG_IIO_MUX=y
CONFIG_MUX_MMIO=y
diff --git a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb
index b0c34a71f..aaef9bca8 100644
--- a/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb
+++ b/meta-nuvoton/recipes-kernel/linux/linux-nuvoton_git.bb
@@ -1,6 +1,6 @@
KBRANCH ?= "dev-5.1"
-LINUX_VERSION ?= "5.1"
+LINUX_VERSION ?= "5.1.7"
-SRCREV="f869c3d0aad419af31719d2eaf6b2e42a6d68109"
+SRCREV="a17b8ac585d7faa27799f425fa4326c7a1e7ae71"
require linux-nuvoton.inc
diff --git a/meta-openbmc-mods/conf/machine/include/intel.inc b/meta-openbmc-mods/conf/machine/include/intel.inc
index 236ccb768..588a71bbf 100644
--- a/meta-openbmc-mods/conf/machine/include/intel.inc
+++ b/meta-openbmc-mods/conf/machine/include/intel.inc
@@ -19,7 +19,7 @@ PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-intel-apps"
PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-intel-apps"
PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-intel-apps"
PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-intel-apps"
-PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host"
+PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= ""
PREFERRED_PROVIDER_virtual/obmc-inventory-data = "entity-manager"
PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native ?= "intel-led-manager-config-native"
#PREFERRED_PROVIDER_virtual/obmc-gpio-monitor ?= "phosphor-gpio-monitor"
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/0001-arm-dts-add-DTS-for-Intel-platforms.patch b/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/0001-arm-dts-add-DTS-for-Intel-platforms.patch
index 978489110..88a9c5624 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/0001-arm-dts-add-DTS-for-Intel-platforms.patch
+++ b/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/0001-arm-dts-add-DTS-for-Intel-platforms.patch
@@ -145,8 +145,8 @@ index 0000000..421699c
+ /*C0-C7*/ "","","","","","","","",
+ /*D0-D7*/ "","","","","","","","",
+ /*E0-E7*/ "RESET_BUTTON","RESET_OUT","POWER_BUTTON","POWER_OUT","","","","",
-+ /*F0-F7*/ "","","","","","","","",
-+ /*G0-G7*/ "","","","","","","","",
++ /*F0-F7*/ "","","","","CPU_ERR0","CPU_ERR1","","",
++ /*G0-G7*/ "CPU_ERR2","CPU_CATERR","","","","","","",
+ /*H0-H7*/ "","","","","","","","",
+ /*I0-I7*/ "","","","","","","","",
+ /*J0-J7*/ "","","","","","","","",
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/intel-ast2500.cfg b/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/intel-ast2500.cfg
index 480d4cc18..155ba3ae4 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/intel-ast2500.cfg
+++ b/meta-openbmc-mods/meta-ast2500/recipes-kernel/linux/linux-aspeed/intel-ast2500.cfg
@@ -52,9 +52,7 @@ CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_HID=y
CONFIG_ASPEED_UART_ROUTING=y
-CONFIG_DEVMEM=y
CONFIG_ASPEED_VGA_SHAREDMEM=y
-CONFIG_DEVMEM_BOOTPARAM=n
CONFIG_PWM=y
CONFIG_PWM_FTTMR010=y
CONFIG_INPUT_MISC=y
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/CYP-baseboard.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/CYP-baseboard.json
index 271881706..2bbaa0238 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/CYP-baseboard.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/CYP-baseboard.json
@@ -289,8 +289,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 9,
- "Name": "PVCCIN_CPU1",
+ "Name": "PVCCIN_CPU2",
"PowerState": "On",
"ScaleFactor": 0.7505,
"Thresholds": [
@@ -322,8 +323,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 10,
- "Name": "PVDQ_ABCD_CPU0",
+ "Name": "PVDQ_ABCD_CPU1",
"PowerState": "On",
"Thresholds": [
{
@@ -354,8 +356,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 11,
- "Name": "PVDQ_EFGH_CPU0",
+ "Name": "PVDQ_EFGH_CPU1",
"PowerState": "On",
"Thresholds": [
{
@@ -386,8 +389,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 12,
- "Name": "PVDQ_ABCD_CPU1",
+ "Name": "PVDQ_ABCD_CPU2",
"PowerState": "On",
"Thresholds": [
{
@@ -418,8 +422,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 13,
- "Name": "PVDQ_EFGH_CPU1",
+ "Name": "PVDQ_EFGH_CPU2",
"PowerState": "On",
"Thresholds": [
{
@@ -450,8 +455,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 14,
- "Name": "PVCCIO_CPU0",
+ "Name": "PVCCIO_CPU1",
"PowerState": "On",
"Thresholds": [
{
@@ -482,8 +488,9 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 15,
- "Name": "PVCCIO_CPU1",
+ "Name": "PVCCIO_CPU2",
"PowerState": "On",
"Thresholds": [
{
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/FCXXPDBASSMBL_PDB.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/FCXXPDBASSMBL_PDB.json
index 22f8b1c6d..84ff6f12f 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/FCXXPDBASSMBL_PDB.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/FCXXPDBASSMBL_PDB.json
@@ -11,7 +11,7 @@
"Address": "0x18",
"Bus": "$bus",
"Name": "Multi Node Presence Detector",
- "Type": "MultiNode"
+ "Type": "MultiNodePresence"
},
{
"Address": "0x48",
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/OPB2RH-Chassis.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/OPB2RH-Chassis.json
index 7b86bfae0..a81329787 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/OPB2RH-Chassis.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/OPB2RH-Chassis.json
@@ -1,8 +1,38 @@
{
"Exposes": [
{
- "Name": "Multi Node Supported",
- "Type": "MultiNode"
+ "Address": "0x56",
+ "Bus": 9,
+ "Class": "MCUTemp",
+ "Name": "PDB MCU Temp",
+ "Reg": "0x22",
+ "Thresholds": [
+ {
+ "Direction": "greater than",
+ "Name": "upper critical",
+ "Severity": 1,
+ "Value": 115
+ },
+ {
+ "Direction": "greater than",
+ "Name": "upper non critical",
+ "Severity": 0,
+ "Value": 110
+ },
+ {
+ "Direction": "less than",
+ "Name": "lower non critical",
+ "Severity": 0,
+ "Value": 5
+ },
+ {
+ "Direction": "less than",
+ "Name": "lower critical",
+ "Severity": 1,
+ "Value": 0
+ }
+ ],
+ "Type": "MCUTempSensor"
}
],
"Name": "OPB2RH Chassis",
@@ -16,4 +46,4 @@
"PartNumber": "R1234",
"SerialNumber": "12345"
}
-} \ No newline at end of file
+}
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/TNP-baseboard.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/TNP-baseboard.json
index 75cd39719..39e101e77 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/TNP-baseboard.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/TNP-baseboard.json
@@ -225,6 +225,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 8,
"Name": "PVCCIN_CPU1",
"PowerState": "On",
@@ -258,6 +259,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 9,
"Name": "PVCCIN_CPU2",
"PowerState": "On",
@@ -291,6 +293,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 14,
"Name": "PVCCIO_CPU1",
"PowerState": "On",
@@ -323,6 +326,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 15,
"Name": "PVCCIO_CPU2",
"PowerState": "On",
@@ -355,6 +359,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 10,
"Name": "PVDQ_ABCD_CPU1",
"PowerState": "On",
@@ -387,6 +392,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 12,
"Name": "PVDQ_ABCD_CPU2",
"PowerState": "On",
@@ -419,6 +425,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 11,
"Name": "PVDQ_EFGH_CPU1",
"PowerState": "On",
@@ -451,6 +458,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 13,
"Name": "PVDQ_EFGH_CPU2",
"PowerState": "On",
@@ -1679,14 +1687,12 @@
"Type": "IpmbSensor"
},
{
- "BindGpioNodeID": "Node ID GPIO 0",
- "Name": "Multi Node ID 0",
- "Type": "MultiNode"
- },
- {
- "BindGpioNodeID": "Node ID GPIO 1",
- "Name": "Multi Node ID 1",
- "Type": "MultiNode"
+ "GpioPins": [
+ 27,
+ 26
+ ],
+ "Name": "Multi Node ID",
+ "Type": "MultiNodeID"
},
{
"Address": "0x71",
@@ -1701,52 +1707,6 @@
"Type": "PCA9543Mux"
},
{
- "Address": "0x30",
- "Bus": 0,
- "CpuID": 1,
- "Name": "Xeon CPU 1",
- "Thresholds": [
- {
- "Direction": "greater than",
- "Label": "DIMM",
- "Name": "upper critical",
- "Severity": 1,
- "Value": 99
- },
- {
- "Direction": "greater than",
- "Label": "DIMM",
- "Name": "upper non critical",
- "Severity": 0,
- "Value": 89
- }
- ],
- "Type": "XeonCPU"
- },
- {
- "Address": "0x31",
- "Bus": 0,
- "CpuID": 2,
- "Name": "Xeon CPU 2",
- "Thresholds": [
- {
- "Direction": "greater than",
- "Label": "DIMM",
- "Name": "upper critical",
- "Severity": 1,
- "Value": 99
- },
- {
- "Direction": "greater than",
- "Label": "DIMM",
- "Name": "upper non critical",
- "Severity": 0,
- "Value": 89
- }
- ],
- "Type": "XeonCPU"
- },
- {
"Address": "0x4E",
"Bus": 6,
"Name": "Exit Air Temp",
@@ -1809,16 +1769,62 @@
}
],
"Type": "TMP75"
+ },
+ {
+ "Address": "0x30",
+ "Bus": 0,
+ "CpuID": 1,
+ "Name": "CPU 1",
+ "Thresholds": [
+ {
+ "Direction": "greater than",
+ "Label": "DIMM",
+ "Name": "upper critical",
+ "Severity": 1,
+ "Value": 99
+ },
+ {
+ "Direction": "greater than",
+ "Label": "DIMM",
+ "Name": "upper non critical",
+ "Severity": 0,
+ "Value": 89
+ }
+ ],
+ "Type": "XeonCPU"
+ },
+ {
+ "Address": "0x31",
+ "Bus": 0,
+ "CpuID": 2,
+ "Name": "CPU 2",
+ "Thresholds": [
+ {
+ "Direction": "greater than",
+ "Label": "DIMM",
+ "Name": "upper critical",
+ "Severity": 1,
+ "Value": 99
+ },
+ {
+ "Direction": "greater than",
+ "Label": "DIMM",
+ "Name": "upper non critical",
+ "Severity": 0,
+ "Value": 89
+ }
+ ],
+ "Type": "XeonCPU"
}
],
"Name": "TNP Baseboard",
"Probe": "xyz.openbmc_project.FruDevice({'PRODUCT_PRODUCT_NAME': '.*TNP'})",
- "Type": "Board",
"ProductId": 153,
+ "Type": "Board",
"xyz.openbmc_project.Inventory.Decorator.Asset": {
"Manufacturer": "$PRODUCT_MANUFACTURER",
"Model": "$PRODUCT_PRODUCT_NAME",
"PartNumber": "$PRODUCT_PART_NUMBER",
"SerialNumber": "$PRODUCT_SERIAL_NUMBER"
}
-}
+} \ No newline at end of file
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WC-Baseboard.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WC-Baseboard.json
index 982dade40..ce98132d6 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WC-Baseboard.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WC-Baseboard.json
@@ -195,6 +195,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 8,
"Name": "PVCCIN_CPU1",
"PowerState": "On",
@@ -228,6 +229,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 9,
"Name": "PVCCIN_CPU2",
"PowerState": "On",
@@ -261,6 +263,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 14,
"Name": "PVCCIO_CPU1",
"PowerState": "On",
@@ -293,6 +296,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 15,
"Name": "PVCCIO_CPU2",
"PowerState": "On",
@@ -325,6 +329,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 10,
"Name": "PVDQ_ABC_CPU1",
"PowerState": "On",
@@ -357,6 +362,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 12,
"Name": "PVDQ_ABC_CPU2",
"PowerState": "On",
@@ -389,6 +395,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 11,
"Name": "PVDQ_DEF_CPU1",
"PowerState": "On",
@@ -421,6 +428,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 13,
"Name": "PVDQ_DEF_CPU2",
"PowerState": "On",
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WP-Baseboard.json b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WP-Baseboard.json
index bdf6b7d9c..923924a0b 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WP-Baseboard.json
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/configuration/entity-manager/WP-Baseboard.json
@@ -195,6 +195,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 8,
"Name": "PVCCIN_CPU1",
"PowerState": "On",
@@ -228,6 +229,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 9,
"Name": "PVCCIN_CPU2",
"PowerState": "On",
@@ -261,6 +263,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 14,
"Name": "PVCCIO_CPU1",
"PowerState": "On",
@@ -293,6 +296,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 15,
"Name": "PVCCIO_CPU2",
"PowerState": "On",
@@ -325,6 +329,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 10,
"Name": "PVDQ_ABC_CPU1",
"PowerState": "On",
@@ -357,6 +362,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 12,
"Name": "PVDQ_ABC_CPU2",
"PowerState": "On",
@@ -389,6 +395,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 1,
"Index": 11,
"Name": "PVDQ_DEF_CPU1",
"PowerState": "On",
@@ -421,6 +428,7 @@
"Type": "ADC"
},
{
+ "CPURequired": 2,
"Index": 13,
"Name": "PVDQ_DEF_CPU2",
"PowerState": "On",
@@ -656,13 +664,6 @@
},
{
"Direction": "Input",
- "Index": 40,
- "Name": "NMI Input",
- "Polarity": "Low",
- "Type": "Gpio"
- },
- {
- "Direction": "Input",
"Index": 49,
"Name": "CPU CATERR",
"Polarity": "High",
@@ -2030,4 +2031,4 @@
"PartNumber": "$PRODUCT_PART_NUMBER",
"SerialNumber": "$PRODUCT_SERIAL_NUMBER"
}
-} \ No newline at end of file
+}
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/workbook/wolfpass-config.bb b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/workbook/wolfpass-config.bb
index c91053536..ead62f47e 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-phosphor/workbook/wolfpass-config.bb
+++ b/meta-openbmc-mods/meta-ast2500/recipes-phosphor/workbook/wolfpass-config.bb
@@ -7,4 +7,4 @@ inherit config-in-skeleton
LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
SRCREV = "946064239016e38cd1cc346047b1d26960c06cdb"
-SKELETON_URI = "git://git@github.com/Intel-BMC/skeleton.git;protocol=ssh;branch=intel"
+SKELETON_URI = "git://git-amr-1.devtools.intel.com:29418/openbmc-skeleton.git;protocol=ssh;branch=intel"
diff --git a/meta-openbmc-mods/meta-common/classes/obmc-phosphor-image-common.bbclass b/meta-openbmc-mods/meta-common/classes/obmc-phosphor-image-common.bbclass
index 1520cb7b9..4ad3b2b92 100644
--- a/meta-openbmc-mods/meta-common/classes/obmc-phosphor-image-common.bbclass
+++ b/meta-openbmc-mods/meta-common/classes/obmc-phosphor-image-common.bbclass
@@ -8,7 +8,6 @@ IMAGE_INSTALL_append = " \
dtoverlay \
entity-manager \
ipmitool \
- ipmi-providers \
intel-ipmi-oem \
phosphor-ipmi-ipmb \
phosphor-node-manager-proxy \
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0016-Add-support-for-128MB-Macronix-spi-flash-MX66L1G45G.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0016-Add-support-for-128MB-Macronix-spi-flash-MX66L1G45G.patch
deleted file mode 100644
index cc1e56fdb..000000000
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0016-Add-support-for-128MB-Macronix-spi-flash-MX66L1G45G.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8992df8f3a0f5fc16ec41ad6dd7a5a13e6f94d32 Mon Sep 17 00:00:00 2001
-From: Vernon Mauery <vernon.mauery@linux.intel.com>
-Date: Wed, 5 Dec 2018 16:13:15 -0800
-Subject: [PATCH] Add support for 128MB Macronix spi flash MX66L1G45G
-
-This will enable u-boot support for the Macronix MX66L1G45G part.
-
-Change-Id: I5edc69357a8b1607c5c44e53bed3eddf38fdc0be
-Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
----
- drivers/mtd/spi/sf_params.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/spi/sf_params.c b/drivers/mtd/spi/sf_params.c
-index c577d9ed6c..d2a96efe48 100644
---- a/drivers/mtd/spi/sf_params.c
-+++ b/drivers/mtd/spi/sf_params.c
-@@ -50,6 +50,7 @@ const struct spi_flash_params spi_flash_params_table[] = {
- {"MX25L12805", 0xc22018, 0x0, 64 * 1024, 256, RD_FULL, WR_QPP},
- {"MX25L25635F", 0xc22019, 0x0, 64 * 1024, 512, RD_FULL, WR_QPP},
- {"MX25L51235F", 0xc2201a, 0x0, 64 * 1024, 1024, RD_FULL, WR_QPP},
-+ {"MX66L1G45G", 0xc2201b, 0x0, 64 * 1024, 2048, RD_FULL, SECT_4K|WR_QPP},
- {"MX25L12855E", 0xc22618, 0x0, 64 * 1024, 256, RD_FULL, WR_QPP},
- #endif
- #ifdef CONFIG_SPI_FLASH_SPANSION /* SPANSION */
---
-2.17.1
-
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0017-Enable-Macronix-and-Micron-SPI-support.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0017-Enable-Macronix-and-Micron-SPI-support.patch
deleted file mode 100644
index b26803c95..000000000
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0017-Enable-Macronix-and-Micron-SPI-support.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 8415002a2e77a41831b3064dae264f60996ac88a Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
-Date: Thu, 6 Dec 2018 15:07:09 -0800
-Subject: [PATCH] Enable Macronix and Micron SPI support
-
-This commit enables Macronix and Micron SPI support.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
----
- configs/ast_g5_ncsi_2boot_defconfig | 2 ++
- configs/ast_g5_ncsi_defconfig | 2 ++
- configs/ast_g5_phy_defconfig | 2 ++
- 3 files changed, 6 insertions(+)
-
-diff --git a/configs/ast_g5_ncsi_2boot_defconfig b/configs/ast_g5_ncsi_2boot_defconfig
-index d5b7894a9e00..abceed817615 100644
---- a/configs/ast_g5_ncsi_2boot_defconfig
-+++ b/configs/ast_g5_ncsi_2boot_defconfig
-@@ -10,6 +10,8 @@ CONFIG_FIT_VERBOSE=y
- CONFIG_HUSH_PARSER=y
- CONFIG_OF_LIBFDT=y
- CONFIG_SPI_FLASH=y
-+CONFIG_SPI_FLASH_MACRONIX=y
-+CONFIG_SPI_FLASH_STMICRO=y
- CONFIG_SYS_NS16550=y
- CONFIG_FIRMWARE_2ND_BOOT=y
- CONFIG_AUTOBOOT=y
-diff --git a/configs/ast_g5_ncsi_defconfig b/configs/ast_g5_ncsi_defconfig
-index 9481e5fb6e9d..3f504a325649 100644
---- a/configs/ast_g5_ncsi_defconfig
-+++ b/configs/ast_g5_ncsi_defconfig
-@@ -10,5 +10,7 @@ CONFIG_FIT_VERBOSE=y
- CONFIG_HUSH_PARSER=y
- CONFIG_OF_LIBFDT=y
- CONFIG_SPI_FLASH=y
-+CONFIG_SPI_FLASH_MACRONIX=y
-+CONFIG_SPI_FLASH_STMICRO=y
- CONFIG_SYS_NS16550=y
- CONFIG_USE_IRQ=y
-diff --git a/configs/ast_g5_phy_defconfig b/configs/ast_g5_phy_defconfig
-index 4aefcf49e880..8f0919043376 100644
---- a/configs/ast_g5_phy_defconfig
-+++ b/configs/ast_g5_phy_defconfig
-@@ -11,5 +11,7 @@ CONFIG_FIT_VERBOSE=y
- CONFIG_HUSH_PARSER=y
- CONFIG_OF_LIBFDT=y
- CONFIG_SPI_FLASH=y
-+CONFIG_SPI_FLASH_MACRONIX=y
-+CONFIG_SPI_FLASH_STMICRO=y
- CONFIG_SYS_NS16550=y
- CONFIG_USE_IRQ=y
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0018-Add-support-for-Macronix-and-Micron-1Gbits-SPI-flash.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0018-Add-support-for-Macronix-and-Micron-1Gbits-SPI-flash.patch
deleted file mode 100644
index 2ed297a96..000000000
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0018-Add-support-for-Macronix-and-Micron-1Gbits-SPI-flash.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0039c15251a7fcf60154d59933a11d9e17b04d5c Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
-Date: Thu, 6 Dec 2018 18:49:04 -0800
-Subject: [PATCH] Add support for Macronix and Micron 1Gbits SPI flash
-
-Quick fix to support Macronix and Micron 1Gbits SPI.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
----
- arch/arm/mach-aspeed/flash.c | 33 ++++++++++++++++++++++++++++++++-
- 1 file changed, 32 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-aspeed/flash.c b/arch/arm/mach-aspeed/flash.c
-index dece4315d755..2a31b6503a22 100644
---- a/arch/arm/mach-aspeed/flash.c
-+++ b/arch/arm/mach-aspeed/flash.c
-@@ -79,6 +79,7 @@ flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* FLASH chips info */
- #define MX25L12805D 0x1820C2
- #define MX25L25635E 0x1920C2
- #define MX66L51235F 0x1A20C2
-+#define MX66L1G45G 0x1B20C2
- #define SST25VF016B 0x4125bf
- #define SST25VF064C 0x4b25bf
- #define SST25VF040B 0x8d25bf
-@@ -978,6 +979,35 @@ static ulong flash_get_size (ulong base, flash_info_t *info)
- #endif
- break;
-
-+ case MX66L1G45G:
-+ erase_region_size = 0x10000;
-+ info->readcmd = 0x0b;
-+ info->dualport = 0;
-+ info->dummybyte = 1;
-+ info->buffersize = 256;
-+ WriteClk = 50;
-+ EraseClk = 20;
-+ ReadClk = 50;
-+#if 1
-+ info->sector_count = 2048;
-+ info->size = 0x4000000;
-+ info->address32 = 1;
-+#if defined(CONFIG_FLASH_SPIx2_Dummy)
-+ info->readcmd = 0xbb;
-+ info->dummybyte = 1;
-+ info->dualport = 1;
-+ info->iomode = IOMODEx2_dummy;
-+#elif defined(CONFIG_FLASH_SPIx4_Dummy)
-+ info->readcmd = 0xeb;
-+ info->dummybyte = 3;
-+ info->dualport = 0;
-+ info->iomode = IOMODEx4_dummy;
-+ info->quadport = 1;
-+ info->dummydata = 0xaa;
-+#endif
-+#endif
-+ break;
-+
- case MX25L12805D:
- info->sector_count = 256;
- info->size = 0x1000000;
-@@ -1093,7 +1123,8 @@ static ulong flash_get_size (ulong base, flash_info_t *info)
- info->readcmd = 0x0b;
- info->dualport = 0;
- info->dummybyte = 1;
-- info->buffersize = 1;
-+ info->buffersize = 256;
-+ info->address32 = 1;
- WriteClk = 50;
- EraseClk = 25;
- ReadClk = 50;
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0022-KCS-driver-support-in-uBoot.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0022-KCS-driver-support-in-uBoot.patch
index 79028d2a1..c79b2f2dc 100644
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0022-KCS-driver-support-in-uBoot.patch
+++ b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0022-KCS-driver-support-in-uBoot.patch
@@ -1,4 +1,4 @@
-From 16209364c27a0cb7e2b7fdd445942f68e9180263 Mon Sep 17 00:00:00 2001
+From b11377c73c85bdee1975402084c3760b70cc99c4 Mon Sep 17 00:00:00 2001
From: AppaRao Puli <apparao.puli@linux.intel.com>
Date: Wed, 13 Mar 2019 14:28:05 +0530
Subject: [PATCH] KCS driver support in uBoot
@@ -28,9 +28,9 @@ Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
---
board/aspeed/ast-g5/Makefile | 1 +
board/aspeed/ast-g5/ast-g5-intel.c | 3 +
- board/aspeed/ast-g5/ast-g5-kcs.c | 425 +++++++++++++++++++++++++++++++++++++
- board/aspeed/ast-g5/ast-g5-kcs.h | 114 ++++++++++
- 4 files changed, 543 insertions(+)
+ board/aspeed/ast-g5/ast-g5-kcs.c | 420 +++++++++++++++++++++++++++++++++++++
+ board/aspeed/ast-g5/ast-g5-kcs.h | 112 ++++++++++
+ 4 files changed, 536 insertions(+)
create mode 100644 board/aspeed/ast-g5/ast-g5-kcs.c
create mode 100644 board/aspeed/ast-g5/ast-g5-kcs.h
@@ -44,7 +44,7 @@ index 9022433..05972b9 100644
obj-y += ast-g5-timer.o
+obj-y += ast-g5-kcs.o
diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
-index f810a40..f9955c7 100644
+index 409b1a7..41d41ea 100644
--- a/board/aspeed/ast-g5/ast-g5-intel.c
+++ b/board/aspeed/ast-g5/ast-g5-intel.c
@@ -437,6 +437,7 @@ static void pwm_init(void)
@@ -66,16 +66,15 @@ index f810a40..f9955c7 100644
}
diff --git a/board/aspeed/ast-g5/ast-g5-kcs.c b/board/aspeed/ast-g5/ast-g5-kcs.c
new file mode 100644
-index 0000000..f983b4a
+index 0000000..7bff26f
--- /dev/null
+++ b/board/aspeed/ast-g5/ast-g5-kcs.c
-@@ -0,0 +1,425 @@
+@@ -0,0 +1,420 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018-2019 Intel Corporation
+
+#include "ast-g5-kcs.h"
+
-+#define DEBUG_KCS_ENABLED 0
+#ifdef DEBUG_KCS_ENABLED
+#define DBG_KCS printf
+#else
@@ -139,7 +138,7 @@ index 0000000..f983b4a
+ }
+
+ /* very unlike code hits here. */
-+ printf("ERROR: %s error. ChannelNo: %d\n", __func__, channel_num);
++ DBG_KCS("ERROR: %s error. ChannelNo: %d\n", __func__, channel_num);
+ BUG();
+}
+
@@ -148,7 +147,7 @@ index 0000000..f983b4a
+ struct kcs_packet *kcs_pkt = NULL;
+
+ kcs_pkt = get_kcs_packet(channel_num);
-+ printf("ERROR: KCS communication aborted (Channel:%d, Error:%d)\n",
++ DBG_KCS("ERROR: KCS communication aborted (Channel:%d, Error:%d)\n",
+ channel_num, kcs_pkt->error);
+ set_kcs_state(channel_num, KCS_STATE_ERROR);
+ read_data(channel_num);
@@ -176,6 +175,7 @@ index 0000000..f983b4a
+static void process_kcs_request(u16 channel_num)
+{
+ struct kcs_packet *kcs_pkt = NULL;
++ int i;
+
+ kcs_pkt = get_kcs_packet(channel_num);
+ if (!kcs_pkt->read_req_done)
@@ -184,8 +184,6 @@ index 0000000..f983b4a
+ DBG_KCS("%s:- chan:%d\n", __func__, channel_num);
+
+#ifdef DEBUG_KCS_ENABLED
-+ int i;
-+
+ DBG_KCS("Request data(Len:%d): ", kcs_pkt->data_in_idx);
+ for (i = 0; i < kcs_pkt->data_in_idx; i++)
+ DBG_KCS(" 0x%02x", kcs_pkt->data_in[i]);
@@ -240,8 +238,6 @@ index 0000000..f983b4a
+ struct kcs_packet *kcs_pkt = NULL;
+
+ kcs_pkt = get_kcs_packet(channel_num);
-+ DBG_KCS("%s:- chan:%d, kcs_pkt->phase:%d\n", __func__, channel_num,
-+ kcs_pkt->phase);
+
+ switch (kcs_pkt->phase) {
+ case KCS_PHASE_WRITE_START:
@@ -326,7 +322,6 @@ index 0000000..f983b4a
+ write_data(channel_num, ZERO_DATA);
+
+ u16 cmd = read_data(channel_num);
-+ DBG_KCS("%s:- chan:%d, cmd:0x%02x\n", __func__, channel_num, cmd);
+ switch (cmd) {
+ case KCS_CTRL_CODE_WRITE_START:
+ init_kcs_packet(channel_num);
@@ -497,10 +492,10 @@ index 0000000..f983b4a
+}
diff --git a/board/aspeed/ast-g5/ast-g5-kcs.h b/board/aspeed/ast-g5/ast-g5-kcs.h
new file mode 100644
-index 0000000..52b5097
+index 0000000..bb697c4
--- /dev/null
+++ b/board/aspeed/ast-g5/ast-g5-kcs.h
-@@ -0,0 +1,114 @@
+@@ -0,0 +1,112 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2018-2019 Intel Corporation */
+
@@ -515,8 +510,8 @@ index 0000000..52b5097
+/* KCS channel addresses */
+#define KCS_CHANNEL1_ADDR 0xCA0
+#define KCS_CHANNEL2_ADDR 0xCA8
-+#define KCS_CHANNEL3_ADDR 0xCA2
-+#define KCS_CHANNEL4_ADDR 0xCB2
++#define KCS_CHANNEL3_ADDR 0xCA2 /* KCS SMS */
++#define KCS_CHANNEL4_ADDR 0xCA4 /* KCS SMM */
+
+#define ZERO_DATA 0x00
+
@@ -539,6 +534,11 @@ index 0000000..52b5097
+#define LPC_STR1 0x3C /* Status Register 1 */
+#define LPC_STR2 0x40 /* Status Register 2 */
+#define LPC_STR3 0x44 /* Status Register 3 */
++#define LPC_HICRB 0x100 /* Host Interface Control Register B */
++#define LPC_LADR4 0x110 /* LPC channel #4 Address Register */
++#define LPC_IDR4 0x114 /* Input Data Register 4 */
++#define LPC_ODR4 0x118 /* Output Data Register 4 */
++#define LPC_STR4 0x11C /* Status Data Register 4 */
+
+/* LPC Bits */
+#define BIT_LADR12AS BIT(7) /* Channel Address selection */
@@ -549,15 +549,8 @@ index 0000000..52b5097
+#define BIT_LPC2E BIT(6) /* Enable LPC channel #2 */
+#define BIT_LPC3E BIT(7) /* Enable LPC channel #2 */
+#define BIT_KCSENBL BIT(2) /* Enable KCS interface in Channel #3 */
-+
-+/* mapped to lpc-host@80 IO space */
-+#define LPC_HICRB 0x080
+#define BIT_IBFIE4 BIT(1)
+#define BIT_LPC4E BIT(0)
-+#define LPC_LADR4 0x090
-+#define LPC_IDR4 0x094 /* Input Data Register 4 */
-+#define LPC_ODR4 0x098 /* Output Data Register 4 */
-+#define LPC_STR4 0x09c /* Status Data Register 4 */
+
+#define BIT_STATUS_OBF BIT(0) /* Output Data Register full #1/#2/#3 */
+#define BIT_STATUS_IBF BIT(1) /* Input Data Register full #1/#2/#3 */
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0024-IPMI-command-handler-implementation-in-uboot.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0024-IPMI-command-handler-implementation-in-uboot.patch
index 47cb56062..9096b09b2 100644
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0024-IPMI-command-handler-implementation-in-uboot.patch
+++ b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0024-IPMI-command-handler-implementation-in-uboot.patch
@@ -1,6 +1,6 @@
-From d770ea7a30742339b0692858847838dd2a738aeb Mon Sep 17 00:00:00 2001
+From 50d3a7264fc0ecdd61ae1686839b19091b124e8d Mon Sep 17 00:00:00 2001
From: AppaRao Puli <apparao.puli@linux.intel.com>
-Date: Fri, 5 Apr 2019 17:53:21 +0530
+Date: Tue, 21 May 2019 00:19:16 +0530
Subject: [PATCH] IPMI command handler implementation in uboot
IPMI command handler implemtation in uBoot.
@@ -22,10 +22,10 @@ Change-Id: I18b205bc45c34f7c4ef16adc29fa5bd494624ceb
Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
---
board/aspeed/ast-g5/Makefile | 1 +
- board/aspeed/ast-g5/ast-g5-kcs.c | 78 +++++++++++++-----------
+ board/aspeed/ast-g5/ast-g5-kcs.c | 77 +++++++++++++-----------
board/aspeed/ast-g5/ipmi-handler.c | 118 +++++++++++++++++++++++++++++++++++++
board/aspeed/ast-g5/ipmi-handler.h | 40 +++++++++++++
- 4 files changed, 202 insertions(+), 35 deletions(-)
+ 4 files changed, 202 insertions(+), 34 deletions(-)
create mode 100644 board/aspeed/ast-g5/ipmi-handler.c
create mode 100644 board/aspeed/ast-g5/ipmi-handler.h
@@ -39,7 +39,7 @@ index 05972b9..f28fcfe 100644
obj-y += ast-g5-kcs.o
+obj-y += ipmi-handler.o
diff --git a/board/aspeed/ast-g5/ast-g5-kcs.c b/board/aspeed/ast-g5/ast-g5-kcs.c
-index f983b4a..05b1cc2 100644
+index 7bff26f..98bf69b 100644
--- a/board/aspeed/ast-g5/ast-g5-kcs.c
+++ b/board/aspeed/ast-g5/ast-g5-kcs.c
@@ -1,7 +1,7 @@
@@ -49,9 +49,9 @@ index f983b4a..05b1cc2 100644
-#include "ast-g5-kcs.h"
+#include "ipmi-handler.h"
- #define DEBUG_KCS_ENABLED 0
#ifdef DEBUG_KCS_ENABLED
-@@ -10,11 +10,6 @@
+ #define DBG_KCS printf
+@@ -9,11 +9,6 @@
#define DBG_KCS(...)
#endif
@@ -63,22 +63,15 @@ index f983b4a..05b1cc2 100644
#define KCS_CHANNEL_NO_3 3
static const u16 enabled_kcs_channel[] = { KCS_CHANNEL_NO_3 };
-@@ -104,13 +99,13 @@ static void init_kcs_packet(u16 channel_num)
+@@ -103,6 +98,7 @@ static void init_kcs_packet(u16 channel_num)
static void process_kcs_request(u16 channel_num)
{
struct kcs_packet *kcs_pkt = NULL;
+ struct ipmi_cmd_data ipmi_data;
-
- kcs_pkt = get_kcs_packet(channel_num);
- if (!kcs_pkt->read_req_done)
- return;
-
- DBG_KCS("%s:- chan:%d\n", __func__, channel_num);
--
- #ifdef DEBUG_KCS_ENABLED
int i;
-@@ -119,37 +114,49 @@ static void process_kcs_request(u16 channel_num)
+ kcs_pkt = get_kcs_packet(channel_num);
+@@ -117,37 +113,49 @@ static void process_kcs_request(u16 channel_num)
DBG_KCS(" 0x%02x", kcs_pkt->data_in[i]);
DBG_KCS("\n");
#endif
@@ -156,7 +149,7 @@ index f983b4a..05b1cc2 100644
#ifdef DEBUG_KCS_ENABLED
DBG_KCS("Response data(Len:%d): ", kcs_pkt->data_out_len);
-@@ -158,6 +165,7 @@ static void process_kcs_request(u16 channel_num)
+@@ -156,6 +164,7 @@ static void process_kcs_request(u16 channel_num)
DBG_KCS("\n");
#endif
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch
new file mode 100644
index 000000000..00dbd68da
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch
@@ -0,0 +1,1271 @@
+From bd4a64d7ea394d0b418d491699853112229f098e Mon Sep 17 00:00:00 2001
+From: AppaRao Puli <apparao.puli@linux.intel.com>
+Date: Tue, 21 May 2019 00:53:04 +0530
+Subject: [PATCH] FFUJ: FW IPMI commands and flash support in u-boot
+
+Firmware update and OEM ipmi commands implementation
+for supporting Force Firmware Update Jumper(FFUJ)
+mode. Also added support to update the fit images
+in FFUJ mode.
+
+Firmware update commands:
+1) Get BMC Execution Context(0x23)
+2) Get Firmware Update Random Number(0x26)
+3) Set Firmware Update Mode(0x27)
+4) Exit Firmware Update Mode(0x28)
+5) Set/Get Firmware Update Control(0x29)
+6) Get Firmware Update status(0x2A)
+7) Set Firmware Update Options(0x2B)
+8) Firmware Image Write(0x2C)
+
+OEM Commands:
+1) Get Buffer Size(0x66)
+
+Tested:
+ - Used cmdtool.efi to test the individual commands
+ implementation and negative cases.
+ - Used debug fwpiaupd.efi tool for validating Firmware
+ image transfer via KCS and flashing.
+
+Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
+---
+ arch/arm/include/asm/arch-aspeed/ast-g5-intel.h | 1 +
+ board/aspeed/ast-g5/Makefile | 2 +
+ board/aspeed/ast-g5/fw-update.c | 486 ++++++++++++++++++++++++
+ board/aspeed/ast-g5/fw-update.h | 50 +++
+ board/aspeed/ast-g5/ipmi-fwupd.c | 402 ++++++++++++++++++++
+ board/aspeed/ast-g5/ipmi-fwupd.h | 81 ++++
+ board/aspeed/ast-g5/ipmi-handler.c | 66 +++-
+ board/aspeed/ast-g5/ipmi-handler.h | 3 +-
+ common/autoboot.c | 11 +
+ configs/ast_g5_phy_defconfig | 1 +
+ 10 files changed, 1091 insertions(+), 12 deletions(-)
+ create mode 100644 board/aspeed/ast-g5/fw-update.c
+ create mode 100644 board/aspeed/ast-g5/fw-update.h
+ create mode 100644 board/aspeed/ast-g5/ipmi-fwupd.c
+ create mode 100644 board/aspeed/ast-g5/ipmi-fwupd.h
+
+diff --git a/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h b/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
+index cd9a099..a88521a 100644
+--- a/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
++++ b/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
+@@ -14,6 +14,7 @@
+
+ #ifndef __ASSEMBLY__
+ int intel_force_firmware_jumper_enabled(void);
++void start_fw_update_loop(void);
+ #endif
+
+ #endif /* __AST_INTEL_G5_H__ */
+diff --git a/board/aspeed/ast-g5/Makefile b/board/aspeed/ast-g5/Makefile
+index f28fcfe..0b2d936 100644
+--- a/board/aspeed/ast-g5/Makefile
++++ b/board/aspeed/ast-g5/Makefile
+@@ -6,3 +6,5 @@ obj-y += ast-g5-gpio.o
+ obj-y += ast-g5-timer.o
+ obj-y += ast-g5-kcs.o
+ obj-y += ipmi-handler.o
++obj-y += ipmi-fwupd.o
++obj-y += fw-update.o
+diff --git a/board/aspeed/ast-g5/fw-update.c b/board/aspeed/ast-g5/fw-update.c
+new file mode 100644
+index 0000000..9923993
+--- /dev/null
++++ b/board/aspeed/ast-g5/fw-update.c
+@@ -0,0 +1,486 @@
++// SPDX-License-Identifier: GPL-2.0+
++// Copyright (c) 2018-2019 Intel Corporation
++
++#include <common.h>
++#include <cli.h>
++#include <flash.h>
++
++#include "fw-update.h"
++
++#define BOOTCMD_BOOTM_STR "bootm "
++#define RANDOM_NUM_TIMEOUT 30 /* in seconds */
++#define WAIT_STATE_TIMEOUT 10000 /* 10 seconds */
++
++#define PROTECT_OFF 0
++#define PROTECT_ON 1
++
++extern struct fwupd_global_setting g_fwupd_settings;
++extern u32 g_write_addr;
++
++bool g_fwupd_settings_lock = false;
++unsigned long long etime;
++
++bool fwupd_settings_trylock(void)
++{
++ if (g_fwupd_settings_lock)
++ return false;
++
++ g_fwupd_settings_lock = true;
++ return g_fwupd_settings_lock;
++}
++
++void fwupd_settings_unlock(void)
++{
++ g_fwupd_settings_lock = false;
++}
++
++u8 get_active_boot_image(void)
++{
++ char *bootcmd = getenv("bootcmd");
++ char *start = strstr(bootcmd, BOOTCMD_BOOTM_STR);
++ u8 boot_image = PRIMARY_IMAGE;
++
++ if (start) {
++ ulong boot_addr = simple_strtoul(
++ (start + strlen(BOOTCMD_BOOTM_STR)), NULL, 16);
++ if (boot_addr == SECONDARY_FITIMAGE_START_ADDR)
++ return SECONDARY_IMAGE;
++ }
++ return boot_image;
++}
++
++static ulong get_flash_image_address(void)
++{
++ char *bootcmd = getenv("bootcmd");
++ char *start = strstr(bootcmd, BOOTCMD_BOOTM_STR);
++ ulong boot_addr = PRIMARY_FITIMAGE_START_ADDR;
++
++ if (start) {
++ boot_addr = simple_strtoul((start + strlen(BOOTCMD_BOOTM_STR)),
++ NULL, 16);
++ /* We update in backup region and set the bootcmd accordingly */
++ if (boot_addr == PRIMARY_FITIMAGE_START_ADDR)
++ boot_addr = SECONDARY_FITIMAGE_START_ADDR;
++ else
++ boot_addr = PRIMARY_FITIMAGE_START_ADDR;
++ }
++
++ return boot_addr;
++}
++
++static void update_processing_status(u8 status, u8 percent)
++{
++ if (!fwupd_settings_trylock())
++ return;
++
++ g_fwupd_settings.processing_status = status;
++ g_fwupd_settings.percentage_completion = percent;
++
++ fwupd_settings_unlock();
++ return;
++}
++
++static void reset_all_settings(void)
++{
++ if (!fwupd_settings_trylock())
++ return;
++
++ memset(&g_fwupd_settings, 0, sizeof(g_fwupd_settings));
++ g_fwupd_settings.fwupd_mode_active = false;
++ g_fwupd_settings.start_update = false;
++
++ fwupd_settings_unlock();
++}
++
++unsigned int get_seed(void)
++{
++ char seed_str[] = { "INTEL" };
++ unsigned int seed;
++
++ for (int i = 0; i < strlen(seed_str); i++)
++ seed += (seed_str[i] << (i * 8));
++
++ return seed;
++}
++
++int generate_random_number(void)
++{
++ srand(get_seed());
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ return -1;
++ }
++ for (int i = 0; i < RAND_NUMBER_SIZE; i++)
++ g_fwupd_settings.rand_num[i] = (u8)(rand() & 0xFF);
++
++ g_fwupd_settings.random_number_valid = true;
++
++ fwupd_settings_unlock();
++
++ /* Random number should be cleared after 30sec timeout */
++ etime = endtick(RANDOM_NUM_TIMEOUT);
++
++ return 0;
++}
++
++static int sect_roundb(ulong *addr)
++{
++ flash_info_t *info;
++ ulong bank, sector_end_addr;
++ char found;
++ int i;
++
++ /* find the end addr of the sector where the *addr is */
++ found = 0;
++ for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS && !found; ++bank) {
++ info = &flash_info[bank];
++ for (i = 0; i < info->sector_count && !found; ++i) {
++ /* get the end address of the sector */
++ if (i == info->sector_count - 1) {
++ sector_end_addr =
++ info->start[0] + info->size - 1;
++ } else {
++ sector_end_addr = info->start[i + 1] - 1;
++ }
++
++ if (*addr <= sector_end_addr &&
++ *addr >= info->start[i]) {
++ found = 1;
++ /* adjust *addr if necessary */
++ if (*addr < sector_end_addr)
++ *addr = sector_end_addr;
++ } /* sector */
++ } /* bank */
++ }
++ if (!found) {
++ /* error, address not in flash */
++ printf("Error: end address (0x%08lx) not in flash!\n", *addr);
++ return 1;
++ }
++
++ return 0;
++}
++
++static int fill_flash_sect_ranges(ulong addr_first, ulong addr_last,
++ int *s_first, int *s_last, int *s_count)
++{
++ flash_info_t *info;
++ ulong bank;
++ int rcode = 0;
++
++ *s_count = 0;
++
++ for (bank = 0; bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank) {
++ s_first[bank] = -1; /* first sector to erase */
++ s_last[bank] = -1; /* last sector to erase */
++ }
++
++ for (bank = 0, info = &flash_info[0];
++ (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (addr_first <= addr_last);
++ ++bank, ++info) {
++ ulong b_end;
++ int sect;
++ short s_end;
++
++ if (info->flash_id == FLASH_UNKNOWN)
++ continue;
++
++ b_end = info->start[0] + info->size - 1; /* bank end addr */
++ s_end = info->sector_count - 1; /* last sector */
++
++ for (sect = 0; sect < info->sector_count; ++sect) {
++ ulong end; /* last address in current sect */
++
++ end = (sect == s_end) ? b_end :
++ info->start[sect + 1] - 1;
++
++ if (addr_first > end)
++ continue;
++ if (addr_last < info->start[sect])
++ continue;
++
++ if (addr_first == info->start[sect])
++ s_first[bank] = sect;
++ if (addr_last == end)
++ s_last[bank] = sect;
++ }
++ if (s_first[bank] >= 0) {
++ if (s_last[bank] < 0) {
++ if (addr_last > b_end) {
++ s_last[bank] = s_end;
++ } else {
++ printf("Error: end address not on sector boundary\n");
++ rcode = 1;
++ break;
++ }
++ }
++ if (s_last[bank] < s_first[bank]) {
++ printf("Error: end sector precedes start sector\n");
++ rcode = 1;
++ break;
++ }
++ sect = s_last[bank];
++ addr_first = (sect == s_end) ? b_end + 1 :
++ info->start[sect + 1];
++ (*s_count) += s_last[bank] - s_first[bank] + 1;
++ } else if (addr_first >= info->start[0] && addr_first < b_end) {
++ printf("Error: start address not on sector boundary\n");
++ rcode = 1;
++ break;
++ } else if (s_last[bank] >= 0) {
++ printf("Error: cannot span across banks when they are mapped in reverse order\n");
++ rcode = 1;
++ break;
++ }
++ }
++
++ return rcode;
++}
++
++static int protect_flash_sector(int state, ulong addr_first, ulong addr_last)
++{
++ flash_info_t *info;
++ ulong bank;
++ int s_first[CONFIG_SYS_MAX_FLASH_BANKS],
++ s_last[CONFIG_SYS_MAX_FLASH_BANKS];
++ int protected = 0;
++ int planned;
++ int rcode, i;
++
++ rcode = fill_flash_sect_ranges(addr_first, addr_last, s_first, s_last,
++ &planned);
++
++ if (planned && (rcode == 0)) {
++ for (bank = 0, info = &flash_info[0];
++ bank < CONFIG_SYS_MAX_FLASH_BANKS; ++bank, ++info) {
++ if (info->flash_id == FLASH_UNKNOWN)
++ continue;
++
++ if (s_first[bank] >= 0 &&
++ s_first[bank] <= s_last[bank]) {
++ debug("%sProtecting sectors %d..%d in bank %ld\n",
++ state ? "" : "Un-", s_first[bank],
++ s_last[bank], bank + 1);
++ protected
++ += s_last[bank] - s_first[bank] + 1;
++ for (i = s_first[bank]; i <= s_last[bank]; ++i)
++ info->protect[i] = state;
++ }
++ }
++ printf("%sProtected %d sectors\n", state ? "" : "Un-",
++ protected);
++ } else if (rcode == 0) {
++ printf("Error: start and/or end address not on sector boundary\n");
++ rcode = 1;
++ }
++
++ return rcode;
++}
++
++static int erase_flash_sector(ulong addr_first, ulong addr_last)
++{
++ flash_info_t *info;
++ ulong bank;
++ int s_first[CONFIG_SYS_MAX_FLASH_BANKS];
++ int s_last[CONFIG_SYS_MAX_FLASH_BANKS];
++ int erased = 0;
++ int planned;
++ int rcode = 0;
++
++ rcode = fill_flash_sect_ranges(addr_first, addr_last, s_first, s_last,
++ &planned);
++
++ if (planned && (rcode == 0)) {
++ for (bank = 0, info = &flash_info[0];
++ (bank < CONFIG_SYS_MAX_FLASH_BANKS) && (rcode == 0);
++ ++bank, ++info) {
++ if (s_first[bank] >= 0) {
++ erased += s_last[bank] - s_first[bank] + 1;
++ debug("Erase Flash from 0x%08lx to 0x%08lx "
++ "in Bank # %ld ",
++ info->start[s_first[bank]],
++ (s_last[bank] == info->sector_count) ?
++ info->start[0] + info->size - 1 :
++ info->start[s_last[bank] + 1] - 1,
++ bank + 1);
++ rcode = flash_erase(info, s_first[bank],
++ s_last[bank]);
++ }
++ }
++ if (rcode == 0)
++ printf("Erased %d sectors\n", erased);
++ } else if (rcode == 0) {
++ printf("Error: start and/or end address not on sector boundary\n");
++ rcode = 1;
++ }
++
++ return rcode;
++}
++
++static int verify_image(void)
++{
++ ulong src_addr = IMAGE_LOAD_RAM_ADDR;
++ void *hdr = (void *)src_addr;
++
++ printf("\n## Checking Image at 0x%08lx ...\n", src_addr);
++ /* AT the moment, we only support FIT image flash */
++ switch (genimg_get_format(hdr)) {
++ case IMAGE_FORMAT_FIT:
++ printf(" FIT image found\n");
++ if (!fit_check_format(hdr)) {
++ printf("Bad FIT image format!\n");
++ return -1;
++ }
++
++ if (!fit_all_image_verify(hdr)) {
++ printf("Bad hash in FIT image!\n");
++ return -1;
++ }
++ break;
++ default:
++ printf("Unknown image format!\n");
++ return -1;
++ }
++
++ return 0;
++}
++
++static int flash_image(void)
++{
++ int rcode;
++ ulong max_size = MAX_FITIMAGE_SIZE;
++ ulong src_addr = IMAGE_LOAD_RAM_ADDR;
++ ulong addr_first = get_flash_image_address();
++ ulong addr_last = addr_first + max_size - 1;
++
++ if ((g_write_addr > max_size) || (g_write_addr == 0)) {
++ printf("ERROR: %s(): Invalid file uploaded. filesize(0x%08x)\n",
++ __func__, g_write_addr);
++ return -1;
++ }
++
++ if (sect_roundb(&addr_last) > 0) {
++ printf("ERROR: %s(): sect_roundb failed\n", __func__);
++ return -1;
++ }
++
++ if (addr_first >= addr_last) {
++ printf("ERROR: %s(): addr_first(0x%08lx) >= addr_last(0x%08lx)\n",
++ __func__, addr_first, addr_last);
++ return -1;
++ }
++
++ /* Hack: To update the percentage update,
++ * treat logical division as below.
++ * Image verify - 10%
++ * Unprotecting flash sectors - 10%
++ * Erase flash sectors - 40%
++ * Copy to flash - 40% */
++
++ /* Unprotect the flash sectors */
++ rcode = protect_flash_sector(PROTECT_OFF, addr_first, addr_last);
++ if (rcode != 0) {
++ printf("%s(): Protecting flash sector failed(%d).\n", __func__,
++ rcode);
++ return -1;
++ }
++ update_processing_status(IMG_PROGRAMMING, 20);
++
++ /* erase flash sectors */
++ rcode = erase_flash_sector(addr_first, addr_last);
++ if (rcode != 0) {
++ printf("%s(): Erasing flash sector failed(%d).\n", __func__,
++ rcode);
++ return -1;
++ }
++ update_processing_status(IMG_PROGRAMMING, 60);
++
++ /* write to flash area */
++ printf("Copy to Flash... ");
++ rcode = flash_write((char *)src_addr, addr_first, g_write_addr * 1);
++ if (rcode != 0) {
++ printf("%s(): Flash copy failed(%d).\n", __func__, rcode);
++ flash_perror(rcode);
++ return -1;
++ }
++ printf("done\n");
++ return 0;
++}
++
++void start_fw_update_loop(void)
++{
++ int rc;
++ ulong boot_addr;
++ char boot_cmd[20];
++
++ while (1) {
++ if (g_fwupd_settings.random_number_valid) {
++ /* Random number should be cleared after 30seconds */
++ if (get_ticks() >= etime) {
++ printf("Clearing random number\n");
++
++ if (!fwupd_settings_trylock())
++ continue;
++ memcpy(g_fwupd_settings.rand_num, 0,
++ RAND_NUMBER_SIZE);
++ g_fwupd_settings.random_number_valid = false;
++ fwupd_settings_unlock();
++ }
++ }
++
++ if (g_fwupd_settings.start_update) {
++ update_processing_status(IMG_VALIDATING, 0);
++
++ rc = verify_image();
++ if (rc != 0) {
++ update_processing_status(UPDATE_ERROR, 100);
++ /* Adding delay to make consumer gets status */
++ mdelay(WAIT_STATE_TIMEOUT);
++
++ reset_all_settings();
++ continue;
++ }
++
++ update_processing_status(IMG_PROGRAMMING, 10);
++
++ rc = flash_image();
++ if (rc == 0) {
++ /* Update successful, change the boot command */
++ boot_addr = get_flash_image_address();
++ snprintf(boot_cmd, sizeof(boot_cmd),
++ "bootm %08x", boot_addr);
++ setenv("bootcmd", boot_cmd);
++ saveenv();
++
++ update_processing_status(UPDATE_SUCCESSFUL,
++ 100);
++ } else {
++ update_processing_status(UPDATE_ERROR, 100);
++ }
++
++ /* Adding delay to make sure consumer gets status */
++ mdelay(WAIT_STATE_TIMEOUT);
++
++ reset_all_settings();
++
++ /* Reset BMC */
++ do_reset(NULL, 0, 0, NULL);
++ }
++ mdelay(WAIT_STATE_TIMEOUT);
++ }
++
++ return;
++}
++
++#if 1 /* Debug purpose */
++int do_fwupd(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
++{
++ if (argc != 1)
++ return 1;
++
++ start_fw_update_loop();
++ return 0;
++}
++U_BOOT_CMD(fwupd, 1, 0, do_fwupd, "Start Firmware update process", "");
++#endif
+diff --git a/board/aspeed/ast-g5/fw-update.h b/board/aspeed/ast-g5/fw-update.h
+new file mode 100644
+index 0000000..ed033ad
+--- /dev/null
++++ b/board/aspeed/ast-g5/fw-update.h
+@@ -0,0 +1,50 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright (c) 2018-2019 Intel Corporation
++
++#include <common.h>
++
++/* SPI flash map */
++#define MAX_FITIMAGE_SIZE 0x1B80000
++#define PRIMARY_FITIMAGE_START_ADDR 0x20080000
++#define SECONDARY_FITIMAGE_START_ADDR 0x22480000
++#define IMAGE_LOAD_RAM_ADDR 0x83000000
++
++#define MAX_FILENAME_LENGTH 256
++#define RAND_NUMBER_SIZE 8
++
++enum boot_image {
++ PRIMARY_IMAGE = 0x01,
++ SECONDARY_IMAGE = 0x02
++};
++
++enum update_status {
++ INITIALIZING = 0,
++ IDLE,
++ IMG_DOWNLOADING,
++ IMG_VALIDATING,
++ IMG_PROGRAMMING,
++ UPDATE_SUCCESSFUL,
++ UPDATE_ERROR = 0x0F,
++ UPDATE_FORBIDDEN = 0x80,
++ AC_CYCLE_REQUIRED = 0x83
++};
++
++struct fwupd_global_setting {
++ bool fwupd_mode_active;
++ bool start_update;
++ bool random_number_valid;
++ u8 ctrl_state;
++ u8 options_mask;
++ u8 options_value;
++ u8 processing_status;
++ u8 percentage_completion;
++ u8 integrity_check_status;
++ u8 filename_len;
++ u8 filename[MAX_FILENAME_LENGTH];
++ u8 rand_num[RAND_NUMBER_SIZE];
++};
++
++bool fwupd_settings_trylock(void);
++void fwupd_settings_unlock(void);
++u8 get_active_boot_image(void);
++int generate_random_number(void);
+diff --git a/board/aspeed/ast-g5/ipmi-fwupd.c b/board/aspeed/ast-g5/ipmi-fwupd.c
+new file mode 100644
+index 0000000..3eba056
+--- /dev/null
++++ b/board/aspeed/ast-g5/ipmi-fwupd.c
+@@ -0,0 +1,402 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright (c) 2018-2019 Intel Corporation
++
++#include "ipmi-fwupd.h"
++
++struct fwupd_global_setting g_fwupd_settings;
++u32 g_write_addr = 0;
++
++u16 fwupd_get_execution_ctx(u8 *req, u16 req_len, u8 *res)
++{
++ int booting_image = 0x01;
++ struct fwupd_get_exe_ctx_res *result =
++ (struct fwupd_get_exe_ctx_res *)res;
++
++ /* Get active image location(primary/secondary) */
++ booting_image = get_active_boot_image();
++ result->patition_ptr = booting_image;
++ result->exection_ctx = 0x11; /* Forced Firmware Update mode */
++
++ result->completion_code = IPMI_CC_OK;
++ return sizeof(struct fwupd_get_exe_ctx_res);
++}
++u16 fwupd_get_rand_number(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_rand_num_res *result = (struct fwupd_rand_num_res *)res;
++
++ if (req_len != 0) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is critical operation is going on */
++ if (g_fwupd_settings.start_update) {
++ printf("%s(): Update in progress.\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is it already in fwupdate mode */
++ if (g_fwupd_settings.fwupd_mode_active) {
++ printf("%s(): Already in firmware update mode\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ if (generate_random_number() != 0) {
++ printf("%s(): Random number generation failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ result->completion_code = IPMI_CC_OK;
++ memcpy(result->rand_num, g_fwupd_settings.rand_num, RAND_NUMBER_SIZE);
++
++ return sizeof(struct fwupd_rand_num_res);
++}
++
++u16 fwupd_enter_update_mode(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_set_update_mode_res *result =
++ (struct fwupd_set_update_mode_res *)res;
++
++ if (req_len != RAND_NUMBER_SIZE) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is critical operation is going on */
++ if (g_fwupd_settings.start_update) {
++ printf("%s(): Update in progress.\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is it already in fwupdate mode */
++ if (g_fwupd_settings.fwupd_mode_active) {
++ printf("%s(): Already in firmware update mode\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ /* This command should excute within 30 seconds
++ * after random number generation. */
++ if (!g_fwupd_settings.random_number_valid) {
++ printf("%s(): No valid random number exist.\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_CODE;
++ return sizeof(result->completion_code);
++ }
++
++ /* Validate the key to enter this mode */
++ for (int i = 0; i < RAND_NUMBER_SIZE; i++) {
++ if (req[i] != g_fwupd_settings.rand_num[i]) {
++ printf("%s(): Invalid key entered\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_CODE;
++ return sizeof(result->completion_code);
++ }
++ }
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ /* Reset all the settings */
++ memset(&g_fwupd_settings, 0, sizeof(g_fwupd_settings));
++ g_fwupd_settings.fwupd_mode_active = true;
++ fwupd_settings_unlock();
++
++ result->completion_code = IPMI_CC_OK;
++
++ return sizeof(struct fwupd_set_update_mode_res);
++}
++
++u16 fwupd_exit_update_mode(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_exit_update_mode_res *result =
++ (struct fwupd_exit_update_mode_res *)res;
++
++ if (req_len != 0) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ if (!g_fwupd_settings.fwupd_mode_active) {
++ printf("%s(): Invalid command entered\n", __func__);
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.fwupd_mode_active = false;
++ fwupd_settings_unlock();
++
++ result->completion_code = IPMI_CC_OK;
++
++ return sizeof(struct fwupd_exit_update_mode_res);
++}
++u16 fwupd_set_options(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_options_req *options_req = (struct fwupd_options_req *)req;
++ struct fwupd_options_res *result = (struct fwupd_options_res *)res;
++
++ if (req_len < 2) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is critical operation is going on */
++ if (g_fwupd_settings.start_update) {
++ printf("%s(): Update in progress.\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ /* Setting any reserved bits will result the command being rejected */
++ if (((options_req->options_mask & 0xF0) != 0) ||
++ ((options_req->options_value & 0xF0) != 0)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_FIELD;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.options_mask = options_req->options_mask;
++ g_fwupd_settings.options_value = options_req->options_value;
++ fwupd_settings_unlock();
++
++ result->completion_code = IPMI_CC_OK;
++ result->options_value = (g_fwupd_settings.options_mask &
++ g_fwupd_settings.options_value);
++
++ return sizeof(struct fwupd_options_res);
++}
++
++u16 fwupd_set_get_control(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_control_req *ctrl_req = (struct fwupd_control_req *)req;
++ struct fwupd_control_res *result = (struct fwupd_control_res *)res;
++
++ if (req_len < 1) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is critical operation is going on */
++ if (g_fwupd_settings.start_update) {
++ printf("%s(): Update in progress.\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ if ((ctrl_req->ctrl_state == SET_FW_FILENAME) && (req_len < 3)) {
++ printf("%s(): Invalid request data\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ } else if ((ctrl_req->ctrl_state != SET_FW_FILENAME) &&
++ (req_len != 1)) {
++ printf("%s(): Invalid request data\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ if ((!g_fwupd_settings.fwupd_mode_active) &&
++ (ctrl_req->ctrl_state != GET_CTRL_STATE)) {
++ printf("%s(): Invalid request. Control State: %d.\n", __func__,
++ ctrl_req->ctrl_state);
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ switch (ctrl_req->ctrl_state) {
++ case GET_CTRL_STATE:
++ break;
++ case IMG_TRANSFER_START:
++ if ((g_fwupd_settings.ctrl_state &
++ IMG_TRANSFER_CTRL_BIT_START)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code =
++ IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.processing_status = IMG_DOWNLOADING;
++ /* Reset control state during start */
++ g_fwupd_settings.ctrl_state = 0x00;
++ g_fwupd_settings.ctrl_state |= IMG_TRANSFER_CTRL_BIT_START;
++ /* Set current write address to ZERO */
++ g_write_addr = 0x00;
++ fwupd_settings_unlock();
++ break;
++ case IMG_TRANSFER_END:
++ if (!(g_fwupd_settings.ctrl_state &
++ IMG_TRANSFER_CTRL_BIT_START)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code =
++ IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.start_update = true;
++ g_fwupd_settings.ctrl_state |= IMG_TRANSFER_CTRL_BIT_END;
++
++ g_fwupd_settings.ctrl_state &= ~(IMG_TRANSFER_CTRL_BIT_START |
++ IMG_TRANSFER_CTRL_BIT_ABORT);
++ fwupd_settings_unlock();
++ break;
++ case IMG_TRANSFER_ABORT:
++ if (!(g_fwupd_settings.ctrl_state &
++ IMG_TRANSFER_CTRL_BIT_START)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code =
++ IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.processing_status = UPDATE_ERROR;
++ g_fwupd_settings.ctrl_state |= IMG_TRANSFER_CTRL_BIT_ABORT;
++ g_fwupd_settings.ctrl_state &= ~(IMG_TRANSFER_CTRL_BIT_START |
++ IMG_TRANSFER_CTRL_BIT_END);
++ fwupd_settings_unlock();
++ break;
++ case SET_FW_FILENAME:
++ /* Not supporting now */
++ if (ctrl_req->filename_len > sizeof(ctrl_req->filename)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_FIELD;
++ return sizeof(result->completion_code);
++ }
++
++ if (!(g_fwupd_settings.ctrl_state &
++ IMG_TRANSFER_CTRL_BIT_START)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code =
++ IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!fwupd_settings_trylock()) {
++ printf("%s(): Lock failed\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++ g_fwupd_settings.filename_len = ctrl_req->filename_len;
++ strncpy(g_fwupd_settings.filename, ctrl_req->filename,
++ ctrl_req->filename_len);
++ fwupd_settings_unlock();
++ /* TODO: Used for TFTP update but not implemented yet. */
++ /* TODO: Verify image and write to flash */
++ break;
++ case USB_DEV_ATTACH:
++ /* Not supporting now */
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ case USB_DEV_DETACH:
++ /* Not supporting now */
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ break;
++ default:
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_FIELD;
++ return sizeof(result->completion_code);
++ }
++
++ result->completion_code = IPMI_CC_OK;
++ result->curr_state = g_fwupd_settings.ctrl_state;
++ return sizeof(struct fwupd_control_res);
++}
++u16 fwupd_get_update_status(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_get_update_status_res *result =
++ (struct fwupd_get_update_status_res *)res;
++
++ if (req_len != 0) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ result->processing_status = g_fwupd_settings.processing_status;
++ result->percent_completion = g_fwupd_settings.percentage_completion;
++ result->check_status = 0;
++ /* We don't support error code messages cmd(0x0EH) in uboot.*/
++ result->error_code = 0;
++
++ result->completion_code = IPMI_CC_OK;
++
++ return sizeof(struct fwupd_get_update_status_res);
++}
++
++u16 fwupd_image_write(u8 *req, u16 req_len, u8 *res)
++{
++ struct fwupd_image_write_res *result =
++ (struct fwupd_image_write_res *)res;
++
++ if (req_len < 1) {
++ printf("%s(): Invalid request length\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Check is critical operation is going on */
++ if (g_fwupd_settings.start_update) {
++ printf("%s(): Update in progress.\n", __func__);
++ result->completion_code = IPMI_CC_NODE_BUSY;
++ return sizeof(result->completion_code);
++ }
++
++ if (!g_fwupd_settings.fwupd_mode_active) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if (!(g_fwupd_settings.ctrl_state & IMG_TRANSFER_CTRL_BIT_START)) {
++ printf("%s(): Invalid request\n", __func__);
++ result->completion_code = IPMI_CC_NOT_SUPPORTED_IN_STATE;
++ return sizeof(result->completion_code);
++ }
++
++ if ((g_write_addr + req_len) > MAX_FITIMAGE_SIZE) {
++ printf("%s(): Request length exceeded max size\n", __func__);
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ u8 *mem_addr = (u8 *)((u32)IMAGE_LOAD_RAM_ADDR + g_write_addr);
++
++ memcpy(mem_addr, req, req_len);
++ g_write_addr += req_len;
++
++ result->completion_code = IPMI_CC_OK;
++ result->no_of_bytes_written = (u8)req_len;
++
++ return sizeof(struct fwupd_image_write_res);
++}
+diff --git a/board/aspeed/ast-g5/ipmi-fwupd.h b/board/aspeed/ast-g5/ipmi-fwupd.h
+new file mode 100644
+index 0000000..e490f6b
+--- /dev/null
++++ b/board/aspeed/ast-g5/ipmi-fwupd.h
+@@ -0,0 +1,81 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright (c) 2018-2019 Intel Corporation
++
++#include "ipmi-handler.h"
++#include "fw-update.h"
++
++enum control_state {
++ GET_CTRL_STATE = 0,
++ IMG_TRANSFER_START,
++ IMG_TRANSFER_END,
++ IMG_TRANSFER_ABORT,
++ SET_FW_FILENAME,
++ USB_DEV_ATTACH,
++ USB_DEV_DETACH
++};
++enum control_state_bit {
++ IMG_TRANSFER_CTRL_BIT_START = (0x01 << 0),
++ IMG_TRANSFER_CTRL_BIT_END = (0x01 << 1),
++ IMG_TRANSFER_CTRL_BIT_ABORT = (0x01 << 2),
++ USB_CTRL_BIT_ATTACH = (0x01 << 3)
++};
++enum update_options_bit {
++ NO_DOWN_REVISION = 0,
++ DEFER_BMC_RESET = 1,
++ SHA32_INTEGRITY_CHECK = 2,
++ CRC32_INTEGRITY_CHECK = 3
++};
++
++struct fwupd_get_exe_ctx_res {
++ u8 completion_code;
++ u8 exection_ctx;
++ u8 patition_ptr;
++};
++struct fwupd_rand_num_res {
++ u8 completion_code;
++ u8 rand_num[RAND_NUMBER_SIZE];
++};
++struct fwupd_set_update_mode_res {
++ u8 completion_code;
++};
++struct fwupd_exit_update_mode_res {
++ u8 completion_code;
++};
++struct fwupd_options_req {
++ u8 options_mask;
++ u8 options_value;
++ u8 integrity_check_value[32];
++};
++struct fwupd_options_res {
++ u8 completion_code;
++ u8 options_value;
++};
++struct fwupd_control_req {
++ u8 ctrl_state;
++ u8 filename_len;
++ u8 filename[MAX_FILENAME_LENGTH];
++};
++struct fwupd_control_res {
++ u8 completion_code;
++ u8 curr_state;
++};
++struct fwupd_get_update_status_res {
++ u8 completion_code;
++ u8 processing_status;
++ u8 percent_completion;
++ u8 check_status;
++ u8 error_code;
++};
++struct fwupd_image_write_res {
++ u8 completion_code;
++ u8 no_of_bytes_written;
++};
++
++u16 fwupd_get_execution_ctx(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_get_rand_number(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_enter_update_mode(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_exit_update_mode(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_set_options(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_set_get_control(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_get_update_status(u8 *req, u16 req_len, u8 *res);
++u16 fwupd_image_write(u8 *req, u16 req_len, u8 *res);
+diff --git a/board/aspeed/ast-g5/ipmi-handler.c b/board/aspeed/ast-g5/ipmi-handler.c
+index 9cccee9..5e78546 100644
+--- a/board/aspeed/ast-g5/ipmi-handler.c
++++ b/board/aspeed/ast-g5/ipmi-handler.c
+@@ -1,18 +1,37 @@
+-
+ // SPDX-License-Identifier: GPL-2.0
+ // Copyright (c) 2018-2019 Intel Corporation
+
+-#include "ipmi-handler.h"
++#include "ipmi-fwupd.h"
+
+ /* IPMI network function codes */
+ #define NETFN_APP 0x06
++#define NETFN_FIRMWARE 0x08
++#define NETFN_INTEL_OEM 0x30
+
+ /* IPMI command codes */
+-#define CMD_GET_DEV_ID 0x01
+-#define CMD_GET_SELF_TEST_RESULTS 0x04
++#define CMD_APP_GET_DEV_ID 0x01
++#define CMD_APP_GET_SELF_TEST_RESULTS 0x04
++#define CMD_FWUPD_GET_EXECUTION_CTX 0x23
++#define CMD_FWUPD_GET_RANDOM_NUMBER 0x26
++#define CMD_FWUPD_SET_UPDATE_MODE 0x27
++#define CMD_FWUPD_EXIT_UPDATE_MODE 0x28
++#define CMD_FWUPD_CONTROL_GET_SET 0x29
++#define CMD_FWUPD_GET_UPDATE_STATUS 0x2A
++#define CMD_FWUPD_SET_OPTIONS 0x2B
++#define CMD_FWUPD_IMAGE_WRITE 0x2C
++#define CMD_INTL_OEM_GET_BUFFER_SIZE 0x66
++
++#define MAX_KCS_BUF_SIZE 1020 /* (0xFF * 4) */
++#define MAX_IPMB_BUF_SIZE 1020 /* (0xFF * 4) */
+
+ typedef u16 (*fun_handler)(u8 *req, u16 req_len, u8 *res);
+
++struct ipmi_cmd_table {
++ u8 net_fun;
++ u8 cmd;
++ fun_handler process_cmd;
++};
++
+ struct get_dev_id {
+ u8 completion_code;
+ u8 dev_id;
+@@ -29,11 +48,10 @@ struct self_test_res {
+ u8 completion_code;
+ u8 res_byte[2];
+ };
+-
+-struct ipmi_cmd_table {
+- u8 net_fun;
+- u8 cmd;
+- fun_handler process_cmd;
++struct intc_get_buf_size_res {
++ u8 completion_code;
++ u8 kcs_size;
++ u8 ipmb_size;
+ };
+
+ static u16 get_device_id(u8 *req, u16 req_len, u8 *res)
+@@ -84,10 +102,36 @@ static u16 get_self_test_result(u8 *req, u16 req_len, u8 *res)
+
+ return sizeof(struct self_test_res);
+ }
++static u16 intel_get_buffer_size(u8 *req, u16 req_len, u8 *res)
++{
++ struct intc_get_buf_size_res *result =
++ (struct intc_get_buf_size_res *)res;
++
++ if (req_len != 0) {
++ result->completion_code = IPMI_CC_INVALID_DATA_LENGTH;
++ return sizeof(result->completion_code);
++ }
++
++ /* Size is multiples of four bytes */
++ result->completion_code = IPMI_CC_OK;
++ result->kcs_size = MAX_KCS_BUF_SIZE / 4;
++ result->ipmb_size = MAX_IPMB_BUF_SIZE / 4;
++
++ return sizeof(struct intc_get_buf_size_res);
++}
+
+ const struct ipmi_cmd_table cmd_info[] = {
+- { NETFN_APP, CMD_GET_DEV_ID, get_device_id },
+- { NETFN_APP, CMD_GET_SELF_TEST_RESULTS, get_self_test_result }
++ { NETFN_APP, CMD_APP_GET_DEV_ID, get_device_id },
++ { NETFN_APP, CMD_APP_GET_SELF_TEST_RESULTS, get_self_test_result },
++ { NETFN_FIRMWARE, CMD_FWUPD_GET_EXECUTION_CTX, fwupd_get_execution_ctx },
++ { NETFN_FIRMWARE, CMD_FWUPD_GET_RANDOM_NUMBER, fwupd_get_rand_number },
++ { NETFN_FIRMWARE, CMD_FWUPD_SET_UPDATE_MODE, fwupd_enter_update_mode },
++ { NETFN_FIRMWARE, CMD_FWUPD_EXIT_UPDATE_MODE, fwupd_exit_update_mode },
++ { NETFN_FIRMWARE, CMD_FWUPD_CONTROL_GET_SET, fwupd_set_get_control },
++ { NETFN_FIRMWARE, CMD_FWUPD_GET_UPDATE_STATUS, fwupd_get_update_status },
++ { NETFN_FIRMWARE, CMD_FWUPD_SET_OPTIONS, fwupd_set_options },
++ { NETFN_FIRMWARE, CMD_FWUPD_IMAGE_WRITE, fwupd_image_write },
++ { NETFN_INTEL_OEM, CMD_INTL_OEM_GET_BUFFER_SIZE, intel_get_buffer_size }
+ };
+
+ #define CMD_TABLE_SIZE ARRAY_SIZE(cmd_info)
+diff --git a/board/aspeed/ast-g5/ipmi-handler.h b/board/aspeed/ast-g5/ipmi-handler.h
+index 9d46d9b..8eea930 100644
+--- a/board/aspeed/ast-g5/ipmi-handler.h
++++ b/board/aspeed/ast-g5/ipmi-handler.h
+@@ -1,4 +1,3 @@
+-
+ /* SPDX-License-Identifier: GPL-2.0 */
+ /* Copyright (c) 2018-2019 Intel Corporation */
+
+@@ -6,12 +5,14 @@
+
+ /* IPMI completion codes */
+ #define IPMI_CC_OK 0x00
++#define IPMI_CC_INVALID_CODE 0x80
+ #define IPMI_CC_NODE_BUSY 0xC0
+ #define IPMI_CC_INVALID_CMD 0xC1
+ #define IPMI_CC_INVALID_CMD_LUN 0xC2
+ #define IPMI_CC_OUT_OF_SPACE 0xC4
+ #define IPMI_CC_INVALID_DATA_LENGTH 0xC7
+ #define IPMI_CC_INVALID_DATA_FIELD 0xCC
++#define IPMI_CC_NOT_SUPPORTED_IN_STATE 0xD5
+ #define IPMI_CC_UNSPECIFIED 0xFF
+
+ /* BMC IPMB LUNs */
+diff --git a/common/autoboot.c b/common/autoboot.c
+index d66c0fa..45a600e 100644
+--- a/common/autoboot.c
++++ b/common/autoboot.c
+@@ -349,6 +349,17 @@ void autoboot_command(const char *s)
+ {
+ debug("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
+
++#ifdef AST_G5_INTEL
++ /* TODO: Make run_command_list as non-blocking(blocked by getc())
++ * and make main u-boot loop to check both keyboard inputs as well
++ * as start_update firmware flags during FFUJ.
++ * This will make sure debug mode intact during FFUJ.
++ */
++ if (intel_force_firmware_jumper_enabled()) {
++ start_fw_update_loop();
++ }
++#endif
++
+ if (stored_bootdelay != -1 && s && !abortboot(stored_bootdelay)) {
+ #if defined(CONFIG_AUTOBOOT_KEYED) && !defined(CONFIG_AUTOBOOT_KEYED_CTRLC)
+ int prev = disable_ctrlc(1); /* disable Control C checking */
+diff --git a/configs/ast_g5_phy_defconfig b/configs/ast_g5_phy_defconfig
+index 47d9563..f070494 100644
+--- a/configs/ast_g5_phy_defconfig
++++ b/configs/ast_g5_phy_defconfig
+@@ -17,3 +17,4 @@ CONFIG_SYS_NS16550=y
+ CONFIG_USE_IRQ=y
+ CONFIG_CMD_I2C=y
+ CONFIG_SYS_I2C_AST=y
++CONFIG_LIB_RAND=y
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
index 798e43295..acac46d70 100644
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
@@ -19,9 +19,6 @@ SRC_URI_append_intel-ast2500 = " \
file://0013-aspeed-Add-Pwm-Driver.patch \
file://0014-Keep-interrupts-enabled-until-last-second.patch \
file://0015-Rewrite-memmove-to-optimize-on-word-transfers.patch \
- file://0016-Add-support-for-128MB-Macronix-spi-flash-MX66L1G45G.patch \
- file://0017-Enable-Macronix-and-Micron-SPI-support.patch \
- file://0018-Add-support-for-Macronix-and-Micron-1Gbits-SPI-flash.patch \
file://0019-u-boot-full-platform-reset-espi-oob-ready.patch \
file://0020-Enable-PCIe-L1-support.patch \
file://0020-Add-system-reset-status-support.patch \
@@ -33,11 +30,21 @@ SRC_URI_append_intel-ast2500 = " \
file://0026-Aspeed-I2C-support-in-U-Boot.patch \
file://0027-CPLD-u-boot-commands-support-for-PFR.patch \
file://0028-Enabling-uart1-uart2-in-u-boot-for-BIOS-messages.patch \
+ file://0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch \
"
SRC_URI_append_intel-ast2500 += "${@bb.utils.contains('IMAGE_TYPE', 'pfr', 'file://0022-u-boot-env-change-for-PFR-image.patch', '', d)}"
require recipes-core/os-release/version-vars.inc
-BUILD_CFLAGS_append = " -DVER_MAJOR=${IPMI_MAJOR} -DVER_MINOR=${IPMI_MINOR}"
-BUILD_CFLAGS_append += " -DVER_AUX13=${IPMI_AUX13} -DVER_AUX14=${IPMI_AUX14}"
-BUILD_CFLAGS_append += " -DVER_AUX15=${IPMI_AUX15} -DVER_AUX16=${IPMI_AUX16}"
+python do_version () {
+ with open(d.expand('${S}/board/aspeed/ast-g5/intel-version.h'), 'w') as f:
+ f.write(d.expand('#define VER_MAJOR ${IPMI_MAJOR}\n'))
+ f.write(d.expand('#define VER_MINOR ${IPMI_MINOR}\n'))
+ f.write(d.expand('#define VER_AUX13 ${IPMI_AUX13}\n'))
+ f.write(d.expand('#define VER_AUX14 ${IPMI_AUX14}\n'))
+ f.write(d.expand('#define VER_AUX15 ${IPMI_AUX15}\n'))
+ f.write(d.expand('#define VER_AUX16 ${IPMI_AUX16}\n'))
+}
+
+do_version[vardepsexclude] = "IPMI_MAJOR IPMI_MINOR IPMI_AUX13 IPMI_AUX14 IPMI_AUX15 IPMI_AUX16 PRODUCT_GENERATION VERSION VERSION_ID BUILD_ID"
+addtask do_version after do_configure before do_compile
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_%.bbappend b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_%.bbappend
index 742334ade..acac46d70 120000..100644
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/u-boot-fw-utils-aspeed_%.bbappend
@@ -1 +1,50 @@
-u-boot-aspeed_%.bbappend \ No newline at end of file
+FILESEXTRAPATHS_append_intel-ast2500:= "${THISDIR}/files:"
+
+# the meta-phosphor layer adds this patch, which conflicts
+# with the intel layout for environment
+SRC_URI_remove_intel-ast2500 = " file://0001-configs-ast-Add-redundnant-env.patch"
+
+SRC_URI_append_intel-ast2500 = " \
+ file://0001-flash-use-readX-writeX-not-udelay.patch \
+ file://0002-intel-layout-environment-addr.patch \
+ file://0004-Make-sure-debug-uart-is-using-24MHz-clock-source.patch \
+ file://0005-enable-passthrough-in-uboot.patch \
+ file://0006-Add-Aspeed-g5-interrupt-support.patch \
+ file://0007-Add-espi-support.patch \
+ file://0008-add-sgio-support-for-port80-snoop-post-LEDs.patch \
+ file://0009-Add-basic-GPIO-support.patch \
+ file://0010-Update-Force-Firmware-Update-Jumper-to-use-new-gpio.patch \
+ file://0011-Add-basic-timer-support-for-Aspeed-g5-in-U-Boot.patch \
+ file://0012-Add-status-and-ID-LED-support.patch \
+ file://0013-aspeed-Add-Pwm-Driver.patch \
+ file://0014-Keep-interrupts-enabled-until-last-second.patch \
+ file://0015-Rewrite-memmove-to-optimize-on-word-transfers.patch \
+ file://0019-u-boot-full-platform-reset-espi-oob-ready.patch \
+ file://0020-Enable-PCIe-L1-support.patch \
+ file://0020-Add-system-reset-status-support.patch \
+ file://0021-Config-host-uart-clock-source-using-environment-vari.patch \
+ file://0022-KCS-driver-support-in-uBoot.patch \
+ file://0023-Add-TPM-enable-pulse-triggering.patch \
+ file://0024-IPMI-command-handler-implementation-in-uboot.patch \
+ file://0025-Manufacturing-mode-physical-presence-detection.patch \
+ file://0026-Aspeed-I2C-support-in-U-Boot.patch \
+ file://0027-CPLD-u-boot-commands-support-for-PFR.patch \
+ file://0028-Enabling-uart1-uart2-in-u-boot-for-BIOS-messages.patch \
+ file://0029-FFUJ-FW-IPMI-commands-and-flash-support-in-u-boot.patch \
+ "
+SRC_URI_append_intel-ast2500 += "${@bb.utils.contains('IMAGE_TYPE', 'pfr', 'file://0022-u-boot-env-change-for-PFR-image.patch', '', d)}"
+
+require recipes-core/os-release/version-vars.inc
+
+python do_version () {
+ with open(d.expand('${S}/board/aspeed/ast-g5/intel-version.h'), 'w') as f:
+ f.write(d.expand('#define VER_MAJOR ${IPMI_MAJOR}\n'))
+ f.write(d.expand('#define VER_MINOR ${IPMI_MINOR}\n'))
+ f.write(d.expand('#define VER_AUX13 ${IPMI_AUX13}\n'))
+ f.write(d.expand('#define VER_AUX14 ${IPMI_AUX14}\n'))
+ f.write(d.expand('#define VER_AUX15 ${IPMI_AUX15}\n'))
+ f.write(d.expand('#define VER_AUX16 ${IPMI_AUX16}\n'))
+}
+
+do_version[vardepsexclude] = "IPMI_MAJOR IPMI_MINOR IPMI_AUX13 IPMI_AUX14 IPMI_AUX15 IPMI_AUX16 PRODUCT_GENERATION VERSION VERSION_ID BUILD_ID"
+addtask do_version after do_configure before do_compile
diff --git a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug.bb b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug.bb
index fda0716c5..37ad5667f 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug.bb
+++ b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/at-scale-debug.bb
@@ -14,7 +14,7 @@ do_configure[depends] += "virtual/kernel:do_shared_workdir"
SRC_URI = "git://git@github.com/Intel-BMC/at-scale-debug;protocol=ssh"
-SRCREV = "0536b8cc3591a310ab36d145540811c728f8ef60"
+SRCREV = "3369d2e81f7e5e4bcb5d9e14bcecea7ae5da07fb"
S = "${WORKDIR}/git"
SYSTEMD_SERVICE_${PN} += "com.intel.AtScaleDebug.service"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/com.intel.AtScaleDebug.service b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/com.intel.AtScaleDebug.service
index 65d83b4c4..744982703 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/com.intel.AtScaleDebug.service
+++ b/meta-openbmc-mods/meta-common/recipes-core/at-scale-debug/files/com.intel.AtScaleDebug.service
@@ -1,6 +1,6 @@
[Unit]
Description=Intel BMC At Scale Debug
-Requires=com.intel.AtScaleDebugJtagTest.service network-online.target
+Requires=network-online.target
[Service]
Restart=always
@@ -10,4 +10,4 @@ Type=simple
SyslogIdentifier=asd
[Install]
-WantedBy=obmc-host-start@0.target
+WantedBy=multi-user.target
diff --git a/meta-openbmc-mods/meta-common/recipes-core/crashdump/crashdump_git.bb b/meta-openbmc-mods/meta-common/recipes-core/crashdump/crashdump_git.bb
index a1c53389d..8f876cc9c 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/crashdump/crashdump_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-core/crashdump/crashdump_git.bb
@@ -11,7 +11,7 @@ LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
SRC_URI = "git://git@github.com/Intel-BMC/at-scale-debug;protocol=ssh"
-SRCREV = "0536b8cc3591a310ab36d145540811c728f8ef60"
+SRCREV = "3369d2e81f7e5e4bcb5d9e14bcecea7ae5da07fb"
S = "${WORKDIR}/git/crashdump"
PACKAGES += "libpeci"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
index 22568dba2..70533e540 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend
@@ -1,2 +1,2 @@
SRC_URI = "git://github.com/openbmc/intel-ipmi-oem.git"
-SRCREV = "53870d7308e374df0c0382e3208ff1567a160947"
+SRCREV = "ba9c1765f5edc2f0891e012f33b3059a0dbd7ff1"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend b/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend
index 059931ed2..a47d923f8 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-core/os-release/os-release.bbappend
@@ -29,7 +29,6 @@ python do_compile_append () {
# Ensure the git commands run every time bitbake is invoked.
BB_DONT_CACHE = "1"
-do_compile[nostamp]="1"
# Make os-release available to other recipes.
SYSROOT_DIRS_append = " ${sysconfdir}"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/peci-pcie/peci-pcie_git.bb b/meta-openbmc-mods/meta-common/recipes-core/peci-pcie/peci-pcie_git.bb
index d66a14281..5061e1e56 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/peci-pcie/peci-pcie_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-core/peci-pcie/peci-pcie_git.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://git@github.com/Intel-BMC/at-scale-debug;protocol=ssh"
DEPENDS = "boost sdbusplus crashdump"
PV = "0.1+git${SRCPV}"
-SRCREV = "0536b8cc3591a310ab36d145540811c728f8ef60"
+SRCREV = "3369d2e81f7e5e4bcb5d9e14bcecea7ae5da07fb"
S = "${WORKDIR}/git/peci_pcie"
diff --git a/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-time-wait-sync.service b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-time-wait-sync.service
new file mode 100644
index 000000000..f71aea39d
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-time-wait-sync.service
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: LGPL-2.1+
+#
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Wait Until Kernel Time Synchronized
+Documentation=man:systemd-time-wait-sync.service(8)
+
+# Note that this tool doesn't need CAP_SYS_TIME itself, but it's primary
+# usecase is to run in conjunction with a local NTP service such as
+# systemd-timesyncd.service, which is conditioned this way. There might be
+# niche usecases where running this service independently is desired, but let's
+# make this all "just work" for the general case, and leave it to local
+# modifications to make it work in the remaining cases.
+
+ConditionCapability=CAP_SYS_TIME
+ConditionVirtualization=!container
+
+DefaultDependencies=no
+Before=time-sync.target shutdown.target
+Wants=time-sync.target
+Conflicts=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=/lib/systemd/systemd-time-wait-sync
+TimeoutStartSec=10
+RemainAfterExit=yes
+
+[Install]
+WantedBy=sysinit.target
diff --git a/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-timesyncd.service b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-timesyncd.service
new file mode 100644
index 000000000..9a5fffbb3
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd/systemd-timesyncd.service
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: LGPL-2.1+
+#
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Network Time Synchronization
+Documentation=man:systemd-timesyncd.service(8)
+ConditionCapability=CAP_SYS_TIME
+ConditionVirtualization=!container
+DefaultDependencies=no
+After=systemd-remount-fs.service systemd-sysusers.service var.mount
+Before=time-set.target sysinit.target shutdown.target
+Conflicts=shutdown.target
+Wants=time-set.target time-sync.target
+
+[Service]
+AmbientCapabilities=CAP_SYS_TIME
+CapabilityBoundingSet=CAP_SYS_TIME
+ExecStart=!!/lib/systemd/systemd-timesyncd
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=yes
+PrivateTmp=yes
+ProtectControlGroups=yes
+ProtectHome=yes
+ProtectHostname=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=strict
+Restart=always
+RestartSec=0
+RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+RuntimeDirectory=systemd/timesync
+StateDirectory=systemd/timesync
+SystemCallArchitectures=native
+SystemCallErrorNumber=EPERM
+SystemCallFilter=@system-service @clock
+Type=notify
+User=systemd-timesync
+WatchdogSec=3min
+
+[Install]
+WantedBy=sysinit.target
+Alias=dbus-org.freedesktop.timesync1.service
diff --git a/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd_%.bbappend
index ef7ac20e2..3e5adf7ce 100644
--- a/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-core/systemd/systemd_%.bbappend
@@ -6,6 +6,11 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://000-ro-rootfs-tmpfile-defaults.patch \
file://0001-Modfiy-system.conf-DefaultTimeoutStopSec.patch \
+ file://systemd-time-wait-sync.service \
"
USERADD_PACKAGES_remove = "${PN}-journal-gateway ${PN}-journal-upload ${PN}-journal-remote"
+
+do_install_append(){
+ cp -f ${WORKDIR}/systemd-time-wait-sync.service ${D}/lib/systemd/system/
+}
diff --git a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
index b174f271e..af5fa8b05 100644
--- a/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-extended/sdbusplus/sdbusplus_%.bbappend
@@ -1,4 +1,4 @@
#SRC_URI += "git://github.com/openbmc/sdbusplus"
-SRCREV = "c14699f63e909ed6d8599e65503ee9c1e3a104d6"
+SRCREV = "f8bbf17c3db879359b0984b40250e4db3d274be1"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
new file mode 100644
index 000000000..24a8c668b
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-intel/psu-manager/psu-manager.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Power supply manager for Intel based platform"
+DESCRIPTION = "Power supply manager which include PSU Cold Redundancy service"
+
+SRC_URI = "git://git-amr-2.devtools.intel.com:29418/openbmc-provingground.git;protocol=ssh;nobranch=1"
+SRCREV = "fe33964c744f871f3e024dd8d0b6ffba67394c30"
+
+S = "${WORKDIR}/git/psu-manager/"
+
+PV = "1.0+git${SRCPV}"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+inherit cmake
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} += "cold-redundancy.service"
+
+DEPENDS += " \
+ systemd \
+ sdbusplus \
+ phosphor-dbus-interfaces \
+ phosphor-logging \
+ boost \
+ i2c-tools \
+ "
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
index 64645da2b..c37ea66e1 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv1.bb
@@ -2,7 +2,7 @@ SUMMARY = "SMBIOS MDR version 1 service for Intel based platform"
DESCRIPTION = "SMBIOS MDR version 1 service for Intel based platfrom"
SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh"
-SRCREV = "9d2d365a79591ec21b54ecde957263f1ba1d8391"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
S = "${WORKDIR}/git/services/smbios/"
diff --git a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
index 175d5edf9..a41cdb50b 100644
--- a/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
+++ b/meta-openbmc-mods/meta-common/recipes-intel/smbios/smbios-mdrv2.bb
@@ -2,7 +2,7 @@ SUMMARY = "SMBIOS MDR version 2 service for Intel based platform"
DESCRIPTION = "SMBIOS MDR version 2 service for Intel based platfrom"
SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh"
-SRCREV = "9d2d365a79591ec21b54ecde957263f1ba1d8391"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
S = "${WORKDIR}/git/services/smbios-mdrv2/"
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0052-drivers-jtag-Add-JTAG-core-driver.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0052-drivers-jtag-Add-JTAG-core-driver.patch
index 7ba94a7bc..6c9d46d9d 100644
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0052-drivers-jtag-Add-JTAG-core-driver.patch
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0052-drivers-jtag-Add-JTAG-core-driver.patch
@@ -1,6 +1,6 @@
From 0b8b93851bb79e70e91159f310afd4b56084977f Mon Sep 17 00:00:00 2001
From: "Corona, Ernesto" <ernesto.corona@intel.com>
-Date: Mon, 6 May 2019 10:05:51 -0800
+Date: Fri, 7 Jun 2019 07:37:39 -0800
Subject: [PATCH v29 1/6] drivers: jtag: Add JTAG core driver
JTAG class driver provide infrastructure to support hardware/software
@@ -58,6 +58,9 @@ Comments pointed by Steven Filary <steven.a.filary@intel.com>
the driver is not in use to allow other HW to own the JTAG bus. Remove SCU
register accesses. This register controls the JTAG controller mode
(master/slave).
+- Fix static analysis issues
+- Add support for multichain. Set tap state and xfer operations now include
+ two tap state arguments: current state and end state.
v27->v28
Comments pointed by Steven Filary <steven.a.filary@intel.com>
@@ -253,10 +256,10 @@ Comments pointed by Tobias Klauser <tklauser@distanz.ch>
drivers/Makefile | 1 +
drivers/jtag/Kconfig | 17 +++
drivers/jtag/Makefile | 1 +
- drivers/jtag/jtag.c | 314 ++++++++++++++++++++++++++++++++++++++++++++++
+ drivers/jtag/jtag.c | 321 ++++++++++++++++++++++++++++++++++++++++++++++
include/linux/jtag.h | 47 +++++++
- include/uapi/linux/jtag.h | 208 ++++++++++++++++++++++++++++++
- 7 files changed, 589 insertions(+)
+ include/uapi/linux/jtag.h | 214 ++++++++++++++++++++++++++++++
+ 7 files changed, 602 insertions(+)
create mode 100644 drivers/jtag/Kconfig
create mode 100644 drivers/jtag/Makefile
create mode 100644 drivers/jtag/jtag.c
@@ -317,7 +320,7 @@ new file mode 100644
index 0000000..47503a1
--- /dev/null
+++ b/drivers/jtag/jtag.c
-@@ -0,0 +1,314 @@
+@@ -0,0 +1,321 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Copyright (c) 2018 Mellanox Technologies. All rights reserved.
+// Copyright (c) 2018 Oleksandr Shamray <oleksandrs@mellanox.com>
@@ -353,7 +356,7 @@ index 0000000..47503a1
+static long jtag_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ struct jtag *jtag = file->private_data;
-+ struct jtag_end_tap_state endstate;
++ struct jtag_tap_state tapstate;
+ struct jtag_xfer xfer;
+ struct bitbang_packet bitbang;
+ struct tck_bitbang *bitbang_data;
@@ -392,17 +395,20 @@ index 0000000..47503a1
+ break;
+
+ case JTAG_SIOCSTATE:
-+ if (copy_from_user(&endstate, (const void __user *)arg,
-+ sizeof(struct jtag_end_tap_state)))
++ if (copy_from_user(&tapstate, (const void __user *)arg,
++ sizeof(struct jtag_tap_state)))
+ return -EFAULT;
+
-+ if (endstate.endstate > JTAG_STATE_UPDATEIR)
++ if (tapstate.from > JTAG_STATE_CURRENT)
+ return -EINVAL;
+
-+ if (endstate.reset > JTAG_FORCE_RESET)
++ if (tapstate.endstate > JTAG_STATE_CURRENT)
+ return -EINVAL;
+
-+ err = jtag->ops->status_set(jtag, &endstate);
++ if (tapstate.reset > JTAG_FORCE_RESET)
++ return -EINVAL;
++
++ err = jtag->ops->status_set(jtag, &tapstate);
+ break;
+
+ case JTAG_IOCXFER:
@@ -419,7 +425,10 @@ index 0000000..47503a1
+ if (xfer.direction > JTAG_READ_WRITE_XFER)
+ return -EINVAL;
+
-+ if (xfer.endstate > JTAG_STATE_UPDATEIR)
++ if (xfer.from > JTAG_STATE_CURRENT)
++ return -EINVAL;
++
++ if (xfer.endstate > JTAG_STATE_CURRENT)
+ return -EINVAL;
+
+ data_size = DIV_ROUND_UP(xfer.length, BITS_PER_BYTE);
@@ -607,7 +616,8 @@ index 0000000..47503a1
+ struct jtag **ptr;
+ int ret;
+
-+ ptr = devres_alloc(devm_jtag_unregister, sizeof(*ptr), GFP_KERNEL);
++ ptr = devres_alloc(devm_jtag_unregister, sizeof(struct jtag *),
++ GFP_KERNEL);
+ if (!ptr)
+ return -ENOMEM;
+
@@ -669,7 +679,7 @@ index 0000000..4153c90
+ int (*freq_get)(struct jtag *jtag, u32 *freq);
+ int (*freq_set)(struct jtag *jtag, u32 freq);
+ int (*status_get)(struct jtag *jtag, u32 *state);
-+ int (*status_set)(struct jtag *jtag, struct jtag_end_tap_state *endst);
++ int (*status_set)(struct jtag *jtag, struct jtag_tap_state *endst);
+ int (*xfer)(struct jtag *jtag, struct jtag_xfer *xfer, u8 *xfer_data);
+ int (*mode_set)(struct jtag *jtag, struct jtag_mode *jtag_mode);
+ int (*bitbang)(struct jtag *jtag, struct bitbang_packet *bitbang,
@@ -690,7 +700,7 @@ new file mode 100644
index 0000000..3f9e195
--- /dev/null
+++ b/include/uapi/linux/jtag.h
-@@ -0,0 +1,208 @@
+@@ -0,0 +1,214 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (c) 2018 Mellanox Technologies. All rights reserved. */
+/* Copyright (c) 2018 Oleksandr Shamray <oleksandrs@mellanox.com> */
@@ -732,7 +742,7 @@ index 0000000..3f9e195
+#define JTAG_XFER_SW_MODE 0
+
+/**
-+ * enum jtag_endstate:
++ * enum jtag_tapstate:
+ *
+ * @JTAG_STATE_TLRESET: JTAG state machine Test Logic Reset state
+ * @JTAG_STATE_IDLE: JTAG state machine IDLE state
@@ -750,8 +760,9 @@ index 0000000..3f9e195
+ * @JTAG_STATE_PAUSEIR: JTAG state machine PAUSE_IR state
+ * @JTAG_STATE_EXIT2IR: JTAG state machine EXIT-2 IR state
+ * @JTAG_STATE_UPDATEIR: JTAG state machine UPDATE IR state
++ * @JTAG_STATE_CURRENT: JTAG current state, saved by driver
+ */
-+enum jtag_endstate {
++enum jtag_tapstate {
+ JTAG_STATE_TLRESET,
+ JTAG_STATE_IDLE,
+ JTAG_STATE_SELECTDR,
@@ -767,7 +778,8 @@ index 0000000..3f9e195
+ JTAG_STATE_EXIT1IR,
+ JTAG_STATE_PAUSEIR,
+ JTAG_STATE_EXIT2IR,
-+ JTAG_STATE_UPDATEIR
++ JTAG_STATE_UPDATEIR,
++ JTAG_STATE_CURRENT
+};
+
+/**
@@ -806,7 +818,7 @@ index 0000000..3f9e195
+};
+
+/**
-+ * struct jtag_end_tap_state - forces JTAG state machine to go into a TAPC
++ * struct jtag_tap_state - forces JTAG state machine to go into a TAPC
+ * state
+ *
+ * @reset: 0 - run IDLE/PAUSE from current state
@@ -816,8 +828,9 @@ index 0000000..3f9e195
+ *
+ * Structure provide interface to JTAG device for JTAG set state execution.
+ */
-+struct jtag_end_tap_state {
++struct jtag_tap_state {
+ __u8 reset;
++ __u8 from;
+ __u8 endstate;
+ __u8 tck;
+};
@@ -827,15 +840,18 @@ index 0000000..3f9e195
+ *
+ * @type: transfer type
+ * @direction: xfer direction
-+ * @length: xfer bits len
++ * @from: xfer current state
++ * @endstate: xfer end state
++ * @padding: xfer padding
++ * @length: xfer bits length
+ * @tdio : xfer data array
-+ * @endir: xfer end state
+ *
+ * Structure provide interface to JTAG device for JTAG SDR/SIR xfer execution.
+ */
+struct jtag_xfer {
+ __u8 type;
+ __u8 direction;
++ __u8 from;
+ __u8 endstate;
+ __u8 padding;
+ __u32 length;
@@ -890,11 +906,11 @@ index 0000000..3f9e195
+/* ioctl interface */
+#define __JTAG_IOCTL_MAGIC 0xb2
+
-+#define JTAG_SIOCSTATE _IOW(__JTAG_IOCTL_MAGIC, 0, struct jtag_end_tap_state)
++#define JTAG_SIOCSTATE _IOW(__JTAG_IOCTL_MAGIC, 0, struct jtag_tap_state)
+#define JTAG_SIOCFREQ _IOW(__JTAG_IOCTL_MAGIC, 1, unsigned int)
+#define JTAG_GIOCFREQ _IOR(__JTAG_IOCTL_MAGIC, 2, unsigned int)
+#define JTAG_IOCXFER _IOWR(__JTAG_IOCTL_MAGIC, 3, struct jtag_xfer)
-+#define JTAG_GIOCSTATUS _IOWR(__JTAG_IOCTL_MAGIC, 4, enum jtag_endstate)
++#define JTAG_GIOCSTATUS _IOWR(__JTAG_IOCTL_MAGIC, 4, enum jtag_tapstate)
+#define JTAG_SIOCMODE _IOW(__JTAG_IOCTL_MAGIC, 5, unsigned int)
+#define JTAG_IOCBITBANG _IOW(__JTAG_IOCTL_MAGIC, 6, unsigned int)
+
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0053-Add-Aspeed-SoC-24xx-and-25xx-families-JTAG.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0053-Add-Aspeed-SoC-24xx-and-25xx-families-JTAG.patch
index d5d43f31b..94722d6c4 100644
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0053-Add-Aspeed-SoC-24xx-and-25xx-families-JTAG.patch
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0053-Add-Aspeed-SoC-24xx-and-25xx-families-JTAG.patch
@@ -1,6 +1,6 @@
From 817a43d1b1e197e7eff43492599469bbc23bf0fd Mon Sep 17 00:00:00 2001
From: "Corona, Ernesto" <ernesto.corona@intel.com>
-Date: Fri, 17 May 2019 11:18:13 -0800
+Date: Mon, 3 Jun 2019 08:22:09 -0800
Subject: [PATCH v29 2/6] Add Aspeed SoC 24xx and 25xx families JTAG master
driver
@@ -46,6 +46,8 @@ Comments pointed by Steven Filary <steven.a.filary@intel.com>
(master/slave).
- Encansulate dev_dgb message into DEBUG_JTAG macros to improve driver's JTAG
performace.
+- Add support for multichain. Set tap state and xfer operations now include
+ two tap state arguments: current state and end state.
v27->v28
Comments pointed by Steven Filary <steven.a.filary@intel.com>
@@ -198,8 +200,8 @@ Comments pointed by kbuild test robot <lkp@intel.com>
---
drivers/jtag/Kconfig | 14 +
drivers/jtag/Makefile | 1 +
- drivers/jtag/jtag-aspeed.c | 1040 ++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 1055 insertions(+)
+ drivers/jtag/jtag-aspeed.c | 1050 ++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 1065 insertions(+)
create mode 100644 drivers/jtag/jtag-aspeed.c
diff --git a/drivers/jtag/Kconfig b/drivers/jtag/Kconfig
@@ -236,7 +238,7 @@ new file mode 100644
index 0000000..1d41a66
--- /dev/null
+++ b/drivers/jtag/jtag-aspeed.c
-@@ -0,0 +1,1040 @@
+@@ -0,0 +1,1050 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 Mellanox Technologies. All rights reserved.
+// Copyright (c) 2018 Oleksandr Shamray <oleksandrs@mellanox.com>
@@ -327,6 +329,7 @@ index 0000000..1d41a66
+#define WAIT_ITERATIONS 75
+
+/*#define USE_INTERRUPTS*/
++/*#define DEBUG_JTAG*/
+
+static const char * const regnames[] = {
+ [ASPEED_JTAG_DATA] = "ASPEED_JTAG_DATA",
@@ -344,7 +347,7 @@ index 0000000..1d41a66
+ void __iomem *reg_base;
+ struct device *dev;
+ struct clk *pclk;
-+ enum jtag_endstate status;
++ enum jtag_tapstate status;
+ int irq;
+ struct reset_control *rst;
+ u32 flag;
@@ -480,10 +483,12 @@ index 0000000..1d41a66
+ {0x0b, 4}, {0x0b, 5}, {0x2b, 6}, {0x00, 0} },
+};
+
++#ifdef DEBUG_JTAG
+static char *end_status_str[] = {
+ "tlr", "idle", "selDR", "capDR", "sDR", "ex1DR", "pDR", "ex2DR",
+ "updDR", "selIR", "capIR", "sIR", "ex1IR", "pIR", "ex2IR", "updIR"
+};
++#endif
+
+static u32 aspeed_jtag_read(struct aspeed_jtag *aspeed_jtag, u32 reg)
+{
@@ -776,24 +781,29 @@ index 0000000..1d41a66
+}
+
+static void aspeed_jtag_set_tap_state(struct aspeed_jtag *aspeed_jtag,
-+ enum jtag_endstate endstate)
++ enum jtag_tapstate from_state,
++ enum jtag_tapstate end_state)
+{
+ int i = 0;
-+ enum jtag_endstate from, to;
++ enum jtag_tapstate from, to;
++
++ from = from_state;
++ to = end_state;
++
++ if (from == JTAG_STATE_CURRENT)
++ from = aspeed_jtag->status;
+
-+ from = aspeed_jtag->status;
-+ to = endstate;
+ for (i = 0; i < _tms_cycle_lookup[from][to].count; i++)
+ aspeed_jtag_tck_cycle(aspeed_jtag,
+ ((_tms_cycle_lookup[from][to].tmsbits >> i) & 0x1), 0);
-+ aspeed_jtag->status = endstate;
++ aspeed_jtag->status = end_state;
+}
+
-+static void aspeed_jtag_end_tap_state_sw(struct aspeed_jtag *aspeed_jtag,
-+ struct jtag_end_tap_state *endstate)
++static void aspeed_jtag_set_tap_state_sw(struct aspeed_jtag *aspeed_jtag,
++ struct jtag_tap_state *tapstate)
+{
+ /* SW mode from curent tap state -> to end_state */
-+ if (endstate->reset) {
++ if (tapstate->reset) {
+ int i = 0;
+
+ for (i = 0; i < ASPEED_JTAG_RESET_CNTR; i++)
@@ -801,26 +811,27 @@ index 0000000..1d41a66
+ aspeed_jtag->status = JTAG_STATE_TLRESET;
+ }
+
-+ aspeed_jtag_set_tap_state(aspeed_jtag, endstate->endstate);
++ aspeed_jtag_set_tap_state(aspeed_jtag, tapstate->from,
++ tapstate->endstate);
+}
+
+static int aspeed_jtag_status_set(struct jtag *jtag,
-+ struct jtag_end_tap_state *endstate)
++ struct jtag_tap_state *tapstate)
+{
+ struct aspeed_jtag *aspeed_jtag = jtag_priv(jtag);
+
+#ifdef DEBUG_JTAG
+ dev_dbg(aspeed_jtag->dev, "Set TAP state: %s\n",
-+ end_status_str[endstate->endstate]);
++ end_status_str[tapstate->endstate]);
+#endif
+
+ if (!(aspeed_jtag->mode & JTAG_XFER_HW_MODE)) {
-+ aspeed_jtag_end_tap_state_sw(aspeed_jtag, endstate);
++ aspeed_jtag_set_tap_state_sw(aspeed_jtag, tapstate);
+ return 0;
+ }
+
+ /* x TMS high + 1 TMS low */
-+ if (endstate->reset) {
++ if (tapstate->reset) {
+ /* Disable sw mode */
+ aspeed_jtag_write(aspeed_jtag, 0, ASPEED_JTAG_SW);
+ mdelay(1);
@@ -851,9 +862,11 @@ index 0000000..1d41a66
+#endif
+
+ if (xfer->type == JTAG_SIR_XFER)
-+ aspeed_jtag_set_tap_state(aspeed_jtag, JTAG_STATE_SHIFTIR);
++ aspeed_jtag_set_tap_state(aspeed_jtag, xfer->from,
++ JTAG_STATE_SHIFTIR);
+ else
-+ aspeed_jtag_set_tap_state(aspeed_jtag, JTAG_STATE_SHIFTDR);
++ aspeed_jtag_set_tap_state(aspeed_jtag, xfer->from,
++ JTAG_STATE_SHIFTDR);
+
+ tdi = ASPEED_JTAG_GET_TDI(xfer->direction, data[index]);
+ data[index] = 0;
@@ -889,7 +902,8 @@ index 0000000..1d41a66
+ ASPEED_JTAG_DATA_CHUNK_SIZE);
+ aspeed_jtag->status = (xfer->type == JTAG_SIR_XFER) ?
+ JTAG_STATE_EXIT1IR : JTAG_STATE_EXIT1DR;
-+ aspeed_jtag_set_tap_state(aspeed_jtag, xfer->endstate);
++ aspeed_jtag_set_tap_state(aspeed_jtag, aspeed_jtag->status,
++ xfer->endstate);
+ }
+}
+
@@ -916,8 +930,7 @@ index 0000000..1d41a66
+
+static int aspeed_jtag_xfer_push_data_last(struct aspeed_jtag *aspeed_jtag,
+ enum jtag_xfer_type type,
-+ u32 shift_bits,
-+ enum jtag_endstate endstate)
++ u32 shift_bits)
+{
+ int res = 0;
+
@@ -1014,8 +1027,7 @@ index 0000000..1d41a66
+ if (aspeed_jtag_xfer_push_data_last(
+ aspeed_jtag,
+ xfer->type,
-+ shift_bits,
-+ xfer->endstate) != 0) {
++ shift_bits) != 0) {
+ return -EFAULT;
+ }
+ } else {
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0055-Documentation-jtag-Add-ABI-documentation.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0055-Documentation-jtag-Add-ABI-documentation.patch
index af641ffe2..b91311d94 100644
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0055-Documentation-jtag-Add-ABI-documentation.patch
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0055-Documentation-jtag-Add-ABI-documentation.patch
@@ -86,8 +86,8 @@ Comments pointed by Pavel Machek <pavel@ucw.cz>
---
Documentation/ABI/testing/jtag-dev | 23 +++++++
Documentation/jtag/overview | 27 ++++++++
- Documentation/jtag/transactions | 138 +++++++++++++++++++++++++++++++++++++
- 3 files changed, 188 insertions(+)
+ Documentation/jtag/transactions | 145 +++++++++++++++++++++++++++++++++++++
+ 3 files changed, 195 insertions(+)
create mode 100644 Documentation/ABI/testing/jtag-dev
create mode 100644 Documentation/jtag/overview
create mode 100644 Documentation/jtag/transactions
@@ -159,7 +159,7 @@ new file mode 100644
index 0000000..76fd0b1
--- /dev/null
+++ b/Documentation/jtag/transactions
-@@ -0,0 +1,138 @@
+@@ -0,0 +1,145 @@
+The JTAG API
+=============
+
@@ -204,8 +204,9 @@ index 0000000..76fd0b1
+------
+Force JTAG state machine to go into a TAPC state
+
-+struct jtag_end_tap_state {
++struct jtag_tap_state {
+ __u8 reset;
++ __u8 from;
+ __u8 endstate;
+ __u8 tck;
+};
@@ -217,21 +218,22 @@ index 0000000..76fd0b1
+tck: clock counter
+
+Example:
-+ struct jtag_end_tap_state end_state;
++ struct jtag_tap_state tap_state;
+
-+ end_state.endstate = JTAG_STATE_IDLE;
-+ end_state.reset = 0;
-+ end_state.tck = data_p->tck;
++ tap_state.from = JTAG_STATE_TLRESET;
++ tap_state.endstate = JTAG_STATE_IDLE;
++ tap_state.reset = 0;
++ tap_state.tck = data_p->tck;
+ usleep(25 * 1000);
-+ ioctl(jtag_fd, JTAG_SIOCSTATE, &end_state);
++ ioctl(jtag_fd, JTAG_SIOCSTATE, &tap_state);
+
+JTAG_GIOCSTATUS
+------
+Get JTAG TAPC machine state
+
+ unsigned int jtag_fd;
-+ jtag_endstate endstate;
-+ ioctl(jtag_fd, JTAG_GIOCSTATUS, &endstate);
++ jtag_tapstate tapstate;
++ ioctl(jtag_fd, JTAG_GIOCSTATUS, &tapstate);
+
+JTAG_IOCXFER
+------
@@ -240,6 +242,7 @@ index 0000000..76fd0b1
+struct jtag_xfer {
+ __u8 type;
+ __u8 direction;
++ __u8 from;
+ __u8 endstate;
+ __u8 padding;
+ __u32 length;
@@ -250,8 +253,11 @@ index 0000000..76fd0b1
+direction: xfer direction - JTAG_READ_XFER/JTAG_WRITE_XFER/JTAG_READ_WRITE_XFER
+length: xfer data length in bits
+tdio : xfer data array
++from: xfer from state can be current JTAG tap state saved by the driver
++ JTAG_STATE_CURRENT or in a multichain environment any state listed in
++ jtag_tapstate struct saved by your multichain controller software.
+endstate: xfer end state after transaction finish
-+ can be: any state listed in jtag_endstate struct
++ can be: any state listed in jtag_tapstate struct
+
+Example:
+ struct jtag_xfer xfer;
@@ -261,6 +267,7 @@ index 0000000..76fd0b1
+ xfer.type = JTAG_SDR_XFER;
+ xfer.tdio = (__u64)buf;
+ xfer.length = buf_len;
++ xfer.from = JTAG_STATE_TLRESET;
+ xfer.endstate = JTAG_STATE_IDLE;
+
+ if (is_read)
@@ -300,4 +307,3 @@ index 0000000..76fd0b1
+ tdo1 = bitbang_data[1].tdo;
--
2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0059-media-aspeed-remove-source-buffer-allocation-before-.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0059-media-aspeed-remove-source-buffer-allocation-before-.patch
deleted file mode 100644
index 41bf4fb55..000000000
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0059-media-aspeed-remove-source-buffer-allocation-before-.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 28aa61a720d2db812d66b2b59681ba184771ff3e Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Date: Tue, 21 May 2019 16:00:28 -0700
-Subject: [PATCH] media: aspeed: remove source buffer allocation before mode
- detection
-
-Mode detection doesn't require source buffer allocation so this
-commit removes that.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
----
- drivers/media/platform/aspeed-video.c | 37 +++++------------------------------
- 1 file changed, 5 insertions(+), 32 deletions(-)
-
-diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
-index 1bb863b32836..fed51fd22ce2 100644
---- a/drivers/media/platform/aspeed-video.c
-+++ b/drivers/media/platform/aspeed-video.c
-@@ -733,27 +733,6 @@ static void aspeed_video_get_resolution(struct aspeed_video *video)
- det->height = MIN_HEIGHT;
- video->v4l2_input_status = V4L2_IN_ST_NO_SIGNAL;
-
-- /*
-- * Since we need max buffer size for detection, free the second source
-- * buffer first.
-- */
-- if (video->srcs[1].size)
-- aspeed_video_free_buf(video, &video->srcs[1]);
--
-- if (video->srcs[0].size < VE_MAX_SRC_BUFFER_SIZE) {
-- if (video->srcs[0].size)
-- aspeed_video_free_buf(video, &video->srcs[0]);
--
-- if (!aspeed_video_alloc_buf(video, &video->srcs[0],
-- VE_MAX_SRC_BUFFER_SIZE)) {
-- dev_err(video->dev,
-- "Failed to allocate source buffers\n");
-- return;
-- }
-- }
--
-- aspeed_video_write(video, VE_SRC0_ADDR, video->srcs[0].dma);
--
- do {
- if (tries) {
- set_current_state(TASK_INTERRUPTIBLE);
-@@ -873,20 +852,14 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
-
- size *= 4;
-
-- if (size == video->srcs[0].size / 2) {
-- aspeed_video_write(video, VE_SRC1_ADDR,
-- video->srcs[0].dma + size);
-- } else if (size == video->srcs[0].size) {
-- if (!aspeed_video_alloc_buf(video, &video->srcs[1], size))
-- goto err_mem;
--
-- aspeed_video_write(video, VE_SRC1_ADDR, video->srcs[1].dma);
-- } else {
-- aspeed_video_free_buf(video, &video->srcs[0]);
-+ if (size != video->srcs[0].size) {
-+ if (video->srcs[0].size)
-+ aspeed_video_free_buf(video, &video->srcs[0]);
-+ if (video->srcs[1].size)
-+ aspeed_video_free_buf(video, &video->srcs[1]);
-
- if (!aspeed_video_alloc_buf(video, &video->srcs[0], size))
- goto err_mem;
--
- if (!aspeed_video_alloc_buf(video, &video->srcs[1], size))
- goto err_mem;
-
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0060-media-aspeed-use-different-delays-for-triggering-VE-.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0060-media-aspeed-use-different-delays-for-triggering-VE-.patch
deleted file mode 100644
index 3e158c628..000000000
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0060-media-aspeed-use-different-delays-for-triggering-VE-.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 431c7974302fad5ae835adb46d3c8fa4034c845a Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Date: Tue, 21 May 2019 16:06:56 -0700
-Subject: [PATCH 2/4] media: aspeed: use different delays for triggering VE H/W
- reset
-
-In case of watchdog timeout detected while doing mode detection,
-it's better triggering video engine hardware reset immediately so
-this commit fixes code for the case. Other than the case, it will
-trigger video engine hardware reset after RESOLUTION_CHANGE_DELAY.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
----
- drivers/media/platform/aspeed-video.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
-index ee1f87a08c7c..b8540cc7848d 100644
---- a/drivers/media/platform/aspeed-video.c
-+++ b/drivers/media/platform/aspeed-video.c
-@@ -522,7 +522,7 @@ static void aspeed_video_bufs_done(struct aspeed_video *video,
- spin_unlock_irqrestore(&video->lock, flags);
- }
-
--static void aspeed_video_irq_res_change(struct aspeed_video *video)
-+static void aspeed_video_irq_res_change(struct aspeed_video *video, ulong delay)
- {
- spin_lock(&video->lock);
- dev_dbg(video->dev, "Resolution changed; resetting\n");
-@@ -534,7 +534,7 @@ static void aspeed_video_irq_res_change(struct aspeed_video *video)
- spin_unlock(&video->lock);
- aspeed_video_bufs_done(video, VB2_BUF_STATE_ERROR);
-
-- schedule_delayed_work(&video->res_work, RESOLUTION_CHANGE_DELAY);
-+ schedule_delayed_work(&video->res_work, delay);
- }
-
- static irqreturn_t aspeed_video_irq(int irq, void *arg)
-@@ -547,7 +547,7 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg)
- * re-initialize
- */
- if (sts & VE_INTERRUPT_MODE_DETECT_WD) {
-- aspeed_video_irq_res_change(video);
-+ aspeed_video_irq_res_change(video, 0);
- return IRQ_HANDLED;
- }
-
-@@ -565,7 +565,8 @@ static irqreturn_t aspeed_video_irq(int irq, void *arg)
- * Signal acquired while NOT doing resolution
- * detection; reset the engine and re-initialize
- */
-- aspeed_video_irq_res_change(video);
-+ aspeed_video_irq_res_change(video,
-+ RESOLUTION_CHANGE_DELAY);
- return IRQ_HANDLED;
- }
- }
---
-2.21.0
-
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch
deleted file mode 100644
index a10963572..000000000
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From fa386f96691ed8501949daf5129667b72723a55e Mon Sep 17 00:00:00 2001
-From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
-Date: Thu, 23 May 2019 14:33:03 -0700
-Subject: [PATCH] media: aspeed: add a workaround to fix a silicon bug
-
-AST2500 silicon revision A1 and A2 have a silicon bug which causes
-extremly long capturing time on specific resolutions (1680 width).
-To fix the bug, this commit adjusts the capturing window register
-setting to 1728 if detected width is 1680. The compression window
-register setting will be kept as the original width so output
-result will be the same.
-
-Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
----
- drivers/media/platform/aspeed-video.c | 28 +++++++++++++++++++++-------
- 1 file changed, 21 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
-index 67d6380d4ef3..f58f44eab588 100644
---- a/drivers/media/platform/aspeed-video.c
-+++ b/drivers/media/platform/aspeed-video.c
-@@ -826,8 +826,29 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
- struct v4l2_bt_timings *act = &video->active_timings;
- unsigned int size = act->width * act->height;
-
-+ /* Set capture/compression frame sizes */
- aspeed_video_calc_compressed_size(video, size);
-
-+ if (video->active_timings.width == 1680) {
-+ /*
-+ * This is a workaround to fix a silicon bug on A1 and A2
-+ * revisions. Since it doesn't break capturing operation of
-+ * other revisions, use it for all revisions without checking
-+ * the revision ID. It picked 1728 which is a very next
-+ * 64-pixels aligned value to 1680 to minimize memory bandwidth
-+ * and to get better access speed from video engine.
-+ */
-+ aspeed_video_write(video, VE_CAP_WINDOW,
-+ 1728 << 16 | act->height);
-+ size += (1728 - 1680) * video->active_timings.height;
-+ } else {
-+ aspeed_video_write(video, VE_CAP_WINDOW,
-+ act->width << 16 | act->height);
-+ }
-+ aspeed_video_write(video, VE_COMP_WINDOW,
-+ act->width << 16 | act->height);
-+ aspeed_video_write(video, VE_SRC_SCANLINE_OFFSET, act->width * 4);
-+
- /* Don't use direct mode below 1024 x 768 (irqs don't fire) */
- if (size < DIRECT_FETCH_THRESHOLD) {
- aspeed_video_write(video, VE_TGS_0,
-@@ -844,13 +865,6 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
- aspeed_video_update(video, VE_CTRL, 0, VE_CTRL_DIRECT_FETCH);
- }
-
-- /* Set capture/compression frame sizes */
-- aspeed_video_write(video, VE_CAP_WINDOW,
-- act->width << 16 | act->height);
-- aspeed_video_write(video, VE_COMP_WINDOW,
-- act->width << 16 | act->height);
-- aspeed_video_write(video, VE_SRC_SCANLINE_OFFSET, act->width * 4);
--
- size *= 4;
-
- if (size != video->srcs[0].size) {
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0065-i2c-aspeed-fix-master-pending-state-handling.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0065-i2c-aspeed-fix-master-pending-state-handling.patch
new file mode 100644
index 000000000..3a86d5b25
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0065-i2c-aspeed-fix-master-pending-state-handling.patch
@@ -0,0 +1,55 @@
+From 50221ac92816333efcf961c5f22f8b9ffdccb31b Mon Sep 17 00:00:00 2001
+From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
+Date: Tue, 11 Jun 2019 14:59:53 -0700
+Subject: [PATCH] i2c: aspeed: fix master pending state handling
+
+In case of a master pending state, it should not trigger the master
+command because this H/W is sharing the same byte buffer for slave
+and master operation, so this commit fixes the issue with making
+the master command triggering happens when the state goes to active
+state.
+
+Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
+---
+ drivers/i2c/busses/i2c-aspeed.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c
+index f96160e01a69..64bc68eaa88f 100644
+--- a/drivers/i2c/busses/i2c-aspeed.c
++++ b/drivers/i2c/busses/i2c-aspeed.c
+@@ -384,18 +384,19 @@ static void aspeed_i2c_do_start(struct aspeed_i2c_bus *bus)
+ struct i2c_msg *msg = &bus->msgs[bus->msgs_index];
+ u8 slave_addr = i2c_8bit_addr_from_msg(msg);
+
+- bus->master_state = ASPEED_I2C_MASTER_START;
+-
+ #if IS_ENABLED(CONFIG_I2C_SLAVE)
+ /*
+ * If it's requested in the middle of a slave session, set the master
+ * state to 'pending' then H/W will continue handling this master
+ * command when the bus comes back to the idle state.
+ */
+- if (bus->slave_state != ASPEED_I2C_SLAVE_INACTIVE)
++ if (bus->slave_state != ASPEED_I2C_SLAVE_INACTIVE) {
+ bus->master_state = ASPEED_I2C_MASTER_PENDING;
++ return;
++ }
+ #endif /* CONFIG_I2C_SLAVE */
+
++ bus->master_state = ASPEED_I2C_MASTER_START;
+ bus->buf_index = 0;
+
+ if (msg->flags & I2C_M_RD) {
+@@ -480,7 +481,7 @@ static u32 aspeed_i2c_master_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ if (bus->slave_state != ASPEED_I2C_SLAVE_INACTIVE)
+ goto out_no_complete;
+
+- bus->master_state = ASPEED_I2C_MASTER_START;
++ aspeed_i2c_do_start(bus);
+ }
+ #endif /* CONFIG_I2C_SLAVE */
+
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0066-i2c-aspeed-add-buffer-mode-transfer-support.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0066-i2c-aspeed-add-buffer-mode-transfer-support.patch
new file mode 100644
index 000000000..9480daeff
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0066-i2c-aspeed-add-buffer-mode-transfer-support.patch
@@ -0,0 +1,770 @@
+From efb710a6b3a39f28b988af717eefc1b72c4c43bd Mon Sep 17 00:00:00 2001
+From: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
+Date: Tue, 11 Jun 2019 15:07:08 -0700
+Subject: [PATCH] i2c: aspeed: add buffer mode transfer support
+
+Byte mode currently this driver uses makes lots of interrupt call
+which isn't good for performance and it makes the driver very
+timing sensitive. To improve performance of the driver, this commit
+adds buffer mode transfer support which uses I2C SRAM buffer
+instead of using a single byte buffer.
+
+AST2400:
+It has 2 KBytes (256 Bytes x 8 pages) of I2C SRAM buffer pool from
+0x1e78a800 to 0x1e78afff that can be used for all busses with
+buffer pool manipulation. To simplify implementation for supporting
+both AST2400 and AST2500, it assigns each 128 Bytes per bus without
+using buffer pool manipulation so total 1792 Bytes of I2C SRAM
+buffer will used.
+
+AST2500:
+It has 16 Bytes of individual I2C SRAM buffer per each bus and its
+range is from 0x1e78a200 to 0x1e78a2df, so it doesn't have 'buffer
+page selection' bit field in the Function control register, and
+neither 'base address pointer' bit field in the Pool buffer control
+register it has. To simplify implementation for supporting both
+AST2400 and AST2500, it writes zeros on those register bit fields
+but it's okay because it does nothing in AST2500.
+
+It provides buffer based master and slave data transfer.
+
+Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
+---
+ arch/arm/boot/dts/aspeed-g4.dtsi | 42 ++++--
+ arch/arm/boot/dts/aspeed-g5.dtsi | 42 ++++--
+ drivers/i2c/busses/i2c-aspeed.c | 262 ++++++++++++++++++++++++++++++++----
+ drivers/irqchip/irq-aspeed-i2c-ic.c | 8 ++
+ 4 files changed, 301 insertions(+), 53 deletions(-)
+
+diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
+index 47a5029f5bdb..c1c125add9fa 100644
+--- a/arch/arm/boot/dts/aspeed-g4.dtsi
++++ b/arch/arm/boot/dts/aspeed-g4.dtsi
+@@ -482,7 +482,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x40 0x40>;
++ reg = <0x40 0x40>, <0x800 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -498,7 +499,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x80 0x40>;
++ reg = <0x80 0x40>, <0x880 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -514,7 +516,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0xc0 0x40>;
++ reg = <0xc0 0x40>, <0x900 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -531,7 +534,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x100 0x40>;
++ reg = <0x100 0x40>, <0x980 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -548,7 +552,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x140 0x40>;
++ reg = <0x140 0x40>, <0xa00 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -565,7 +570,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x180 0x40>;
++ reg = <0x180 0x40>, <0xa80 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -582,7 +588,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x1c0 0x40>;
++ reg = <0x1c0 0x40>, <0xb00 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -599,7 +606,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x300 0x40>;
++ reg = <0x300 0x40>, <0xb80 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -616,7 +624,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x340 0x40>;
++ reg = <0x340 0x40>, <0xc00 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -633,7 +642,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x380 0x40>;
++ reg = <0x380 0x40>, <0xc80 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -650,7 +660,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x3c0 0x40>;
++ reg = <0x3c0 0x40>, <0xd00 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -667,7 +678,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x400 0x40>;
++ reg = <0x400 0x40>, <0xd80 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -684,7 +696,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x440 0x40>;
++ reg = <0x440 0x40>, <0xe00 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -701,7 +714,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x480 0x40>;
++ reg = <0x480 0x40>, <0xe80 0x80>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2400-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
+index 9d5ed9499b1f..662249bc15f9 100644
+--- a/arch/arm/boot/dts/aspeed-g5.dtsi
++++ b/arch/arm/boot/dts/aspeed-g5.dtsi
+@@ -599,7 +599,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x40 0x40>;
++ reg = <0x40 0x40>, <0x200 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -615,7 +616,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x80 0x40>;
++ reg = <0x80 0x40>, <0x210 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -631,7 +633,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0xc0 0x40>;
++ reg = <0xc0 0x40>, <0x220 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -648,7 +651,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x100 0x40>;
++ reg = <0x100 0x40>, <0x230 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -665,7 +669,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x140 0x40>;
++ reg = <0x140 0x40>, <0x240 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -682,7 +687,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x180 0x40>;
++ reg = <0x180 0x40>, <0x250 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -699,7 +705,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x1c0 0x40>;
++ reg = <0x1c0 0x40>, <0x260 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -716,7 +723,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x300 0x40>;
++ reg = <0x300 0x40>, <0x270 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -733,7 +741,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x340 0x40>;
++ reg = <0x340 0x40>, <0x280 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -750,7 +759,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x380 0x40>;
++ reg = <0x380 0x40>, <0x290 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -767,7 +777,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x3c0 0x40>;
++ reg = <0x3c0 0x40>, <0x2a0 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -784,7 +795,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x400 0x40>;
++ reg = <0x400 0x40>, <0x2b0 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -801,7 +813,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x440 0x40>;
++ reg = <0x440 0x40>, <0x2c0 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+@@ -818,7 +831,8 @@
+ #size-cells = <0>;
+ #interrupt-cells = <1>;
+
+- reg = <0x480 0x40>;
++ reg = <0x480 0x40>, <0x2d0 0x10>;
++ reg-names = "bus-regs", "buf";
+ compatible = "aspeed,ast2500-i2c-bus";
+ clocks = <&syscon ASPEED_CLK_APB>;
+ resets = <&syscon ASPEED_RESET_I2C>;
+diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c
+index 64bc68eaa88f..b21a4c87853e 100644
+--- a/drivers/i2c/busses/i2c-aspeed.c
++++ b/drivers/i2c/busses/i2c-aspeed.c
+@@ -10,6 +10,7 @@
+ * published by the Free Software Foundation.
+ */
+
++#include <linux/bitfield.h>
+ #include <linux/clk.h>
+ #include <linux/completion.h>
+ #include <linux/err.h>
+@@ -38,6 +39,7 @@
+ #define ASPEED_I2C_INTR_STS_REG 0x10
+ #define ASPEED_I2C_CMD_REG 0x14
+ #define ASPEED_I2C_DEV_ADDR_REG 0x18
++#define ASPEED_I2C_BUF_CTRL_REG 0x1c
+ #define ASPEED_I2C_BYTE_BUF_REG 0x20
+
+ /* Global Register Definition */
+@@ -46,6 +48,7 @@
+
+ /* Device Register Definition */
+ /* 0x00 : I2CD Function Control Register */
++#define ASPEED_I2CD_BUFFER_PAGE_SEL_MASK GENMASK(22, 20)
+ #define ASPEED_I2CD_MULTI_MASTER_DIS BIT(15)
+ #define ASPEED_I2CD_SDA_DRIVE_1T_EN BIT(8)
+ #define ASPEED_I2CD_M_SDA_DRIVE_1T_EN BIT(7)
+@@ -107,6 +110,8 @@
+ #define ASPEED_I2CD_BUS_RECOVER_CMD BIT(11)
+
+ /* Command Bit */
++#define ASPEED_I2CD_RX_BUFF_ENABLE BIT(7)
++#define ASPEED_I2CD_TX_BUFF_ENABLE BIT(6)
+ #define ASPEED_I2CD_M_STOP_CMD BIT(5)
+ #define ASPEED_I2CD_M_S_RX_CMD_LAST BIT(4)
+ #define ASPEED_I2CD_M_RX_CMD BIT(3)
+@@ -117,6 +122,13 @@
+ /* 0x18 : I2CD Slave Device Address Register */
+ #define ASPEED_I2CD_DEV_ADDR_MASK GENMASK(6, 0)
+
++/* 0x1c : I2CD Buffer Control Register */
++/* Use 8-bits or 6-bits wide bit fileds to support both AST2400 and AST2500 */
++#define ASPEED_I2CD_BUF_RX_COUNT_MASK GENMASK(31, 24)
++#define ASPEED_I2CD_BUF_RX_SIZE_MASK GENMASK(23, 16)
++#define ASPEED_I2CD_BUF_TX_COUNT_MASK GENMASK(15, 8)
++#define ASPEED_I2CD_BUF_OFFSET_MASK GENMASK(5, 0)
++
+ enum aspeed_i2c_master_state {
+ ASPEED_I2C_MASTER_INACTIVE,
+ ASPEED_I2C_MASTER_PENDING,
+@@ -164,6 +176,11 @@ struct aspeed_i2c_bus {
+ int master_xfer_result;
+ /* Multi-master */
+ bool multi_master;
++ /* Buffer/DMA mode */
++ void __iomem *buf_base;
++ size_t buf_size;
++ u8 buf_offset;
++ u8 buf_page;
+ #if IS_ENABLED(CONFIG_I2C_SLAVE)
+ struct i2c_client *slave;
+ enum aspeed_i2c_slave_state slave_state;
+@@ -260,6 +277,7 @@ static u32 aspeed_i2c_slave_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ {
+ u32 command, irq_handled = 0;
+ struct i2c_client *slave = bus->slave;
++ int i, len;
+ u8 value;
+
+ if (!slave)
+@@ -288,7 +306,11 @@ static u32 aspeed_i2c_slave_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+
+ /* Slave was sent something. */
+ if (irq_status & ASPEED_I2CD_INTR_RX_DONE) {
+- value = readl(bus->base + ASPEED_I2C_BYTE_BUF_REG) >> 8;
++ if (bus->buf_base &&
++ bus->slave_state == ASPEED_I2C_SLAVE_WRITE_RECEIVED)
++ value = readb(bus->buf_base);
++ else
++ value = readl(bus->base + ASPEED_I2C_BYTE_BUF_REG) >> 8;
+ /* Handle address frame. */
+ if (bus->slave_state == ASPEED_I2C_SLAVE_START) {
+ if (value & 0x1)
+@@ -318,6 +340,18 @@ static u32 aspeed_i2c_slave_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+
+ /* Slave was asked to stop. */
+ if (irq_status & ASPEED_I2CD_INTR_NORMAL_STOP) {
++ if (bus->buf_base &&
++ bus->slave_state == ASPEED_I2C_SLAVE_WRITE_RECEIVED) {
++ len = FIELD_GET(ASPEED_I2CD_BUF_RX_COUNT_MASK,
++ readl(bus->base +
++ ASPEED_I2C_BUF_CTRL_REG));
++ for (i = 0; i < len; i++) {
++ value = readb(bus->buf_base + i);
++ i2c_slave_event(slave,
++ I2C_SLAVE_WRITE_RECEIVED,
++ &value);
++ }
++ }
+ irq_handled |= ASPEED_I2CD_INTR_NORMAL_STOP;
+ bus->slave_state = ASPEED_I2C_SLAVE_STOP;
+ }
+@@ -350,6 +384,15 @@ static u32 aspeed_i2c_slave_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ case ASPEED_I2C_SLAVE_WRITE_REQUESTED:
+ bus->slave_state = ASPEED_I2C_SLAVE_WRITE_RECEIVED;
+ i2c_slave_event(slave, I2C_SLAVE_WRITE_REQUESTED, &value);
++ if (bus->buf_base) {
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_RX_SIZE_MASK,
++ bus->buf_size - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++ writel(ASPEED_I2CD_RX_BUFF_ENABLE,
++ bus->base + ASPEED_I2C_CMD_REG);
++ }
+ break;
+ case ASPEED_I2C_SLAVE_GCALL_REQUESTED:
+ bus->slave_state = ASPEED_I2C_SLAVE_WRITE_RECEIVED;
+@@ -357,6 +400,24 @@ static u32 aspeed_i2c_slave_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ break;
+ case ASPEED_I2C_SLAVE_WRITE_RECEIVED:
+ i2c_slave_event(slave, I2C_SLAVE_WRITE_RECEIVED, &value);
++ if (bus->buf_base) {
++ len = FIELD_GET(ASPEED_I2CD_BUF_RX_COUNT_MASK,
++ readl(bus->base +
++ ASPEED_I2C_BUF_CTRL_REG));
++ for (i = 1; i < len; i++) {
++ value = readb(bus->buf_base + i);
++ i2c_slave_event(slave,
++ I2C_SLAVE_WRITE_RECEIVED,
++ &value);
++ }
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_RX_SIZE_MASK,
++ bus->buf_size - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++ writel(ASPEED_I2CD_RX_BUFF_ENABLE,
++ bus->base + ASPEED_I2C_CMD_REG);
++ }
+ break;
+ case ASPEED_I2C_SLAVE_STOP:
+ i2c_slave_event(slave, I2C_SLAVE_STOP, &value);
+@@ -383,6 +444,8 @@ static void aspeed_i2c_do_start(struct aspeed_i2c_bus *bus)
+ u32 command = ASPEED_I2CD_M_START_CMD | ASPEED_I2CD_M_TX_CMD;
+ struct i2c_msg *msg = &bus->msgs[bus->msgs_index];
+ u8 slave_addr = i2c_8bit_addr_from_msg(msg);
++ u8 wbuf[4];
++ int len;
+
+ #if IS_ENABLED(CONFIG_I2C_SLAVE)
+ /*
+@@ -401,12 +464,66 @@ static void aspeed_i2c_do_start(struct aspeed_i2c_bus *bus)
+
+ if (msg->flags & I2C_M_RD) {
+ command |= ASPEED_I2CD_M_RX_CMD;
+- /* Need to let the hardware know to NACK after RX. */
+- if (msg->len == 1 && !(msg->flags & I2C_M_RECV_LEN))
+- command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++
++ if (bus->buf_base && !(msg->flags & I2C_M_RECV_LEN)) {
++ command |= ASPEED_I2CD_TX_BUFF_ENABLE |
++ ASPEED_I2CD_RX_BUFF_ENABLE;
++
++ wbuf[0] = slave_addr;
++ writel(*(u32 *)wbuf, bus->buf_base);
++
++ if (msg->len > bus->buf_size) {
++ len = bus->buf_size;
++ } else {
++ len = msg->len;
++ command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++ }
++
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_RX_SIZE_MASK,
++ len - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_TX_COUNT_MASK, 0) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++ } else {
++ /* Need to let the hardware know to NACK after RX. */
++ if (msg->len == 1 && !(msg->flags & I2C_M_RECV_LEN))
++ command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++ }
++ } else {
++ if (bus->buf_base) {
++ int i;
++
++ command |= ASPEED_I2CD_TX_BUFF_ENABLE;
++
++ if (msg->len + 1 > bus->buf_size)
++ len = bus->buf_size;
++ else
++ len = msg->len + 1;
++
++ wbuf[0] = slave_addr;
++ for (i = 1; i < len; i++) {
++ wbuf[i % 4] = msg->buf[i - 1];
++ if (i % 4 == 3)
++ writel(*(u32 *)wbuf,
++ bus->buf_base + i - 3);
++ }
++ if (--i % 4 != 3)
++ writel(*(u32 *)wbuf,
++ bus->buf_base + i - (i % 4));
++
++ bus->buf_index = len - 1;
++
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_TX_COUNT_MASK,
++ len - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++ }
+ }
+
+- writel(slave_addr, bus->base + ASPEED_I2C_BYTE_BUF_REG);
++ if (!(command & ASPEED_I2CD_TX_BUFF_ENABLE))
++ writel(slave_addr, bus->base + ASPEED_I2C_BYTE_BUF_REG);
+ writel(command, bus->base + ASPEED_I2C_CMD_REG);
+ }
+
+@@ -441,12 +558,22 @@ static int aspeed_i2c_is_irq_error(u32 irq_status)
+ return 0;
+ }
+
++static inline int aspeed_i2c_is_tx_error(struct aspeed_i2c_bus *bus)
++{
++ if (FIELD_GET(ASPEED_I2CD_BUF_TX_COUNT_MASK,
++ readl(bus->base + ASPEED_I2C_BUF_CTRL_REG)) !=
++ bus->buf_size - 1)
++ return -EIO;
++
++ return 0;
++}
++
+ static u32 aspeed_i2c_master_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ {
+ u32 irq_handled = 0, command = 0;
+ struct i2c_msg *msg;
+ u8 recv_byte;
+- int ret;
++ int ret, len;
+
+ if (irq_status & ASPEED_I2CD_INTR_BUS_RECOVER_DONE) {
+ bus->master_state = ASPEED_I2C_MASTER_INACTIVE;
+@@ -559,11 +686,46 @@ static u32 aspeed_i2c_master_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ /* fall through */
+ case ASPEED_I2C_MASTER_TX_FIRST:
+ if (bus->buf_index < msg->len) {
++ if (bus->buf_base) {
++ u8 wbuf[4];
++ int i;
++
++ if (unlikely(aspeed_i2c_is_tx_error(bus)))
++ goto error_and_stop;
++
++ if (msg->len - bus->buf_index > bus->buf_size)
++ len = bus->buf_size;
++ else
++ len = msg->len - bus->buf_index;
++
++ for (i = 0; i < len; i++) {
++ wbuf[i % 4] = msg->buf[bus->buf_index
++ + i];
++ if (i % 4 == 3)
++ writel(*(u32 *)wbuf,
++ bus->buf_base + i - 3);
++ }
++ if (--i % 4 != 3)
++ writel(*(u32 *)wbuf,
++ bus->buf_base + i - (i % 4));
++
++ bus->buf_index += len;
++
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_TX_COUNT_MASK,
++ len - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++ writel(ASPEED_I2CD_TX_BUFF_ENABLE |
++ ASPEED_I2CD_M_TX_CMD,
++ bus->base + ASPEED_I2C_CMD_REG);
++ } else {
++ writel(msg->buf[bus->buf_index++],
++ bus->base + ASPEED_I2C_BYTE_BUF_REG);
++ writel(ASPEED_I2CD_M_TX_CMD,
++ bus->base + ASPEED_I2C_CMD_REG);
++ }
+ bus->master_state = ASPEED_I2C_MASTER_TX;
+- writel(msg->buf[bus->buf_index++],
+- bus->base + ASPEED_I2C_BYTE_BUF_REG);
+- writel(ASPEED_I2CD_M_TX_CMD,
+- bus->base + ASPEED_I2C_CMD_REG);
+ } else {
+ aspeed_i2c_next_msg_or_stop(bus);
+ }
+@@ -580,25 +742,57 @@ static u32 aspeed_i2c_master_irq(struct aspeed_i2c_bus *bus, u32 irq_status)
+ }
+ irq_handled |= ASPEED_I2CD_INTR_RX_DONE;
+
+- recv_byte = readl(bus->base + ASPEED_I2C_BYTE_BUF_REG) >> 8;
+- msg->buf[bus->buf_index++] = recv_byte;
+-
+- if (msg->flags & I2C_M_RECV_LEN) {
+- if (unlikely(recv_byte > I2C_SMBUS_BLOCK_MAX)) {
+- bus->cmd_err = -EPROTO;
+- aspeed_i2c_do_stop(bus);
+- goto out_no_complete;
++ if (bus->buf_base && !(msg->flags & I2C_M_RECV_LEN)) {
++ len = FIELD_GET(ASPEED_I2CD_BUF_RX_COUNT_MASK,
++ readl(bus->base +
++ ASPEED_I2C_BUF_CTRL_REG));
++ memcpy_fromio(msg->buf + bus->buf_index,
++ bus->buf_base, len);
++ bus->buf_index += len;
++ } else {
++ recv_byte = readl(bus->base + ASPEED_I2C_BYTE_BUF_REG)
++ >> 8;
++ msg->buf[bus->buf_index++] = recv_byte;
++
++ if (msg->flags & I2C_M_RECV_LEN) {
++ if (unlikely(recv_byte > I2C_SMBUS_BLOCK_MAX)) {
++ bus->cmd_err = -EPROTO;
++ aspeed_i2c_do_stop(bus);
++ goto out_no_complete;
++ }
++ msg->len = recv_byte +
++ ((msg->flags & I2C_CLIENT_PEC) ?
++ 2 : 1);
++ msg->flags &= ~I2C_M_RECV_LEN;
+ }
+- msg->len = recv_byte +
+- ((msg->flags & I2C_CLIENT_PEC) ? 2 : 1);
+- msg->flags &= ~I2C_M_RECV_LEN;
+ }
+
+ if (bus->buf_index < msg->len) {
+- bus->master_state = ASPEED_I2C_MASTER_RX;
+ command = ASPEED_I2CD_M_RX_CMD;
+- if (bus->buf_index + 1 == msg->len)
+- command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++ bus->master_state = ASPEED_I2C_MASTER_RX;
++ if (bus->buf_base) {
++ command |= ASPEED_I2CD_RX_BUFF_ENABLE;
++
++ if (msg->len - bus->buf_index >
++ bus->buf_size) {
++ len = bus->buf_size;
++ } else {
++ len = msg->len - bus->buf_index;
++ command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++ }
++
++ writel(FIELD_PREP(ASPEED_I2CD_BUF_RX_SIZE_MASK,
++ len - 1) |
++ FIELD_PREP(ASPEED_I2CD_BUF_TX_COUNT_MASK,
++ 0) |
++ FIELD_PREP(ASPEED_I2CD_BUF_OFFSET_MASK,
++ bus->buf_offset),
++ bus->base + ASPEED_I2C_BUF_CTRL_REG);
++
++ } else {
++ if (bus->buf_index + 1 == msg->len)
++ command |= ASPEED_I2CD_M_S_RX_CMD_LAST;
++ }
+ writel(command, bus->base + ASPEED_I2C_CMD_REG);
+ } else {
+ aspeed_i2c_next_msg_or_stop(bus);
+@@ -948,6 +1142,9 @@ static int aspeed_i2c_init(struct aspeed_i2c_bus *bus,
+ if (ret < 0)
+ return ret;
+
++ fun_ctrl_reg |= FIELD_PREP(ASPEED_I2CD_BUFFER_PAGE_SEL_MASK,
++ bus->buf_page);
++
+ if (of_property_read_bool(pdev->dev.of_node, "multi-master"))
+ bus->multi_master = true;
+ else
+@@ -1010,17 +1207,32 @@ static int aspeed_i2c_probe_bus(struct platform_device *pdev)
+ struct aspeed_i2c_bus *bus;
+ struct clk *parent_clk;
+ struct resource *res;
++ void __iomem *gc_reg;
+ int irq, ret;
+
+ bus = devm_kzalloc(&pdev->dev, sizeof(*bus), GFP_KERNEL);
+ if (!bus)
+ return -ENOMEM;
+
+- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "bus-regs");
+ bus->base = devm_ioremap_resource(&pdev->dev, res);
+ if (IS_ERR(bus->base))
+ return PTR_ERR(bus->base);
+
++ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "buf");
++ bus->buf_base = devm_ioremap_resource(&pdev->dev, res);
++ if (IS_ERR(bus->buf_base) || resource_size(res) < 2) {
++ bus->buf_base = NULL;
++ } else {
++ bus->buf_size = resource_size(res);
++ if (of_device_is_compatible(pdev->dev.of_node,
++ "aspeed,ast2400-i2c-bus")) {
++ bus->buf_page = (res->start >> 8) & GENMASK(3, 0) - 8;
++ bus->buf_offset = (res->start >> 2) &
++ ASPEED_I2CD_BUF_OFFSET_MASK;
++ }
++ }
++
+ parent_clk = devm_clk_get(&pdev->dev, NULL);
+ if (IS_ERR(parent_clk))
+ return PTR_ERR(parent_clk);
+diff --git a/drivers/irqchip/irq-aspeed-i2c-ic.c b/drivers/irqchip/irq-aspeed-i2c-ic.c
+index f20200af0992..99985b22a9fa 100644
+--- a/drivers/irqchip/irq-aspeed-i2c-ic.c
++++ b/drivers/irqchip/irq-aspeed-i2c-ic.c
+@@ -18,6 +18,9 @@
+ #include <linux/of_irq.h>
+ #include <linux/io.h>
+
++/* I2C Global Control Register (AST2500) */
++#define ASPEED_I2C_GLOBAL_CTRL_REG 0xc
++#define ASPEED_I2C_SRAM_BUFFER_EN BIT(0)
+
+ #define ASPEED_I2C_IC_NUM_BUS 14
+
+@@ -100,6 +103,11 @@ static int __init aspeed_i2c_ic_of_init(struct device_node *node,
+ irq_set_chained_handler_and_data(i2c_ic->parent_irq,
+ aspeed_i2c_ic_irq_handler, i2c_ic);
+
++ /* Enable I2C SRAM buffer in case of AST2500 */
++ if (of_device_is_compatible(node, "aspeed,ast2500-i2c-ic"))
++ writel(ASPEED_I2C_SRAM_BUFFER_EN,
++ i2c_ic->base + ASPEED_I2C_GLOBAL_CTRL_REG);
++
+ pr_info("i2c controller registered, irq %d\n", i2c_ic->parent_irq);
+
+ return 0;
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
index 7ae4b5e64..ed5be3455 100644
--- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -41,7 +41,6 @@ SRC_URI += " \
file://0056-Documentation-jtag-Add-JTAG-core-driver-ioctl-number.patch \
file://0057-drivers-jtag-Add-JTAG-core-driver-Maintainers.patch \
file://0058-i2c-aspeed-add-general-call-support.patch \
- file://0059-media-aspeed-remove-source-buffer-allocation-before-.patch \
- file://0060-media-aspeed-use-different-delays-for-triggering-VE-.patch \
- file://0062-media-aspeed-add-a-workaround-to-fix-a-silicon-bug.patch \
+ file://0065-i2c-aspeed-fix-master-pending-state-handling.patch \
+ file://0066-i2c-aspeed-add-buffer-mode-transfer-support.patch \
"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
index e773da3cd..8b9da74f0 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/configuration/entity-manager_%.bbappend
@@ -1,6 +1,6 @@
# this is here just to bump faster than upstream
SRC_URI = "git://github.com/openbmc/entity-manager.git"
-SRCREV = "683ff83b9cfe0ec3d9683f7220bd40ef77dbfe96"
+SRCREV = "15c49902cf030a91a5b4bd325d185ee74b760359"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0024-Add-the-pre-timeout-interrupt-defined-in-IPMI-spec.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0024-Add-the-pre-timeout-interrupt-defined-in-IPMI-spec.patch
new file mode 100644
index 000000000..67fa59090
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0024-Add-the-pre-timeout-interrupt-defined-in-IPMI-spec.patch
@@ -0,0 +1,57 @@
+From 6e9a19c43acac7d4254910906329d98d7b59085a Mon Sep 17 00:00:00 2001
+From: Ren Yu <yux.ren@intel.com>
+Date: Fri, 24 May 2019 14:55:10 +0800
+Subject: [PATCH] Add the pre-timeout interrupt defined in IPMI spec
+
+The IPMI watchdog pre-timeout interrupt is used to set the different
+pre-timeout interrupt source. Add them as a dbus property,
+IPMI set/get watchdog commands will use it.
+
+Signed-off-by: Ren Yu <yux.ren@intel.com>
+---
+ xyz/openbmc_project/State/Watchdog.interface.yaml | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/xyz/openbmc_project/State/Watchdog.interface.yaml b/xyz/openbmc_project/State/Watchdog.interface.yaml
+index 2fc47d8..6dfa9b9 100644
+--- a/xyz/openbmc_project/State/Watchdog.interface.yaml
++++ b/xyz/openbmc_project/State/Watchdog.interface.yaml
+@@ -33,6 +33,11 @@ properties:
+ description: >
+ The action the watchdog should perform when it expires.
+ default: 'HardReset'
++ - name: PreTimeoutInterrupt
++ type: enum[self.PreTimeoutInterruptAction]
++ description: >
++ The BMC generates the selected interrupt before the timer expires.
++ default: 'None'
+ - name: Interval
+ type: uint64
+ description: >
+@@ -73,6 +78,23 @@ enumerations:
+ description: >
+ Perform a power cycle of the system.
+
++ - name: PreTimeoutInterruptAction
++ description: >
++ The type of PreTimeout Interrupt.
++ values:
++ - name: 'None'
++ description: >
++ Do nothing.
++ - name: 'SMI'
++ description: >
++ SMI.
++ - name: 'NMI'
++ description: >
++ NMI / Diagnostic Interrupt.
++ - name: 'MI'
++ description: >
++ Messaging Interrupt.
++
+ - name: TimerUse
+ description: >
+ The type of timer use.
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
index 94eff8ac7..89b8da753 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
@@ -1,5 +1,5 @@
SRC_URI = "git://github.com/openbmc/phosphor-dbus-interfaces.git"
-SRCREV = "57b878d048f929643276f1bf7fdf750abc4bde8b"
+SRCREV = "1f0e2ce6e1cb78a59a0015b160816b71156b03c6"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -18,4 +18,5 @@ SRC_URI += "file://0002-Modify-Dbus-for-IPv6.patch \
file://0021-Add-interface-suppot-for-provisioning-modes.patch \
file://0022-Add-chassis-power-cycle-and-reset-to-Chassis-State.patch \
file://0023-Add-host-interrupt-to-the-Host-State.patch \
+ file://0024-Add-the-pre-timeout-interrupt-defined-in-IPMI-spec.patch \
"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
index 1ce94dca4..e1ec04ff6 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -5,6 +5,6 @@ SYSTEMD_SERVICE_${PN} = "phosphor-pid-control.service"
EXTRA_OECONF = "--enable-configure-dbus=yes"
SRC_URI = "git://github.com/openbmc/phosphor-pid-control.git"
-SRCREV = "98b704e179f12d987179fe6b0ea6234d1bace48f"
+SRCREV = "1dad21b935b8359806de9a9cc3aa7b7463cc8df3"
FILES_${PN} = "${bindir}/swampd ${bindir}/setsensor"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb
index e24245525..cef2fdcaa 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/gpiodaemon/gpiodaemon.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh"
-SRCREV = "9d2d365a79591ec21b54ecde957263f1ba1d8391"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
inherit cmake systemd
SYSTEMD_SERVICE_${PN} = "gpiodaemon.service"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
index 6ac05b61d..3f870103b 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
@@ -1,5 +1,5 @@
SRC_URI = "git://github.com/openbmc/bmcweb.git"
-SRCREV = "d62cec731dcb533b3fecb08ba115dbf713539681"
+SRCREV = "fa1a5a38551bd1b9f04ad2d4f9fea2e5ade5cc4c"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch
new file mode 100644
index 000000000..685e7c39d
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host/0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch
@@ -0,0 +1,140 @@
+From d9c89943d7b0aa00ee99b7c11278ac272a47a790 Mon Sep 17 00:00:00 2001
+From: Ren Yu <yux.ren@intel.com>
+Date: Tue, 28 May 2019 17:11:17 +0800
+Subject: [PATCH] Save the pre-timeout interrupt in dbus property
+
+Get the watchdog pre-timeout interrupt value from ipmi watchdog set command,
+and store it into dbus property.
+
+Tested:
+Config IPMI watchdog: BIOS FRB2 Power Cycle after 1 seconds:
+ipmitool raw 0x06 0x24 0x01 0x13 0x0 0x2 0xa 0x00
+Start watchdog:
+Ipmitool mc watchdog reset
+Check the watchdog pre-timeout interrupt in below:
+https://BMCIP/redfish/v1/Systems/system/LogServices/EventLog/Entries
+
+Signed-off-by: Ren Yu <yux.ren@intel.com>
+---
+ app/watchdog.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++
+ app/watchdog_service.cpp | 6 ++++++
+ app/watchdog_service.hpp | 9 +++++++++
+ 3 files changed, 62 insertions(+)
+
+diff --git a/app/watchdog.cpp b/app/watchdog.cpp
+index 2ffaae3..e9b7a9c 100644
+--- a/app/watchdog.cpp
++++ b/app/watchdog.cpp
+@@ -81,6 +81,7 @@ ipmi::RspType<> ipmiAppResetWatchdogTimer()
+
+ static constexpr uint8_t wd_dont_stop = 0x1 << 6;
+ static constexpr uint8_t wd_timeout_action_mask = 0x3;
++static constexpr uint8_t wdPreTimeoutInterruptMask = 0x3;
+
+ static constexpr uint8_t wdTimerUseMask = 0x7;
+ static constexpr uint8_t wdTimerUseResTimer1 = 0x0;
+@@ -130,6 +131,45 @@ WatchdogService::Action ipmiActionToWdAction(IpmiAction ipmi_action)
+ }
+ }
+
++enum class IpmiPreTimeoutInterrupt : uint8_t
++{
++ None = 0x0,
++ SMI = 0x1,
++ NMI = 0x2,
++ MI = 0x3,
++};
++/** @brief Converts an IPMI Watchdog PreTimeoutInterrupt to DBUS defined action
++ * @param[in] ipmi_action The IPMI Watchdog PreTimeoutInterrupt
++ * @return The Watchdog PreTimeoutInterrupt that the ipmi_action maps to
++ */
++WatchdogService::PreTimeoutInterruptAction ipmiPreTimeoutInterruptToWdAction(
++ IpmiPreTimeoutInterrupt ipmiPreTimeOutInterrupt)
++{
++ switch (ipmiPreTimeOutInterrupt)
++ {
++ case IpmiPreTimeoutInterrupt::None:
++ {
++ return WatchdogService::PreTimeoutInterruptAction::None;
++ }
++ case IpmiPreTimeoutInterrupt::SMI:
++ {
++ return WatchdogService::PreTimeoutInterruptAction::SMI;
++ }
++ case IpmiPreTimeoutInterrupt::NMI:
++ {
++ return WatchdogService::PreTimeoutInterruptAction::NMI;
++ }
++ case IpmiPreTimeoutInterrupt::MI:
++ {
++ return WatchdogService::PreTimeoutInterruptAction::MI;
++ }
++ default:
++ {
++ throw std::domain_error("IPMI PreTimeoutInterrupt is invalid");
++ }
++ }
++}
++
+ enum class IpmiTimerUse : uint8_t
+ {
+ Reserved = 0x0,
+@@ -257,6 +297,13 @@ ipmi_ret_t ipmi_app_watchdog_set(ipmi_netfn_t netfn, ipmi_cmd_t cmd,
+ // Mark as initialized so that future resets behave correctly
+ wd_service.setInitialized(true);
+
++ // pretimeOutAction
++ const auto ipmiPreTimeoutInterrupt =
++ static_cast<IpmiPreTimeoutInterrupt>((req.timer_action >> 4) &
++ wdPreTimeoutInterruptMask);
++ wd_service.setPreTimeoutInterrupt(
++ ipmiPreTimeoutInterruptToWdAction(ipmiPreTimeoutInterrupt));
++
+ lastCallSuccessful = true;
+ return IPMI_CC_OK;
+ }
+diff --git a/app/watchdog_service.cpp b/app/watchdog_service.cpp
+index 77663b4..0c4ea28 100644
+--- a/app/watchdog_service.cpp
++++ b/app/watchdog_service.cpp
+@@ -203,3 +203,9 @@ void WatchdogService::setTimeRemaining(uint64_t timeRemaining)
+ {
+ setProperty("TimeRemaining", timeRemaining);
+ }
++
++void WatchdogService::setPreTimeoutInterrupt(
++ PreTimeoutInterruptAction preTimeoutInterrupt)
++{
++ setProperty("PreTimeoutInterrupt", convertForMessage(preTimeoutInterrupt));
++}
+\ No newline at end of file
+diff --git a/app/watchdog_service.hpp b/app/watchdog_service.hpp
+index ed64a3c..b550f37 100644
+--- a/app/watchdog_service.hpp
++++ b/app/watchdog_service.hpp
+@@ -15,6 +15,8 @@ class WatchdogService
+
+ using Action =
+ sdbusplus::xyz::openbmc_project::State::server::Watchdog::Action;
++ using PreTimeoutInterruptAction = sdbusplus::xyz::openbmc_project::State::
++ server::Watchdog::PreTimeoutInterruptAction;
+ using TimerUse =
+ sdbusplus::xyz::openbmc_project::State::server::Watchdog::TimerUse;
+
+@@ -99,6 +101,13 @@ class WatchdogService
+ */
+ void setTimeRemaining(uint64_t timeRemaining);
+
++ /** @brief Sets the value of the PreTimeoutInterrupt property on the host
++ * watchdog
++ *
++ * @param[in] PreTimeoutInterrupt - The new PreTimeoutInterrupt value
++ */
++ void setPreTimeoutInterrupt(PreTimeoutInterruptAction preTimeoutInterrupt);
++
+ private:
+ /** @brief sdbusplus handle */
+ sdbusplus::bus::bus bus;
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
index 3509ebfd6..a6a142ec8 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
@@ -3,7 +3,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
# TODO: This should be removed, once up-stream bump up
# issue is resolved
#SRC_URI = "git://github.com/openbmc/phosphor-host-ipmid"
-SRCREV = "ea1c401c4bac43d6070bf7d515df08f8bf57c0a2"
+SRCREV = "0b979b61c12ffe6ab8a27acf8ad2a0165d687195"
SRC_URI += "file://phosphor-ipmi-host.service \
file://0009-IPv6-Network-changes.patch \
@@ -21,6 +21,7 @@ SRC_URI += "file://phosphor-ipmi-host.service \
file://0060-Move-Get-SOL-config-parameter-to-host-ipmid.patch \
file://0061-Use-xyz.openbmc_project.State.Chassis-for-IPMI-chass.patch \
file://0062-Update-IPMI-Chassis-Control-command.patch \
+ file://0063-Save-the-pre-timeout-interrupt-in-dbus-property.patch \
"
# remove the softpoweroff service since we do not need it
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs/99-ipmi-kcs.rules b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs/99-ipmi-kcs.rules
new file mode 100644
index 000000000..0a64b58db
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs/99-ipmi-kcs.rules
@@ -0,0 +1,2 @@
+KERNEL=="ipmi-kcs3", SYMLINK+="ipmi_kcs3"
+KERNEL=="ipmi-kcs4", SYMLINK+="ipmi_kcs4"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend
index e3d397f06..140d1b302 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-kcs_%.bbappend
@@ -4,9 +4,18 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
# Default kcs device is ipmi-kcs3; this is SMS.
# Add SMM kcs device instance
-SMM_DEVICE = "ipmi-kcs4"
+
+# Replace the '-' to '_', since Dbus object/interface names do not allow '-'.
+KCS_DEVICE = "ipmi_kcs3"
+SMM_DEVICE = "ipmi_kcs4"
SYSTEMD_SERVICE_${PN}_append = " ${PN}@${SMM_DEVICE}.service "
SRC_URI = "git://github.com/openbmc/kcsbridge.git"
SRCREV = "2cdc49585235a6557c9cbb6c8b75c064fc02681a"
+SRC_URI += "file://99-ipmi-kcs.rules"
+
+do_install_append() {
+ install -d ${D}${base_libdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/99-ipmi-kcs.rules ${D}${base_libdir}/udev/rules.d/
+}
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
index 9f5e3fa6f..214bea189 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend
@@ -3,7 +3,7 @@ inherit useradd
# TODO: This should be removed, once up-stream bump up
# issue is resolved
#SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid"
-#SRCREV = "052b7cf37411a1bb69af1e6ce541a16021fffa9f"
+#SRCREV = "b31e969504645f653b58b676d56b01d632dc395c"
USERADD_PACKAGES = "${PN}"
# add a group called ipmi
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb
index 31b9e9338..65f578338 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/multi-node-manager/multi-node-manager.bb
@@ -2,7 +2,7 @@ SUMMARY = "Multi node manager"
DESCRIPTION = "Daemon to handle chassis level shared resources on multi-node platform"
SRC_URI = "git://git@github.com/Intel-BMC/multi-node-manager.git;protocol=ssh"
-SRCREV = "8a34c017e04dd8f327aff127f64855f6132bd318"
+SRCREV = "6a4cd36c0d46df11bdcd3b897bcc9c87e549a076"
PV = "0.1+git${SRCPV}"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend
index 996f11b42..ca3c2eba0 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/sensors/dbus-sensors_%.bbappend
@@ -1,4 +1,4 @@
-SRCREV = "930fcde3c8776c02f2a3d969d05608e2155eb159"
+SRCREV = "52497fd0fbd8adfe099a99f23515cd0341898e2e"
SRC_URI = "git://github.com/openbmc/dbus-sensors.git"
DEPENDS_append = " libgpiod"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/settings/settings_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/settings/settings_git.bb
new file mode 100644
index 000000000..aadb48fbf
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/settings/settings_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Settings"
+
+SRC_URI = "git://git-amr-2.devtools.intel.com:29418/openbmc-provingground.git;protocol=ssh"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
+PV = "0.1+git${SRCPV}"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+SYSTEMD_SERVICE_${PN} = "settings.service"
+
+DEPENDS = "boost \
+ nlohmann-json \
+ sdbusplus"
+
+S = "${WORKDIR}/git/settings"
+inherit cmake systemd
+
+EXTRA_OECMAKE = "-DYOCTO=1"
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/special-mode-mgr/special-mode-mgr_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/special-mode-mgr/special-mode-mgr_git.bb
index 503f3875a..99cac7931 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/special-mode-mgr/special-mode-mgr_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/special-mode-mgr/special-mode-mgr_git.bb
@@ -8,8 +8,8 @@ S = "${WORKDIR}/git/special-mode-mgr"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh;nobranch=1"
-SRCREV = "ec8f1c06be71d6059c82fd442475420286f5dbcd"
+SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
inherit cmake systemd
SYSTEMD_SERVICE_${PN} = "specialmodemgr.service"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb
index 878de75bb..52ebdfd88 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/srvcfg-manager/srvcfg-manager_git.bb
@@ -9,7 +9,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://git@github.com/Intel-BMC/provingground.git;protocol=ssh"
-SRCREV = "9d2d365a79591ec21b54ecde957263f1ba1d8391"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
inherit cmake systemd
SYSTEMD_SERVICE_${PN} = "srvcfg-manager.service"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb
index 4bef0fd0e..e272fdc96 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/system/callback-manager.bb
@@ -7,7 +7,7 @@ inherit cmake systemd
DEPENDS = "boost sdbusplus"
PV = "0.1+git${SRCPV}"
-SRCREV = "9d2d365a79591ec21b54ecde957263f1ba1d8391"
+SRCREV = "4373d99e1edcbb4c7233abde3a5e53690693007b"
S = "${WORKDIR}/git/callback-manager"
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend
index 0cb531e60..2cc081433 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/users/phosphor-user-manager_%.bbappend
@@ -1,7 +1,7 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
#SRC_URI = "git://github.com/openbmc/phosphor-user-manager"
-SRCREV = "59dba4435d0d553369790e8936d7eb43251ff302"
+SRCREV = "75b5a6fc4c0c06f43623fe0e746fd55e667dceb3"
SRC_URI += " \
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0003-Add-redfish-log-support-for-IPMI-watchdog-pre-timeou.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0003-Add-redfish-log-support-for-IPMI-watchdog-pre-timeou.patch
new file mode 100644
index 000000000..309a8c646
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0003-Add-redfish-log-support-for-IPMI-watchdog-pre-timeou.patch
@@ -0,0 +1,48 @@
+From 46e8e4fe6cb48145152e37380a4064c8957d2ff7 Mon Sep 17 00:00:00 2001
+From: Ren Yu <yux.ren@intel.com>
+Date: Tue, 28 May 2019 17:04:10 +0800
+Subject: [PATCH] Add redfish log support for IPMI watchdog pre-timeout
+ interrupt
+
+Tested:
+Config IPMI watchdog: BIOS FRB2 Power Cycle after 1 seconds:
+ipmitool raw 0x06 0x24 0x01 0x13 0x0 0x2 0xa 0x00
+Start watchdog:
+Ipmitool mc watchdog reset
+Check the redfish logs in 1 seconds:
+https://BMCIP/redfish/v1/Systems/system/LogServices/EventLog/Entries
+
+Signed-off-by: Ren Yu <yux.ren@intel.com>
+---
+ watchdog.cpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/watchdog.cpp b/watchdog.cpp
+index d893237..5062049 100644
+--- a/watchdog.cpp
++++ b/watchdog.cpp
+@@ -104,6 +104,8 @@ uint64_t Watchdog::timeRemaining(uint64_t value)
+ // Optional callback function on timer expiration
+ void Watchdog::timeOutHandler()
+ {
++ PreTimeoutInterruptAction preTimeoutInterruptAction = preTimeoutInterrupt();
++
+ Action action = expireAction();
+ if (!this->enabled())
+ {
+@@ -117,6 +119,12 @@ void Watchdog::timeOutHandler()
+ "REDFISH_MESSAGE_ARGS=%s",
+ convertForMessage(action).c_str(), NULL);
+
++ sd_journal_send("MESSAGE=IPMIWatchdog: Pre Timed out Interrupt=%s",
++ convertForMessage(preTimeoutInterruptAction).c_str(),
++ "PRIORITY=%i", LOG_INFO, "REDFISH_MESSAGE_ID=%s",
++ "OpenBMC.0.1.IPMIWatchdog", "REDFISH_MESSAGE_ARGS=%s",
++ convertForMessage(preTimeoutInterruptAction).c_str(), NULL);
++
+ expiredTimerUse(currentTimerUse());
+
+ auto target = actionTargetMap.find(action);
+--
+2.7.4
+
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend
index d9c047461..c117102ee 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog_%.bbappend
@@ -2,6 +2,7 @@ FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
SRC_URI += "file://0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch \
file://0002-Add-restart-cause-support.patch \
+ file://0003-Add-redfish-log-support-for-IPMI-watchdog-pre-timeou.patch \
"
# Remove the override to keep service running after DC cycle
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend
index e6e329d06..f4b054acf 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend
@@ -1,6 +1,6 @@
FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
#SRC_URI = "git://github.com/openbmc/phosphor-webui.git"
-SRCREV = "5bd1dec7fdc8f6a3a20e6c23dc491b3d31392bc5"
+SRCREV = "e4ae854c217344b4f35717e922083a253f43bfa0"
SRC_URI += "file://0004-Implement-force-boot-to-bios-in-server-power-control.patch"
diff --git a/meta-openbmc-mods/meta-wolfpass/conf/local.conf.sample b/meta-openbmc-mods/meta-wolfpass/conf/local.conf.sample
index 49ffc117f..31b18a76e 100644
--- a/meta-openbmc-mods/meta-wolfpass/conf/local.conf.sample
+++ b/meta-openbmc-mods/meta-wolfpass/conf/local.conf.sample
@@ -18,5 +18,3 @@ BB_DISKMON_DIRS = "\
ABORT,/tmp,10M,1K"
CONF_VERSION = "3"
#BB_NUMBER_THREADS = "70"
-
-#INHERIT += "cve-check"
diff --git a/meta-openpower/classes/openpower-software-manager-ubi.bbclass b/meta-openpower/classes/openpower-software-manager-ubi.bbclass
index ae6c3880b..5b60384f1 100644
--- a/meta-openpower/classes/openpower-software-manager-ubi.bbclass
+++ b/meta-openpower/classes/openpower-software-manager-ubi.bbclass
@@ -3,8 +3,8 @@ SRC_URI += "file://obmc-flash-bios"
PACKAGECONFIG_append = " ubifs_layout"
do_install_append() {
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/obmc-flash-bios ${D}${sbindir}/obmc-flash-bios
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/obmc-flash-bios ${D}${bindir}/obmc-flash-bios
}
SYSTEMD_SERVICE_${PN} += " \
diff --git a/meta-openpower/recipes-bsp/pdbg/pdbg_2.0.bb b/meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb
index 8c1232c56..b4f15f82d 100644
--- a/meta-openpower/recipes-bsp/pdbg/pdbg_2.0.bb
+++ b/meta-openpower/recipes-bsp/pdbg/pdbg_2.1.bb
@@ -3,10 +3,10 @@ DESCRIPTION = "pdbg allows JTAG-like debugging of the host POWER processors"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-PV = "2.0+git${SRCPV}"
+PV = "2.1+git${SRCPV}"
SRC_URI += "git://github.com/open-power/pdbg.git"
-SRCREV = "854c4c5facff43af9e0fe5d7062b58f631987b0b"
+SRCREV = "2463be165d7eaa50b648c343e410d851edfb70ce"
DEPENDS += "dtc-native"
diff --git a/meta-openpower/recipes-devtools/hostboot/hostboot-debug-tools.bb b/meta-openpower/recipes-devtools/hostboot/hostboot-debug-tools.bb
new file mode 100644
index 000000000..f1265bda6
--- /dev/null
+++ b/meta-openpower/recipes-devtools/hostboot/hostboot-debug-tools.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Recipe for enabling hostboot-debug-tools"
+DESCRIPTION = "Support to enable running hostboot-debug-tools"
+LICENSE = "Apache-2.0"
+PR = "r1"
+
+inherit allarch
+
+RDEPENDS_${PN} = " \
+ perl perl-module-pod-text perl-module-lib \
+ perl-module-constant \
+ perl-module-errno perl-module-fcntl \
+ perl-module-file-basename perl-module-file-copy \
+ perl-module-file-find perl-module-file-glob \
+ perl-module-file-path perl-module-file-spec \
+ perl-module-file-temp perl-module-getopt-long \
+ perl-module-re perl-module-text-wrap \
+ perl-module-posix perl-module-bigint \
+ perl-module-integer \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend b/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend
index 0765ddffb..1035bf169 100644
--- a/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend
+++ b/meta-openpower/recipes-phosphor/bmcweb/bmcweb_%.bbappend
@@ -1 +1 @@
-EXTRA_OECMAKE_df-openpower += "-DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON"
+EXTRA_OECMAKE_append_df-openpower = " -DBMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES=ON"
diff --git a/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb
new file mode 100644
index 000000000..52ac769ab
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Shared OpenPOWER configuration"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit allarch
+
+SRC_URI = " \
+ file://ipmi-fru-properties-mrw.yaml \
+ file://ipmi-hostboot-fru-mrw.yaml \
+ file://ipmi-hostboot-volatile-sensor-mrw.yaml \
+ file://ipmi-occ-active-sensor-mrw.yaml \
+ "
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -m 0644 -D ipmi-fru-properties-mrw.yaml \
+ ${D}${datadir}/${BPN}/ipmi-fru-properties-mrw.yaml
+ install -m 0644 -D ipmi-hostboot-fru-mrw.yaml \
+ ${D}${datadir}/${BPN}/ipmi-hostboot-fru-mrw.yaml
+ install -m 0644 -D ipmi-hostboot-volatile-sensor-mrw.yaml \
+ ${D}${datadir}/${BPN}/ipmi-hostboot-volatile-sensor-mrw.yaml
+ install -m 0644 -D ipmi-occ-active-sensor-mrw.yaml \
+ ${D}${datadir}/${BPN}/ipmi-occ-active-sensor-mrw.yaml
+}
+
+FILES_${PN}-dev = " \
+ ${datadir}/${BPN}/ipmi-fru-properties-mrw.yaml \
+ ${datadir}/${BPN}/ipmi-hostboot-fru-mrw.yaml \
+ ${datadir}/${BPN}/ipmi-hostboot-volatile-sensor-mrw.yaml \
+ ${datadir}/${BPN}/ipmi-occ-active-sensor-mrw.yaml \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-fru-properties-mrw.yaml b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-fru-properties-mrw.yaml
new file mode 100644
index 000000000..6e80a9942
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-fru-properties-mrw.yaml
@@ -0,0 +1,37 @@
+# A template for generating extra-properties.yaml for ipmi-fru-parser, from the
+# MRW with gen_fru_properties.pl
+DIMM:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+NODE:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+PROC:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+SYS:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'false'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
+TPM:
+ xyz.openbmc_project.Inventory.Decorator.Cacheable:
+ Cached: 'false'
+ xyz.openbmc_project.Inventory.Decorator.Replaceable:
+ FieldReplaceable: 'true'
+ xyz.openbmc_project.Inventory.Item:
+ Present: 'true'
diff --git a/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-fru-mrw.yaml b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-fru-mrw.yaml
new file mode 100644
index 000000000..3f6a73989
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-fru-mrw.yaml
@@ -0,0 +1,130 @@
+DIMM:
+ EntityID: 32
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Product
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Product
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Item.Dimm:
+MEMBUFF:
+ EntityID: 8
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.MemoryBuffer:
+NODE:
+ AssociatedTypes:
+ - SYS
+ EntityID: 7
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.Board:
+PROC:
+ EntityID: 3
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Custom Field 2
+ IPMIFruSection: Board
+ IPMIFruValueDelimiter: '58'
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.Cpu:
+SYS:
+ EntityID: 7
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ xyz.openbmc_project.Inventory.Item.System:
+TPM:
+ EntityID: 176
+ Interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ BuildDate:
+ IPMIFruProperty: Mfg Date
+ IPMIFruSection: Board
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+ PartNumber:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Board
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ xyz.openbmc_project.Inventory.Item.Tpm:
diff --git a/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-volatile-sensor-mrw.yaml b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-volatile-sensor-mrw.yaml
new file mode 100644
index 000000000..1fcf935f9
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-hostboot-volatile-sensor-mrw.yaml
@@ -0,0 +1,16 @@
+hb_volatile_sensor:
+ interfaces:
+ xyz.openbmc_project.Object.Enable:
+ Enabled:
+ Offsets:
+ 0:
+ assert: false
+ type: bool
+ 1:
+ assert: true
+ type: bool
+ mutability: Mutability::Write|Mutability::Read
+ path: /org/open_power/control/volatile
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ serviceInterface: org.freedesktop.DBus.Properties
diff --git a/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-occ-active-sensor-mrw.yaml b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-occ-active-sensor-mrw.yaml
new file mode 100644
index 000000000..5470c42da
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/configuration/openpower-yaml-config/ipmi-occ-active-sensor-mrw.yaml
@@ -0,0 +1,17 @@
+occ_active_sensor:
+ 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
+ readingType: assertion
+ sensorNamePattern: nameLeaf
+ serviceInterface: org.freedesktop.DBus.Properties
diff --git a/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb b/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
index d8ae1cf98..84647bc38 100644
--- a/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
+++ b/meta-openpower/recipes-phosphor/flash/openpower-software-manager_git.bb
@@ -39,7 +39,7 @@ S = "${WORKDIR}/git"
SRC_URI += "git://github.com/openbmc/openpower-pnor-code-mgmt"
-SRCREV = "2b2d2298f5c6e9e596ed3ae84326a6ae804c46a4"
+SRCREV = "b8cb0cc9d9b3253df47bf019a8f028f01110f9ab"
DBUS_SERVICE_${PN} += "org.open_power.Software.Host.Updater.service"
diff --git a/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service
new file mode 100644
index 000000000..ce59b3377
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Init BMC Hostname
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+
+[Service]
+ExecStart=/usr/bin/first-boot-set-hostname.sh
+Type=oneshot
+RemainAfterExit=Yes
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh
new file mode 100644
index 000000000..541523760
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname/first-boot-set-hostname.sh
@@ -0,0 +1,46 @@
+#!/bin/sh -eu
+
+show_error() {
+ echo "$@" >&2
+}
+
+sync_hostname() {
+ MAPPER_IFACE='xyz.openbmc_project.ObjectMapper'
+ MAPPER_PATH='/xyz/openbmc_project/object_mapper'
+ INVENTORY_PATH='/xyz/openbmc_project/inventory'
+ BMC_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.Bmc'
+
+ BMC_ITEM_PATH=$(busctl --no-pager --verbose call \
+ ${MAPPER_IFACE} \
+ ${MAPPER_PATH} \
+ ${MAPPER_IFACE} \
+ GetSubTree sias \
+ ${INVENTORY_PATH} 0 1 ${BMC_ITEM_IFACE} \
+ 2>/dev/null | grep ${INVENTORY_PATH} || true)
+
+ # ' STRING "/xyz/openbmc_project/inventory/system/chassis/bmc";'
+ BMC_ITEM_PATH=${BMC_ITEM_PATH#*\"}
+ BMC_ITEM_PATH=${BMC_ITEM_PATH%\"*}
+
+ BMC_ITEM_SERVICE=$(mapper get-service \
+ ${BMC_ITEM_PATH} 2>/dev/null || true)
+
+ if [[ -z "${BMC_ITEM_SERVICE}" ]]; then
+ echo "No BMC item found in the Inventory. Is VPD EEPROM empty?" >&2
+ return
+ fi
+
+ BMC_SN=$(busctl get-property ${BMC_ITEM_SERVICE} \
+ ${BMC_ITEM_PATH} \
+ ${BMC_ITEM_IFACE} SerialNumber)
+ # 's "002B0DH1000"'
+ BMC_SN=${BMC_SN#*\"}
+ BMC_SN=${BMC_SN%\"*}
+
+ hostnamectl set-hostname {MACHINE}-${BMC_SN}
+}
+
+[ "$(hostname)" = "{MACHINE}" ] && sync_hostname
+
+systemctl disable first-boot-set-hostname.service
+
diff --git a/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb
new file mode 100644
index 000000000..1e9fdd66f
--- /dev/null
+++ b/meta-openpower/recipes-phosphor/network/first-boot-set-hostname_1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Init BMC Hostname"
+DESCRIPTION = "Setup BMC Unique hostname"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${OPENPOWERBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit allarch systemd
+
+RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_base-utils}"
+
+SYSTEMD_SERVICE_${PN} = "first-boot-set-hostname.service"
+
+SRC_URI = "file://${PN}.sh file://${PN}.service"
+
+S = "${WORKDIR}"
+do_install() {
+ sed "s/{MACHINE}/${MACHINE}/" -i ${PN}.sh
+ install -d ${D}${bindir} ${D}${systemd_system_unitdir}
+ install ${PN}.sh ${D}${bindir}/
+ install -m 644 ${PN}.service ${D}${systemd_system_unitdir}/
+}
+
diff --git a/meta-phosphor/classes/phosphor-networkd-rev.bbclass b/meta-phosphor/classes/phosphor-networkd-rev.bbclass
index 8dabafcad..e0fda775f 100644
--- a/meta-phosphor/classes/phosphor-networkd-rev.bbclass
+++ b/meta-phosphor/classes/phosphor-networkd-rev.bbclass
@@ -1,2 +1,2 @@
SRC_URI += "git://github.com/openbmc/phosphor-networkd"
-SRCREV = "0283b39bd3c758313842be52bf76f6222e0425b6"
+SRCREV = "7bcaccfdae8f161c6677211e298c5570460f08a5"
diff --git a/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass b/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
index fe9d1a5d3..6b0a78ec0 100644
--- a/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
+++ b/meta-phosphor/classes/phosphor-software-manager-ubi-fs.bbclass
@@ -33,6 +33,7 @@ SYSTEMD_SERVICE_phosphor-software-manager-updater-ubi += " \
obmc-flash-bmc-mirroruboot.service \
reboot-guard-enable.service \
reboot-guard-disable.service \
+ force-reboot.service \
usr-local.mount \
"
diff --git a/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..e60401e89
--- /dev/null
+++ b/meta-phosphor/nuvoton-layer/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1,70 @@
+EXTRA_DEPENDS = ""
+
+EXTRA_DEPENDS_npcm7xx = " \
+ npcm7xx-bootblock:do_deploy \
+ npcm7xx-bingo-native:do_populate_sysroot \
+ "
+
+UBOOT_BINARY := "u-boot.${UBOOT_SUFFIX}"
+
+BOOTBLOCK = "Poleg_bootblock.bin"
+
+
+FULL_SUFFIX = "full"
+MERGED_SUFFIX = "merged"
+
+UBOOT_SUFFIX_append_npcm7xx = ".${MERGED_SUFFIX}"
+
+
+do_prepare_bootloaders() {
+
+}
+
+
+# Prepare the Bootblock and U-Boot images using npcm7xx-bingo
+
+do_prepare_bootloaders_npcm7xx() {
+
+ currdir=`pwd`
+ cd ${DEPLOY_DIR_IMAGE}
+
+ bingo ${STAGING_DIR_NATIVE}/${bindir}/BootBlockAndHeader_EB.xml \
+ -o ${DEPLOY_DIR_IMAGE}/${BOOTBLOCK}.${FULL_SUFFIX}
+
+ bingo ${STAGING_DIR_NATIVE}/${bindir}/UbootHeader_EB.xml \
+ -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${FULL_SUFFIX}
+
+ bingo ${STAGING_DIR_NATIVE}/${bindir}/mergedBootBlockAndUboot.xml \
+ -o ${DEPLOY_DIR_IMAGE}/${UBOOT_BINARY}.${MERGED_SUFFIX}
+
+ cd $currdir
+}
+
+
+do_prepare_bootloaders[depends] += "${EXTRA_DEPENDS}"
+
+
+addtask do_prepare_bootloaders before do_generate_static after do_generate_rwfs_static
+
+
+# Include the full bootblock and u-boot in the final static image
+
+python do_generate_static_append_npcm7xx() {
+
+ _append_image(os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True),
+ 'u-boot.%s' % d.getVar('UBOOT_SUFFIX',True)),
+ int(d.getVar('FLASH_UBOOT_OFFSET', True)),
+ int(d.getVar('FLASH_KERNEL_OFFSET', True)))
+}
+
+do_make_ubi_append_npcm7xx() {
+
+ # Concatenate the uboot and ubi partitions
+ dd bs=1k conv=notrunc seek=${FLASH_UBOOT_OFFSET} \
+ if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \
+ of=${IMGDEPLOYDIR}/${IMAGE_NAME}.ubi.mtd
+}
+
+do_make_ubi[depends] += "${PN}:do_prepare_bootloaders"
+do_generate_ubi_tar[depends] += "${PN}:do_prepare_bootloaders"
+do_generate_static_tar[depends] += "${PN}:do_prepare_bootloaders"
diff --git a/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb b/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb
index fbdda9bbd..c92f76cf8 100644
--- a/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb
+++ b/meta-phosphor/recipes-extended/sdbusplus/sdbusplus_git.bb
@@ -37,7 +37,7 @@ DEPENDS_append_class-native = " \
"
SRC_URI += "git://github.com/openbmc/sdbusplus"
-SRCREV = "66ef099b5a77315bb531300dfcc81a53867cd5fa"
+SRCREV = "c14699f63e909ed6d8599e65503ee9c1e3a104d6"
PACKAGECONFIG ??= "libsdbusplus transaction"
PACKAGECONFIG[libsdbusplus] = "--enable-libsdbusplus,--disable-libsdbusplus,systemd,libsystemd"
diff --git a/meta-phosphor/recipes-extended/sdeventplus/sdeventplus_git.bb b/meta-phosphor/recipes-extended/sdeventplus/sdeventplus_git.bb
index 2f2ce3568..60dabc7b7 100644
--- a/meta-phosphor/recipes-extended/sdeventplus/sdeventplus_git.bb
+++ b/meta-phosphor/recipes-extended/sdeventplus/sdeventplus_git.bb
@@ -20,6 +20,6 @@ EXTRA_OEMESON = " \
"
SRC_URI += "git://github.com/openbmc/sdeventplus"
-SRCREV = "8ec59e6242c3c4752033ea69270e4edb2cd4caec"
+SRCREV = "e19c3cf6493d068d600db959de44a00a8097bbf5"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb b/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
index 845b96ebc..3eaa31d16 100644
--- a/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
+++ b/meta-phosphor/recipes-extended/stdplus/stdplus_git.bb
@@ -14,6 +14,6 @@ EXTRA_OEMESON = " \
"
SRC_URI += "git://github.com/openbmc/stdplus"
-SRCREV = "97e394714ec7e88b13b2675c859c1ef56771ad24"
+SRCREV = "8f1700e7ab886ed602c371265ff2c653a2deb485"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
index 377c0f1b3..239dbbd6b 100644
--- a/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/certificate/phosphor-certificate-manager_git.bb
@@ -9,7 +9,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
SRC_URI = "git://github.com/openbmc/phosphor-certificate-manager"
-SRCREV = "13bf74e4486df30fb70b9dbb040277bcdf50e0ec"
+SRCREV = "dec5877c7e1219299042671cdf82589a081d583f"
inherit autotools \
pkgconfig \
diff --git a/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb b/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
index c6a25437f..0a9746259 100644
--- a/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/configuration/entity-manager_git.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Entity Manager provides d-bus configuration data \
and configures system sensors"
SRC_URI = "git://github.com/openbmc/entity-manager.git"
-SRCREV = "16a02f28484e8fdf94c7949a3084adc89f023413"
+SRCREV = "15c49902cf030a91a5b4bd325d185ee74b760359"
PV = "0.1+git${SRCPV}"
LICENSE = "Apache-2.0"
diff --git a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
index 9a6c036e4..25e49ba34 100644
--- a/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
+++ b/meta-phosphor/recipes-phosphor/dbus/phosphor-dbus-interfaces_git.bb
@@ -14,7 +14,7 @@ DEPENDS += "autoconf-archive-native"
DEPENDS += "sdbus++-native"
SRC_URI += "git://github.com/openbmc/phosphor-dbus-interfaces"
-SRCREV = "57b878d048f929643276f1bf7fdf750abc4bde8b"
+SRCREV = "1f0e2ce6e1cb78a59a0015b160816b71156b03c6"
DEPENDS_remove_class-native = "sdbus++-native"
DEPENDS_remove_class-nativesdk = "sdbus++-native"
diff --git a/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb b/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
index 171c1c42e..9b204fe04 100644
--- a/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
+++ b/meta-phosphor/recipes-phosphor/fans/phosphor-pid-control_git.bb
@@ -13,7 +13,7 @@ inherit obmc-phosphor-ipmiprovider-symlink
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-pid-control"
-SRCREV = "375f7098c232d38adcaab99b2f3ee561ded8c256"
+SRCREV = "2192a6daefe48055e063861b3a33a6c2d91ddf40"
# Each platform will need a service file that starts
# at an appropriate time per system. For instance, if
diff --git a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
index 5731f787f..bdc16038a 100644
--- a/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
+++ b/meta-phosphor/recipes-phosphor/flash/phosphor-software-manager.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "https://github.com/openbmc/phosphor-bmc-code-mgmt"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI += "git://github.com/openbmc/phosphor-bmc-code-mgmt"
-SRCREV = "d5b8f75c2f93d19d16411f0846d8ecd331d59562"
+SRCREV = "a013560f96a9ee5c2db4e1778c7dcee199c3acf1"
diff --git a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
index acb6af748..a92f82c87 100644
--- a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
+++ b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
@@ -6,7 +6,7 @@ ConditionPathExists={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf
[Service]
EnvironmentFile={envfiledir}/obmc/gpio/phosphor-power-supply-%i.conf
-ExecStart=/usr/bin/env phosphor-gpio-presence --path=${{DEVPATH}} --inventory=${{INVENTORY}} --key=${{KEY}} --name=${{NAME}} --drivers=${{DRIVERS}}
+ExecStart=/usr/bin/env phosphor-gpio-presence --path=${{DEVPATH}} --inventory=${{INVENTORY}} --key=${{KEY}} --name=${{NAME}} --drivers=${{DRIVERS}} --extra-ifaces=${{EXTRA_IFACES}}
SyslogIdentifier=phosphor-gpio-presence
[Install]
diff --git a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
index c2f611de6..683a5aca0 100644
--- a/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
+++ b/meta-phosphor/recipes-phosphor/gpio/phosphor-gpio-monitor_git.bb
@@ -38,5 +38,5 @@ FILES_${PN}-monitor += "${bindir}/phosphor-gpio-util"
FILES_${PN}-presence += "${bindir}/phosphor-gpio-presence"
SRC_URI += "git://github.com/openbmc/phosphor-gpio-monitor"
-SRCREV = "64c8fcb65192c7b2abc92c1161038467eb98f667"
+SRCREV = "206f0040985e27a0651a9164d7958bf347142a31"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb b/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb
index 70cde265a..eb82b3845 100644
--- a/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb
+++ b/meta-phosphor/recipes-phosphor/images/obmc-phosphor-image.bb
@@ -4,6 +4,3 @@ IMAGE_LINGUAS = ""
inherit obmc-phosphor-image
-OBMC_IMAGE_EXTRA_INSTALL_append = "\
- phosphor-bmcweb-cert-config \
- "
diff --git a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
index 30da37c49..4cbac906b 100644
--- a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
+++ b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
@@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=a6a4edad4aed50f39a66d098d74b265b"
SRC_URI = "git://github.com/openbmc/bmcweb.git"
PV = "1.0+git${SRCPV}"
-SRCREV = "c72aa4757b57da6e4dae2325b7d0570c6be3d89b"
+SRCREV = "286b9118a35ba8c212972b9c30a257ee41c5d7d2"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb b/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb
index 30b540b7d..bb16749a9 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/ipmi-blob-tool_git.bb
@@ -14,4 +14,4 @@ EXTRA_OECONF = "--disable-tests"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/ipmi-blob-tool"
-SRCREV = "ef5e09252dba451acda30e53e8f5b28f08eac0cb"
+SRCREV = "958f1ce952849300ebfd30cc04ce86937d3bc718"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
index 350083e6e..3b504e1c0 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-blobs_git.bb
@@ -16,7 +16,7 @@ DEPENDS += "ipmi-blob-tool"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-ipmi-blobs"
-SRCREV = "00d5f0de56f3e453be37c2ffc45418fb406396a2"
+SRCREV = "826e17355db0a575e0ad60e25bf82480ac711135"
FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
index ccea00c88..69b10a11f 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-flash_git.bb
@@ -20,7 +20,7 @@ EXTRA_OECONF = "--disable-tests --disable-build-host-tool"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/openbmc/phosphor-ipmi-flash"
-SRCREV = "615c69ef597a044c0d3e7747d9603263f8e462dc"
+SRCREV = "7a5dcd8c213972b5abc6e05c663d37cf004bda7f"
FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
FILES_${PN}_append = " ${libdir}/blob-ipmid/lib*${SOLIBS}"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru_git.bb
index e11235609..d79078a1b 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-fru_git.bb
@@ -12,7 +12,6 @@ inherit pythonnative
require ${PN}.inc
DEPENDS += " \
- virtual/phosphor-ipmi-fru-hostfw-config\
virtual/phosphor-ipmi-fru-inventory \
virtual/phosphor-ipmi-fru-properties \
systemd \
@@ -36,13 +35,6 @@ FILES_${PN}_append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
FILES_${PN}_append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
FILES_${PN}-dev_append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
-# TODO: Fix the the ipmi-fru-parser code generator to handle split
-# host firmware / inventory YAML and replace the OECONF below with:
-#
-# EXTRA_OECONF += "INVENTORY_YAML=${inventory_datadir}/config.yaml"
-# EXTRA_OECONF += "HOSTFW_YAML=${hostfw_datadir}/config.yaml"
-#
-# For now the generator requires them to already be combined so we have:
EXTRA_OECONF = " \
YAML_GEN=${STAGING_DIR_NATIVE}${config_datadir}/config.yaml \
PROP_YAML=${STAGING_DIR_NATIVE}${properties_datadir}/extra-properties.yaml \
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
index 04ffdfd04..d148d4c6e 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host.inc
@@ -2,4 +2,4 @@ HOMEPAGE = "http://github.com/openbmc/phosphor-host-ipmid"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid"
-SRCREV = "db2e8c45727ba98e26778b8c754b92e093e6921c"
+SRCREV = "2a5d8d1ffeabb0484e52b591bb43bfa886d45731"
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service
index 62687d68c..ab898313a 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service
@@ -11,7 +11,6 @@ Wants=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
After=mapper-wait@-xyz-openbmc_project-control-host0-restriction_mode.service
Wants=clear-once.service
After=clear-once.service
-Requires=org.openbmc.HostIpmi.service
After=org.openbmc.HostIpmi.service
[Service]
diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
index 0654cfeb0..314b70fd3 100644
--- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
+++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host_git.bb
@@ -71,12 +71,13 @@ WHITELIST_CONF = " \
${S}/host-ipmid-whitelist.conf \
"
EXTRA_OECONF = " \
- WHITELIST_CONF="${WHITELIST_CONF}" \
SENSOR_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/sensor.yaml \
INVSENSOR_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/invsensor.yaml \
FRU_YAML_GEN=${STAGING_DIR_NATIVE}${config_datadir}/fru_config.yaml \
ENTITY_YAML_GEN=${STAGING_DIR_NATIVE}${sensor_datadir}/entity.yaml \
- POWER_READING_SENSOR=${datadir}/ipmi-providers/power_reading.json\
+ "
+EXTRA_OECONF_append = " \
+ WHITELIST_CONF="${WHITELIST_CONF}" \
"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/logging/ffdc_git.bb b/meta-phosphor/recipes-phosphor/logging/ffdc_git.bb
index 81b7f4536..fc74af106 100644
--- a/meta-phosphor/recipes-phosphor/logging/ffdc_git.bb
+++ b/meta-phosphor/recipes-phosphor/logging/ffdc_git.bb
@@ -15,7 +15,7 @@ RDEPENDS_${PN} += " \
S = "${WORKDIR}/git"
SRC_URI += "git://github.com/openbmc/phosphor-debug-collector"
-SRCREV = "fa180596fe2a3c6fe65e48055e02e0c3e4ef5977"
+SRCREV = "5ba7176ca2755080e35daba0b5417386abf17f6d"
do_install() {
install -d ${D}${bindir}
diff --git a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
index 238ee293e..175b37862 100644
--- a/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
+++ b/meta-phosphor/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bb
@@ -39,6 +39,7 @@ RDEPENDS_${PN}-chassis-state-mgmt = " \
SUMMARY_${PN}-extras = "Extra features"
RDEPENDS_${PN}-extras = " \
bmcweb \
+ phosphor-bmcweb-cert-config \
obmc-ikvm \
phosphor-dbus-monitor \
phosphor-systemd-policy \
@@ -52,7 +53,7 @@ RDEPENDS_${PN}-extrasdev = " \
SUMMARY_${PN}-extrasdevtools = "Development tools"
RDEPENDS_${PN}-extrasdevtools = " \
- libgpiod \
+ libgpiod-tools \
"
# Use the fan control package group for applications
diff --git a/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb b/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
index 6e9ed8ef6..c5062701f 100644
--- a/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
+++ b/meta-phosphor/recipes-phosphor/sensors/dbus-sensors_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "dbus-sensors"
DESCRIPTION = "Dbus Sensor Services Configured from D-Bus"
SRC_URI = "git://github.com/openbmc/dbus-sensors.git"
-SRCREV = "7b18b1e0298c6237b4b775dbe15bcd0cec7fdf07"
+SRCREV = "15266a96d758d4dbc1d3095e652ae083b24732c7"
PV = "0.1+git${SRCPV}"
@@ -18,7 +18,7 @@ SYSTEMD_SERVICE_${PN} += " xyz.openbmc_project.ipmbsensor.service"
SYSTEMD_SERVICE_${PN} += " xyz.openbmc_project.intrusionsensor.service"
SYSTEMD_SERVICE_${PN} += " xyz.openbmc_project.psusensor.service"
-DEPENDS = "boost nlohmann-json sdbusplus i2c-tools"
+DEPENDS = "boost nlohmann-json sdbusplus i2c-tools libgpiod"
inherit cmake systemd
S = "${WORKDIR}/git/"
diff --git a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
index e8977d153..de38de08c 100644
--- a/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
+++ b/meta-phosphor/recipes-phosphor/sensors/phosphor-hwmon_git.bb
@@ -39,7 +39,7 @@ SRC_URI += "file://70-hwmon.rules"
SRC_URI += "file://70-iio.rules"
SRC_URI += "file://start_hwmon.sh"
-SRCREV = "5c014d2bb76f6f6d51aecf31bea95cb9ed9b1953"
+SRCREV = "d0ce7925d77c56c142f64b2c6ae55f0020c06ba8"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb b/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
index db9d3bdee..2e4533d61 100644
--- a/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
+++ b/meta-phosphor/recipes-phosphor/users/phosphor-user-manager_git.bb
@@ -39,5 +39,5 @@ DBUS_SERVICE_phosphor-ldap = " \
xyz.openbmc_project.LDAP.PrivilegeMapper.service \
"
SRC_URI += "git://github.com/openbmc/phosphor-user-manager"
-SRCREV = "fef578960f632abacc5cd615b2bedfb3ab9ebb90"
+SRCREV = "75b5a6fc4c0c06f43623fe0e746fd55e667dceb3"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb b/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
index 0b63dccb2..f791d68b4 100644
--- a/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
+++ b/meta-phosphor/recipes-phosphor/watchdog/phosphor-watchdog_git.bb
@@ -20,7 +20,7 @@ DEPENDS += "phosphor-logging"
DEPENDS += "systemd"
SRC_URI += "git://github.com/openbmc/phosphor-watchdog"
-SRCREV = "47a9ec4ee9b05a9794a09d16762e3ef7318c5489"
+SRCREV = "9062ed11e4b2cd96cf96d09ff99d1734b96a1780"
S = "${WORKDIR}/git"
EXTRA_OEMESON = " \
diff --git a/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb b/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
index 59b00a885..5d36313c9 100644
--- a/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
+++ b/meta-phosphor/recipes-phosphor/webui/phosphor-webui_git.bb
@@ -6,7 +6,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
SRC_URI = "git://github.com/openbmc/phosphor-webui.git"
-SRCREV = "6a3b3b2cdd8e92265997fe66f6c8489caf1dd403"
+SRCREV = "5bd1dec7fdc8f6a3a20e6c23dc491b3d31392bc5"
S = "${WORKDIR}/git"
DEPENDS_prepend = "nodejs-native "
@@ -33,7 +33,7 @@ FILES_${PN} += "${datadir}/www/*"
do_compile () {
cd ${S}
rm -rf node_modules
- npm --loglevel info --proxy=${HTTP_PROXY} --https-proxy=${HTTPS_PROXY} install
+ npm --loglevel info --proxy=${http_proxy} --https-proxy=${https_proxy} install
npm run-script build
}
diff --git a/meta-phosphor/recipes-support/libgpiod/libgpiod_%.bbappend b/meta-phosphor/recipes-support/libgpiod/libgpiod_%.bbappend
new file mode 100644
index 000000000..0ee1845d2
--- /dev/null
+++ b/meta-phosphor/recipes-support/libgpiod/libgpiod_%.bbappend
@@ -0,0 +1 @@
+PACKAGECONFIG += " cxx"
diff --git a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh
index 2ea02ef8d..71116fbe9 100644
--- a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh
+++ b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/init_once.sh
@@ -1,60 +1,58 @@
#!/bin/bash
+source /usr/libexec/nvme_powerctrl_library.sh
+
function set_gpio() {
#$1 gpio pin
echo $1 > /sys/class/gpio/export
}
-function set_gpio_direction(){
- #$1 gpio pin, $2 'in','high','low'
- echo $2 > /sys/class/gpio/gpio$1/direction
-}
-
-function read_gpio_input(){
- #$1 read input gpio pin
- cat /sys/class/gpio/gpio$1/value
-}
-
-function read_present_set_related_power(){
- #$1 read present gpio, $2 output power gpio,$3 output direction
- var=$(cat /sys/class/gpio/gpio$1/value)
- # present 0 is plugged,present 1 is removal
- if [ "$var" == "0" ];then
- set_gpio_direction $2 "high"
- else
- set_gpio_direction $2 "low"
- fi
-}
-
+echo "Read Clock Gen Value is: $CLOCK_GEN_VALUE"
-## Initial U2_PRESNET_N
-U2_PRESENT=( 148 149 150 151 152 153 154 155 )
-for i in "${U2_PRESENT[@]}";
-do
- set_gpio $i;
- set_gpio_direction $i 'in';
+## Initial U2_PRESENT_N
+for i in ${!U2_PRESENT[@]};
+do
+ set_gpio ${U2_PRESENT[$i]};
+ set_gpio_direction ${U2_PRESENT[$i]} 'in';
+ echo "Read $i SSD present: $(read_gpio_input ${U2_PRESENT[$i]})"
done
## Initial POWER_U2_EN
-POWER_U2=( 195 196 202 199 198 197 127 126 )
-for i in "${POWER_U2[@]}";
+for i in ${!POWER_U2[@]};
do
- set_gpio $i;
+ set_gpio ${POWER_U2[$i]};
done
## Initial PWRGD_U2
-PWRGD_U2=( 161 162 163 164 165 166 167 168 )
-for i in "${PWRGD_U2[@]}";
-do
- set_gpio $i;
- set_gpio_direction $i 'in';
+for i in ${!PWRGD_U2[@]};
+do
+ set_gpio ${PWRGD_U2[$i]};
+ set_gpio_direction ${PWRGD_U2[$i]} 'in';
+ echo "Read $i SSD Power Good: $(read_gpio_input ${PWRGD_U2[$i]})"
done
-### Initial SSD Power reference U2_PRESNET_N
-for i in {0..7};
+## Initial RST_BMC_U2
+for i in ${!RST_BMC_U2[@]};
do
- read_present_set_related_power "${U2_PRESENT[$i]}" "${POWER_U2[$i]}";
-done
+ set_gpio ${RST_BMC_U2[$i]};
+done
+### Initial related Power by Present
+for i in {0..7};
+do
+ update_value=$(printf '%x\n' "$((0x01 <<$i))")
+ if [ $(read_gpio_input ${U2_PRESENT[$i]}) == $PLUGGED ];then
+ CLOCK_GEN_VALUE=$(printf '0x%x\n' \
+ "$(($CLOCK_GEN_VALUE | 0x$update_value))")
+ else
+ set_gpio_direction "${RST_BMC_U2[$1]}" "low"
+ set_gpio_direction "${POWER_U2[$1]}" "low"
+
+ CLOCK_GEN_VALUE=$(printf '0x%x\n' \
+ "$(($CLOCK_GEN_VALUE & ~0x$update_value))")
+ fi
+done
+i2cset -y $I2C_BUS $CHIP_ADDR 0 $CLOCK_GEN_VALUE s
+echo "Read Clock Gen Value again is: $CLOCK_GEN_VALUE"
-exit 0; \ No newline at end of file
+exit 0;
diff --git a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh
new file mode 100644
index 000000000..3737aacc1
--- /dev/null
+++ b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powerctrl_library.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+U2_PRESENT=( 148 149 150 151 152 153 154 155 )
+POWER_U2=( 195 196 202 199 198 197 127 126 )
+PWRGD_U2=( 161 162 163 164 165 166 167 168 )
+RST_BMC_U2=( 72 73 74 75 76 77 78 79 )
+PLUGGED=0
+I2C_BUS=8
+CHIP_ADDR=0x68
+CLOCK_GEN_VALUE=$(i2cget -y $I2C_BUS $CHIP_ADDR 0 i 2|cut -f3 -d' ')
+
+function set_gpio_direction()
+{
+ #$1 gpio pin, $2 'in','high','low'
+ echo $2 > /sys/class/gpio/gpio$1/direction
+}
+
+function read_gpio_input()
+{
+ #$1 read input gpio pin
+ echo $(cat /sys/class/gpio/gpio$1/value)
+}
+
+function enable_nvme_power()
+{
+ set_gpio_direction "${POWER_U2[$1]}" "high"
+ sleep 0.04
+ check_powergood $1
+}
+
+function check_powergood()
+{
+ if [ $(read_gpio_input ${PWRGD_U2[$1]}) == 1 ];then
+ sleep 0.005
+ update_clock_gen_chip_register $1 1
+ sleep 0.1
+ set_gpio_direction "${RST_BMC_U2[$1]}" "high"
+ else
+ disable_nvme_power $1
+ fi
+}
+
+function disable_nvme_power()
+{
+ set_gpio_direction "${RST_BMC_U2[$1]}" "low"
+ sleep 0.1
+ update_clock_gen_chip_register $1 0
+ sleep 0.005
+ set_gpio_direction "${POWER_U2[$1]}" "low"
+}
+
+function update_clock_gen_chip_register(){
+ #$1 nvme slot number, $2 enable/disable
+ update_value=$(printf '%x\n' "$((0x01 <<$1))")
+ if [ $2 -eq 1 ];then
+ CLOCK_GEN_VALUE=$(printf '0x%x\n' \
+ "$(($CLOCK_GEN_VALUE | 0x$update_value))")
+ else
+ CLOCK_GEN_VALUE=$(printf '0x%x\n' \
+ "$(($CLOCK_GEN_VALUE & ~0x$update_value))")
+ fi
+ i2cset -y $I2C_BUS $CHIP_ADDR 0 $CLOCK_GEN_VALUE s
+}
diff --git a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powermanager.sh b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powermanager.sh
index 91beec566..753c6c4cf 100644
--- a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powermanager.sh
+++ b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/files/nvme_powermanager.sh
@@ -1,73 +1,47 @@
#!/bin/bash
+source /usr/libexec/nvme_powerctrl_library.sh
U2_PRESENT_STATUS=( 1 1 1 1 1 1 1 1 )
-U2_PRESENT=( 148 149 150 151 152 153 154 155 )
-POWER_U2=( 195 196 202 199 198 197 127 126 )
-PWRGD_U2=( 161 162 163 164 165 166 167 168 )
-
-function set_gpio_direction(){
- #$1 gpio pin, $2 'in','high','low'
- echo $2 > /sys/class/gpio/gpio$1/direction
-}
-
-function read_present_set_related_power(){
- #$1 read present number, $2 output power gpio
- var="${U2_PRESENT_STATUS[$1]}"
- # present 0 is plugged,present 1 is removal
- if [ "$var" == "0" ];then
- set_gpio_direction $2 "high"
- else
- set_gpio_direction $2 "low"
- fi
-}
-
-function update_u2_status(){
- #$1 read present gpio
- var=$(cat /sys/class/gpio/gpio$2/value)
- U2_PRESENT_STATUS[$1]="$var"
+function recovery_power()
+{
+ set_gpio_direction "${POWER_U2[$1]}" "low"
+ sleep 0.2
+ set_gpio_direction "${POWER_U2[$1]}" "high"
+ sleep 0.2
+ check_powergood $1
}
-function check_present_and_powergood(){
- #$2 present gpio, $3 powergood gpio
- present=$(cat /sys/class/gpio/gpio$2/value)
- pwrgd=$(cat /sys/class/gpio/gpio$3/value)
- path=`expr $1`
- if [ "$present" -eq 0 ] && [ "$pwrgd" -eq 1 ];then
- busctl set-property xyz.openbmc_project.nvme.manager /xyz/openbmc_project/nvme/$path xyz.openbmc_project.Inventory.Item Present b true
- else
- busctl set-property xyz.openbmc_project.nvme.manager /xyz/openbmc_project/nvme/$path xyz.openbmc_project.Inventory.Item Present b false
- if [ "$present" -eq "$pwrgd" ];then
- #set fault led
- busctl set-property xyz.openbmc_project.LED.GroupManager /xyz/openbmc_project/led/groups/led\_u2\_$1\_fault xyz.openbmc_project.Led.Group Asserted b true
- else
- busctl set-property xyz.openbmc_project.LED.GroupManager /xyz/openbmc_project/led/groups/led\_u2\_$1\_fault xyz.openbmc_project.Led.Group Asserted b false
- fi
-
- fi
-
-
-}
##Initial U2 present status
for i in {0..7};
-do
- update_u2_status $i "${U2_PRESENT[$i]}"
+do
+ U2_PRESENT_STATUS[$i]=$(read_gpio_input ${U2_PRESENT[$i]})
done
-
## Loop while
while :
do
for i in {0..7};
do
- ## 1 scend scan all loop
+ ## 1 second scan all loop
sleep 0.125
- read=$(cat /sys/class/gpio/gpio${U2_PRESENT[$i]}/value)
- if [ "${U2_PRESENT_STATUS[$1]}" != read ];then
- update_u2_status $i "${U2_PRESENT[$i]}"
- read_present_set_related_power $i "${POWER_U2[$i]}"
- check_present_and_powergood $i "${U2_PRESENT[$i]}" "${POWER_U2[$i]}"
- fi
+ read_present=$(read_gpio_input ${U2_PRESENT[$i]})
+ if [ "$read_present" != "${U2_PRESENT_STATUS[$i]}" ];then
+ U2_PRESENT_STATUS[$i]="$read_present"
+ if [ "$read_present" == $PLUGGED ];then
+ echo "NVME $i Enable Power"
+ enable_nvme_power $i
+ else
+ echo "NVME $i Disable Power"
+ disable_nvme_power $i
+ fi
+ else
+ if [ "${U2_PRESENT_STATUS[$i]}" == $PLUGGED ] &&
+ [ $(read_gpio_input ${PWRGD_U2[$i]}) == 0 ];then
+ echo "NVME $i Recovery Power"
+ recovery_power $i
+ fi
+ fi
done
done
diff --git a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb
index 8d0aa8c72..ada2a6a36 100644
--- a/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb
+++ b/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/quanta-nvme-powerctrl.bb
@@ -14,6 +14,7 @@ RDEPENDS_${PN} += "bash"
SRC_URI += "file://init_once.sh \
file://nvme_powermanager.sh \
+ file://nvme_powerctrl_library.sh \
file://nvme_gpio.service \
file://nvme_powermanager.service \
"
@@ -23,9 +24,12 @@ do_install () {
install -m 0755 ${WORKDIR}/init_once.sh ${D}${bindir}/
install -m 0755 ${WORKDIR}/nvme_powermanager.sh ${D}${bindir}/
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/nvme_powerctrl_library.sh ${D}${libexecdir}/
+
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/nvme_gpio.service ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/nvme_powermanager.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/nvme_powermanager.service ${D}${systemd_unitdir}/system
}
SYSTEMD_PACKAGES = "${PN}"
diff --git a/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/time-default.override.yml b/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/time-default.override.yml
new file mode 100644
index 000000000..abb1316c8
--- /dev/null
+++ b/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager/time-default.override.yml
@@ -0,0 +1,12 @@
+---
+/xyz/openbmc_project/time/owner:
+ - Interface: xyz.openbmc_project.Time.Owner
+ Properties:
+ TimeOwner:
+ Default: Owner::Owners::Host
+
+/xyz/openbmc_project/time/sync_method:
+ - Interface: xyz.openbmc_project.Time.Synchronization
+ Properties:
+ TimeSyncMethod:
+ Default: Synchronization::Method::Manual
diff --git a/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend b/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend
new file mode 100644
index 000000000..da834423f
--- /dev/null
+++ b/meta-quanta/meta-gsj/recipes-phosphor/settings/phosphor-settings-manager_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend_gsj := "${THISDIR}/${BPN}:"
+SRC_URI_append_gsj = " file://time-default.override.yml"
diff --git a/meta-yadro/.gitignore b/meta-yadro/.gitignore
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/meta-yadro/.gitignore
diff --git a/meta-yadro/COPYING.MIT b/meta-yadro/COPYING.MIT
new file mode 100644
index 000000000..89de35479
--- /dev/null
+++ b/meta-yadro/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/meta-yadro/COPYING.apache-2.0 b/meta-yadro/COPYING.apache-2.0
new file mode 100644
index 000000000..67db85882
--- /dev/null
+++ b/meta-yadro/COPYING.apache-2.0
@@ -0,0 +1,175 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
diff --git a/meta-yadro/LICENSE b/meta-yadro/LICENSE
new file mode 100644
index 000000000..71e099a01
--- /dev/null
+++ b/meta-yadro/LICENSE
@@ -0,0 +1,12 @@
+Different components of meta-yadro are under different licenses (a mix
+of MIT and Apache-2.0). Please see:
+
+COPYING.Apache-2.0
+COPYING.MIT (MIT)
+
+All metadata is MIT licensed unless otherwise stated. Source code
+included in tree for individual recipes is under the LICENSE stated in
+the associated recipe (.bb file) unless otherwise stated.
+
+License information for any other files is either explicitly stated
+or defaults to Apache-2.0.
diff --git a/meta-yadro/MAINTAINERS b/meta-yadro/MAINTAINERS
new file mode 100644
index 000000000..276d9ea4a
--- /dev/null
+++ b/meta-yadro/MAINTAINERS
@@ -0,0 +1,47 @@
+How to use this list:
+ Find the most specific section entry (described below) that matches where
+ your change lives and add the reviewers (R) and maintainers (M) as
+ reviewers. You can use the same method to track down who knows a particular
+ code base best.
+
+ Your change/query may span multiple entries; that is okay.
+
+ If you do not find an entry that describes your request at all, someone
+ forgot to update this list; please at least file an issue or send an email
+ to a maintainer, but preferably you should just update this document.
+
+Description of section entries:
+
+ Section entries are structured according to the following scheme:
+
+ X: NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
+ X: ...
+ .
+ .
+ .
+
+ Where REPO_NAME is the name of the repository within the OpenBMC GitHub
+ organization; FILE_PATH is a file path within the repository, possibly with
+ wildcards; X is a tag of one of the following types:
+
+ M: Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ if omitted from an entry, assume one of the maintainers from the
+ MAINTAINERS entry.
+ R: Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
+ these people are to be added as reviewers for a change matching the repo
+ path.
+ F: Denotes forked from an external repository; has fields URL.
+
+ Line comments are to be denoted "# SOME COMMENT" (typical shell style
+ comment); it is important to follow the correct syntax and semantics as we
+ may want to use automated tools with this file in the future.
+
+ A change cannot be added to an OpenBMC repository without a MAINTAINER's
+ approval; thus, a MAINTAINER should always be listed as a reviewer.
+
+START OF MAINTAINERS LIST
+-------------------------
+
+M: Alexander Filippov <a.filippov@yadro.com> <nest1ing!>
+M: Alexander Amelkin <a.amelkin@yadro.com> <AAmelkin_YADRO!>
+R: Artem Senichev <artemsen@gmail.com> <artemsen!>
diff --git a/meta-yadro/README.md b/meta-yadro/README.md
new file mode 100644
index 000000000..de7366f61
--- /dev/null
+++ b/meta-yadro/README.md
@@ -0,0 +1,9 @@
+# YADRO
+
+YADRO is a technology company committed to influencing the way enterprises
+address their IT transformation challenges and offering game-changing products
+with outstanding quality. Powered by a team of knowledgeable talents combining a
+wide range of experience gained through the years of contribution to the success
+of leading technology companies.
+
+https://yadro.com
diff --git a/meta-yadro/conf/layer.conf b/meta-yadro/conf/layer.conf
new file mode 100644
index 000000000..7feac4c21
--- /dev/null
+++ b/meta-yadro/conf/layer.conf
@@ -0,0 +1,11 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+BBFILE_COLLECTIONS += "yadro-layer"
+BBFILE_PATTERN_yadro-layer = "^${LAYERDIR}/"
+BBFILE_PATTERN_IGNORE_EMPTY_yadro-layer = "1"
+
+LAYERSERIES_COMPAT_yadro-layer = "thud warrior"
+
+# Provide a variable that points the base of the yadro layer.
+YADROBASE = '${@os.path.normpath("${LAYERDIR}/")}'
diff --git a/meta-yadro/meta-vesnin/README.md b/meta-yadro/meta-vesnin/README.md
new file mode 100644
index 000000000..aa0f56cf3
--- /dev/null
+++ b/meta-yadro/meta-vesnin/README.md
@@ -0,0 +1,7 @@
+# VESNIN SERVER
+
+The world's first OpenPOWER enterprise class high performance server designed
+for data intensive applications with outstanding footprint. Four-socket server
+supporting up to 48 POWER8 cores and 8 TB memory in ultra dense 2U form factor.
+
+https://yadro.com/products/vesnin
diff --git a/meta-yadro/meta-vesnin/conf/bblayers.conf.sample b/meta-yadro/meta-vesnin/conf/bblayers.conf.sample
new file mode 100644
index 000000000..379cc954c
--- /dev/null
+++ b/meta-yadro/meta-vesnin/conf/bblayers.conf.sample
@@ -0,0 +1,31 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-yadro \
+ ##OEROOT##/meta-yadro/meta-vesnin \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-openembedded/meta-oe \
+ ##OEROOT##/meta-openembedded/meta-networking \
+ ##OEROOT##/meta-openembedded/meta-perl \
+ ##OEROOT##/meta-openembedded/meta-python \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-yadro \
+ ##OEROOT##/meta-yadro/meta-vesnin \
+ "
diff --git a/meta-yadro/meta-vesnin/conf/conf-notes.txt b/meta-yadro/meta-vesnin/conf/conf-notes.txt
new file mode 100644
index 000000000..9b3c01a55
--- /dev/null
+++ b/meta-yadro/meta-vesnin/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-yadro/meta-vesnin/conf/layer.conf b/meta-yadro/meta-vesnin/conf/layer.conf
new file mode 100644
index 000000000..c8e7890d8
--- /dev/null
+++ b/meta-yadro/meta-vesnin/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 += "vesnin-layer"
+BBFILE_PATTERN_vesnin-layer = "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_vesnin-layer = "thud warrior"
diff --git a/meta-yadro/meta-vesnin/conf/local.conf.sample b/meta-yadro/meta-vesnin/conf/local.conf.sample
new file mode 100644
index 000000000..06f24dc5a
--- /dev/null
+++ b/meta-yadro/meta-vesnin/conf/local.conf.sample
@@ -0,0 +1,238 @@
+#
+# 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 ??= "vesnin"
+
+#
+# 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"
diff --git a/meta-yadro/meta-vesnin/conf/machine/vesnin.conf b/meta-yadro/meta-vesnin/conf/machine/vesnin.conf
new file mode 100644
index 000000000..fc448de86
--- /dev/null
+++ b/meta-yadro/meta-vesnin/conf/machine/vesnin.conf
@@ -0,0 +1,23 @@
+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/openpower.inc
+require conf/machine/include/p8.inc
+
+UBOOT_MACHINE_vesnin = "ast_g4_ncsi_config"
+UBOOT_ENTRYPOINT = "0x40008000"
+UBOOT_LOADADDRESS = "0x40008000"
+
+FLASH_SIZE = "32768"
+
+SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS4"
+
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "vesnin-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "vesnin-ipmi-inventory-map-read-native"
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "vesnin-led-manager-config-native"
+PREFERRED_PROVIDER_virtual/openpower-fru-properties = "vesnin-openpower-fru-properties-native"
+PREFERRED_PROVIDER_virtual/openpower-fru-vpd-layout = "vesnin-openpower-fru-vpd-layout-native"
+PREFERRED_PROVIDER_virtual/openpower-fru-inventory = "vesnin-openpower-fru-inventory-native"
+PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native = "vesnin-openpower-occ-control-config-native"
diff --git a/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch
new file mode 100644
index 000000000..ba03640d6
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0001-vesnin-dts-add-mbox-and-lpc_host.patch
@@ -0,0 +1,38 @@
+From 229cd43c240a8395ac6ed684a5eee7a0586f9724 Mon Sep 17 00:00:00 2001
+From: Alexander Filippov <a.filippov@yadro.com>
+Date: Tue, 4 Jun 2019 14:12:00 +0300
+Subject: [PATCH] vesnin: dts: add mbox and lpc_host
+
+These nodes were removed from our DTS by the ask of Andrew Jeffery as
+its are not upstreamed yet. But its are still required to start the
+host.
+
+Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
+---
+ arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts b/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts
+index 0b9e29c3212e..20f07f5bb4f4 100644
+--- a/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts
++++ b/arch/arm/boot/dts/aspeed-bmc-opp-vesnin.dts
+@@ -120,6 +120,16 @@
+ status = "okay";
+ };
+
++&lpc_host {
++ sio_regs: regs {
++ compatible = "aspeed,bmc-misc";
++ };
++};
++
++&mbox {
++ status = "okay";
++};
++
+ &uart3 {
+ status = "okay";
+ pinctrl-names = "default";
+--
+2.20.1
+
diff --git a/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch
new file mode 100644
index 000000000..fb286691d
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/0002-vesnin-remap-aspeed-uart.patch
@@ -0,0 +1,41 @@
+From 85027d94696464269ae77702ead788a14fc8305f Mon Sep 17 00:00:00 2001
+From: Alexander Filippov <a.filippov@yadro.com>
+Date: Wed, 28 Mar 2018 17:46:28 +0300
+Subject: [PATCH] vesnin: remap aspeed-uart
+
+Remaps UART2 <-> UART3
+
+Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
+---
+ drivers/misc/aspeed-lpc-ctrl.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/misc/aspeed-lpc-ctrl.c b/drivers/misc/aspeed-lpc-ctrl.c
+index 332210e06e98..ce5138474130 100644
+--- a/drivers/misc/aspeed-lpc-ctrl.c
++++ b/drivers/misc/aspeed-lpc-ctrl.c
+@@ -27,6 +27,7 @@
+
+ #define HICR7 0x8
+ #define HICR8 0xc
++#define HICRA 0x1c
+
+ struct aspeed_lpc_ctrl {
+ struct miscdevice miscdev;
+@@ -274,6 +275,13 @@ static int aspeed_lpc_ctrl_probe(struct platform_device *pdev)
+ goto err;
+ }
+
++ /* Switch UART2 to IO3 and UART3 to IO2 */
++ rc = regmap_write(lpc_ctrl->regmap, HICRA, 0x00C80108);
++ if (rc) {
++ dev_err(dev, "Unable to switch UART 2<->3\n");
++ goto err;
++ }
++
+ return 0;
+
+ err:
+--
+2.20.1
+
diff --git a/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/vesnin.cfg b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/vesnin.cfg
new file mode 100644
index 000000000..59a232127
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed/vesnin.cfg
@@ -0,0 +1,10 @@
+CONFIG_EEPROM_AT24=y
+CONFIG_SENSORS_LM75=y
+CONFIG_SENSORS_W83795=y
+CONFIG_SENSORS_PMBUS=y
+CONFIG_RTC_DRV_DS1307_HWMON=y
+
+CONFIG_FSI=n
+CONFIG_FSI_MASTER_HUB=n
+CONFIG_FSI_MASTER_AST_CF=n
+CONFIG_FSI_SCOM=n
diff --git a/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 000000000..5a8925301
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,6 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI_append_vesnin = "\
+ file://vesnin.cfg \
+ file://0001-vesnin-dts-add-mbox-and-lpc_host.patch \
+ file://0002-vesnin-remap-aspeed-uart.patch \
+"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 000000000..36c136893
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1 @@
+OBMC_IMAGE_EXTRA_INSTALL_append = " mboxd first-boot-set-mac"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/initfs/obmc-phosphor-initfs.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/initfs/obmc-phosphor-initfs.bbappend
new file mode 100644
index 000000000..3e79e4831
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/initfs/obmc-phosphor-initfs.bbappend
@@ -0,0 +1,5 @@
+RDEPENDS_${PN}_remove += " cf-fsi-firmware "
+
+do_install_append() {
+ echo "/etc/hostname" >> ${D}/whitelist
+}
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-native.bb b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-native.bb
new file mode 100644
index 000000000..efea9368a
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-native.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Vesnin IPMI to DBus Inventory mapping."
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+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-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-read-native.bb b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-read-native.bb
new file mode 100644
index 000000000..e4d3bd509
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map-read-native.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Vesnin IPMI to DBus Inventory mapping."
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+inherit phosphor-ipmi-host
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/vesnin-ipmi-inventory-map:"
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-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-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map/config.yaml b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map/config.yaml
new file mode 100644
index 000000000..26c7831b9
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/ipmi/vesnin-ipmi-inventory-map/config.yaml
@@ -0,0 +1,4417 @@
+0:
+ /system/chassis/bmc:
+ entityID: 6
+ 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
+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/cpu2:
+ entityID: 3
+ entityInstance: 3
+ 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
+4:
+ /system/chassis/motherboard/cpu3:
+ entityID: 3
+ entityInstance: 4
+ 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
+5:
+ /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
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Board
+ /system:
+ entityID: 25
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ SerialNumber:
+ IPMIFruProperty: Serial Number
+ IPMIFruSection: Chassis
+ Model:
+ IPMIFruProperty: Part Number
+ IPMIFruSection: Chassis
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Board
+6:
+ /system/chassis/motherboard/membuf1:
+ 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
+7:
+ /system/chassis/motherboard/membuf0:
+ entityID: 23
+ entityInstance: 2
+ 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
+8:
+ /system/chassis/motherboard/membuf5:
+ entityID: 23
+ entityInstance: 3
+ 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
+9:
+ /system/chassis/motherboard/membuf4:
+ entityID: 23
+ entityInstance: 4
+ 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
+10:
+ /system/chassis/motherboard/membuf9:
+ entityID: 23
+ entityInstance: 5
+ 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
+11:
+ /system/chassis/motherboard/membuf8:
+ entityID: 23
+ entityInstance: 6
+ 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
+12:
+ /system/chassis/motherboard/membuf13:
+ entityID: 23
+ entityInstance: 7
+ 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
+13:
+ /system/chassis/motherboard/membuf12:
+ entityID: 23
+ entityInstance: 8
+ 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
+14:
+ /system/chassis/motherboard/membuf17:
+ entityID: 23
+ entityInstance: 9
+ 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/chassis/motherboard/membuf16:
+ entityID: 23
+ entityInstance: 10
+ 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
+16:
+ /system/chassis/motherboard/membuf21:
+ entityID: 23
+ entityInstance: 11
+ 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
+17:
+ /system/chassis/motherboard/membuf20:
+ entityID: 23
+ entityInstance: 12
+ 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
+18:
+ /system/chassis/motherboard/membuf25:
+ entityID: 23
+ entityInstance: 13
+ 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
+19:
+ /system/chassis/motherboard/membuf24:
+ entityID: 23
+ entityInstance: 14
+ 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
+20:
+ /system/chassis/motherboard/membuf29:
+ entityID: 23
+ entityInstance: 15
+ 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
+21:
+ /system/chassis/motherboard/membuf28:
+ entityID: 23
+ entityInstance: 16
+ 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
+22:
+ /system/chassis/motherboard/dimm8:
+ 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
+23:
+ /system/chassis/motherboard/dimm9:
+ 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
+24:
+ /system/chassis/motherboard/dimm10:
+ 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
+25:
+ /system/chassis/motherboard/dimm11:
+ 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
+26:
+ /system/chassis/motherboard/dimm12:
+ 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
+27:
+ /system/chassis/motherboard/dimm13:
+ 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
+28:
+ /system/chassis/motherboard/dimm14:
+ 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
+29:
+ /system/chassis/motherboard/dimm15:
+ 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
+30:
+ /system/chassis/motherboard/dimm0:
+ 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
+31:
+ /system/chassis/motherboard/dimm1:
+ 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
+32:
+ /system/chassis/motherboard/dimm2:
+ 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
+33:
+ /system/chassis/motherboard/dimm3:
+ 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
+34:
+ /system/chassis/motherboard/dimm4:
+ 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
+35:
+ /system/chassis/motherboard/dimm5:
+ 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
+36:
+ /system/chassis/motherboard/dimm6:
+ 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
+37:
+ /system/chassis/motherboard/dimm7:
+ 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
+38:
+ /system/chassis/motherboard/dimm16:
+ entityID: 32
+ entityInstance: 17
+ 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
+39:
+ /system/chassis/motherboard/dimm17:
+ entityID: 32
+ entityInstance: 18
+ 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
+40:
+ /system/chassis/motherboard/dimm18:
+ entityID: 32
+ entityInstance: 19
+ 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
+41:
+ /system/chassis/motherboard/dimm19:
+ entityID: 32
+ entityInstance: 20
+ 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
+42:
+ /system/chassis/motherboard/dimm20:
+ entityID: 32
+ entityInstance: 21
+ 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
+43:
+ /system/chassis/motherboard/dimm21:
+ entityID: 32
+ entityInstance: 22
+ 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
+44:
+ /system/chassis/motherboard/dimm22:
+ entityID: 32
+ entityInstance: 23
+ 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
+
+45:
+ /system/chassis/motherboard/dimm23:
+ entityID: 32
+ entityInstance: 24
+ 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
+
+46:
+ /system/chassis/motherboard/dimm24:
+ entityID: 32
+ entityInstance: 25
+ 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
+
+47:
+ /system/chassis/motherboard/dimm25:
+ entityID: 32
+ entityInstance: 26
+ 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
+
+48:
+ /system/chassis/motherboard/dimm26:
+ entityID: 32
+ entityInstance: 27
+ 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
+
+49:
+ /system/chassis/motherboard/dimm27:
+ entityID: 32
+ entityInstance: 28
+ 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
+
+50:
+ /system/chassis/motherboard/dimm28:
+ entityID: 32
+ entityInstance: 29
+ 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
+
+51:
+ /system/chassis/motherboard/dimm29:
+ entityID: 32
+ entityInstance: 30
+ 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
+
+52:
+ /system/chassis/motherboard/dimm30:
+ entityID: 32
+ entityInstance: 31
+ 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
+
+53:
+ /system/chassis/motherboard/dimm31:
+ entityID: 32
+ entityInstance: 32
+ 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
+
+54:
+ /system/chassis/motherboard/dimm40:
+ entityID: 32
+ entityInstance: 33
+ 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
+
+55:
+ /system/chassis/motherboard/dimm41:
+ entityID: 32
+ entityInstance: 34
+ 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
+
+56:
+ /system/chassis/motherboard/dimm42:
+ entityID: 32
+ entityInstance: 35
+ 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
+
+57:
+ /system/chassis/motherboard/dimm43:
+ entityID: 32
+ entityInstance: 36
+ 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
+
+58:
+ /system/chassis/motherboard/dimm44:
+ entityID: 32
+ entityInstance: 37
+ 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
+
+59:
+ /system/chassis/motherboard/dimm45:
+ entityID: 32
+ entityInstance: 38
+ 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
+
+60:
+ /system/chassis/motherboard/dimm46:
+ entityID: 32
+ entityInstance: 39
+ 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
+
+61:
+ /system/chassis/motherboard/dimm47:
+ entityID: 32
+ entityInstance: 40
+ 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
+
+62:
+ /system/chassis/motherboard/dimm32:
+ entityID: 32
+ entityInstance: 41
+ 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
+
+63:
+ /system/chassis/motherboard/dimm33:
+ entityID: 32
+ entityInstance: 42
+ 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
+
+64:
+ /system/chassis/motherboard/dimm34:
+ entityID: 32
+ entityInstance: 43
+ 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
+
+65:
+ /system/chassis/motherboard/dimm35:
+ entityID: 32
+ entityInstance: 44
+ 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
+
+66:
+ /system/chassis/motherboard/dimm36:
+ entityID: 32
+ entityInstance: 45
+ 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
+
+67:
+ /system/chassis/motherboard/dimm37:
+ entityID: 32
+ entityInstance: 46
+ 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
+
+68:
+ /system/chassis/motherboard/dimm38:
+ entityID: 32
+ entityInstance: 47
+ 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
+
+69:
+ /system/chassis/motherboard/dimm39:
+ entityID: 32
+ entityInstance: 48
+ 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
+
+70:
+ /system/chassis/motherboard/dimm48:
+ entityID: 32
+ entityInstance: 49
+ 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
+
+71:
+ /system/chassis/motherboard/dimm49:
+ entityID: 32
+ entityInstance: 50
+ 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
+
+72:
+ /system/chassis/motherboard/dimm50:
+ entityID: 32
+ entityInstance: 51
+ 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
+
+73:
+ /system/chassis/motherboard/dimm51:
+ entityID: 32
+ entityInstance: 52
+ 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
+
+74:
+ /system/chassis/motherboard/dimm52:
+ entityID: 32
+ entityInstance: 53
+ 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
+
+75:
+ /system/chassis/motherboard/dimm53:
+ entityID: 32
+ entityInstance: 54
+ 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
+
+76:
+ /system/chassis/motherboard/dimm54:
+ entityID: 32
+ entityInstance: 55
+ 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
+
+77:
+ /system/chassis/motherboard/dimm55:
+ entityID: 32
+ entityInstance: 56
+ 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
+
+78:
+ /system/chassis/motherboard/dimm56:
+ entityID: 32
+ entityInstance: 57
+ 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
+
+79:
+ /system/chassis/motherboard/dimm57:
+ entityID: 32
+ entityInstance: 58
+ 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
+
+80:
+ /system/chassis/motherboard/dimm58:
+ entityID: 32
+ entityInstance: 59
+ 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
+
+81:
+ /system/chassis/motherboard/dimm59:
+ entityID: 32
+ entityInstance: 60
+ 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
+
+82:
+ /system/chassis/motherboard/dimm60:
+ entityID: 32
+ entityInstance: 61
+ 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
+
+83:
+ /system/chassis/motherboard/dimm61:
+ entityID: 32
+ entityInstance: 62
+ 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
+
+84:
+ /system/chassis/motherboard/dimm62:
+ entityID: 32
+ entityInstance: 63
+ 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
+
+85:
+ /system/chassis/motherboard/dimm63:
+ entityID: 32
+ entityInstance: 64
+ 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
+
+86:
+ /system/chassis/motherboard/dimm72:
+ entityID: 32
+ entityInstance: 65
+ 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
+
+87:
+ /system/chassis/motherboard/dimm73:
+ entityID: 32
+ entityInstance: 66
+ 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
+
+88:
+ /system/chassis/motherboard/dimm74:
+ entityID: 32
+ entityInstance: 67
+ 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
+
+89:
+ /system/chassis/motherboard/dimm75:
+ entityID: 32
+ entityInstance: 68
+ 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
+
+90:
+ /system/chassis/motherboard/dimm76:
+ entityID: 32
+ entityInstance: 69
+ 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
+
+91:
+ /system/chassis/motherboard/dimm77:
+ entityID: 32
+ entityInstance: 70
+ 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
+
+92:
+ /system/chassis/motherboard/dimm78:
+ entityID: 32
+ entityInstance: 71
+ 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
+
+93:
+ /system/chassis/motherboard/dimm79:
+ entityID: 32
+ entityInstance: 72
+ 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
+
+94:
+ /system/chassis/motherboard/dimm64:
+ entityID: 32
+ entityInstance: 73
+ 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
+
+95:
+ /system/chassis/motherboard/dimm65:
+ entityID: 32
+ entityInstance: 74
+ 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
+
+96:
+ /system/chassis/motherboard/dimm66:
+ entityID: 32
+ entityInstance: 75
+ 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
+
+97:
+ /system/chassis/motherboard/dimm67:
+ entityID: 32
+ entityInstance: 76
+ 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
+
+98:
+ /system/chassis/motherboard/dimm68:
+ entityID: 32
+ entityInstance: 77
+ 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
+
+99:
+ /system/chassis/motherboard/dimm69:
+ entityID: 32
+ entityInstance: 78
+ 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
+
+100:
+ /system/chassis/motherboard/dimm70:
+ entityID: 32
+ entityInstance: 79
+ 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
+
+101:
+ /system/chassis/motherboard/dimm71:
+ entityID: 32
+ entityInstance: 80
+ 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
+
+102:
+ /system/chassis/motherboard/dimm80:
+ entityID: 32
+ entityInstance: 81
+ 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
+
+103:
+ /system/chassis/motherboard/dimm81:
+ entityID: 32
+ entityInstance: 82
+ 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
+
+104:
+ /system/chassis/motherboard/dimm82:
+ entityID: 32
+ entityInstance: 83
+ 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
+
+105:
+ /system/chassis/motherboard/dimm83:
+ entityID: 32
+ entityInstance: 84
+ 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
+
+106:
+ /system/chassis/motherboard/dimm84:
+ entityID: 32
+ entityInstance: 85
+ 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
+
+107:
+ /system/chassis/motherboard/dimm85:
+ entityID: 32
+ entityInstance: 86
+ 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
+
+108:
+ /system/chassis/motherboard/dimm86:
+ entityID: 32
+ entityInstance: 87
+ 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
+
+109:
+ /system/chassis/motherboard/dimm87:
+ entityID: 32
+ entityInstance: 88
+ 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
+
+110:
+ /system/chassis/motherboard/dimm88:
+ entityID: 32
+ entityInstance: 89
+ 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
+
+111:
+ /system/chassis/motherboard/dimm89:
+ entityID: 32
+ entityInstance: 90
+ 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
+
+112:
+ /system/chassis/motherboard/dimm90:
+ entityID: 32
+ entityInstance: 91
+ 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
+
+113:
+ /system/chassis/motherboard/dimm91:
+ entityID: 32
+ entityInstance: 92
+ 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
+
+114:
+ /system/chassis/motherboard/dimm92:
+ entityID: 32
+ entityInstance: 93
+ 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
+
+115:
+ /system/chassis/motherboard/dimm93:
+ entityID: 32
+ entityInstance: 94
+ 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
+
+116:
+ /system/chassis/motherboard/dimm94:
+ entityID: 32
+ entityInstance: 95
+ 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
+
+117:
+ /system/chassis/motherboard/dimm95:
+ entityID: 32
+ entityInstance: 96
+ 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
+
+118:
+ /system/chassis/motherboard/dimm104:
+ entityID: 32
+ entityInstance: 97
+ 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
+
+119:
+ /system/chassis/motherboard/dimm105:
+ entityID: 32
+ entityInstance: 98
+ 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
+
+120:
+ /system/chassis/motherboard/dimm106:
+ entityID: 32
+ entityInstance: 99
+ 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
+
+121:
+ /system/chassis/motherboard/dimm107:
+ entityID: 32
+ entityInstance: 100
+ 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
+
+122:
+ /system/chassis/motherboard/dimm108:
+ entityID: 32
+ entityInstance: 101
+ 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
+
+123:
+ /system/chassis/motherboard/dimm109:
+ entityID: 32
+ entityInstance: 102
+ 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
+
+124:
+ /system/chassis/motherboard/dimm110:
+ entityID: 32
+ entityInstance: 103
+ 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
+
+125:
+ /system/chassis/motherboard/dimm111:
+ entityID: 32
+ entityInstance: 104
+ 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
+
+126:
+ /system/chassis/motherboard/dimm96:
+ entityID: 32
+ entityInstance: 105
+ 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
+
+127:
+ /system/chassis/motherboard/dimm97:
+ entityID: 32
+ entityInstance: 106
+ 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
+
+128:
+ /system/chassis/motherboard/dimm98:
+ entityID: 32
+ entityInstance: 107
+ 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
+
+129:
+ /system/chassis/motherboard/dimm99:
+ entityID: 32
+ entityInstance: 108
+ 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
+
+130:
+ /system/chassis/motherboard/dimm100:
+ entityID: 32
+ entityInstance: 109
+ 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
+
+131:
+ /system/chassis/motherboard/dimm101:
+ entityID: 32
+ entityInstance: 110
+ 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
+
+132:
+ /system/chassis/motherboard/dimm102:
+ entityID: 32
+ entityInstance: 111
+ 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
+
+133:
+ /system/chassis/motherboard/dimm103:
+ entityID: 32
+ entityInstance: 112
+ 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
+
+134:
+ /system/chassis/motherboard/dimm112:
+ entityID: 32
+ entityInstance: 113
+ 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
+
+135:
+ /system/chassis/motherboard/dimm113:
+ entityID: 32
+ entityInstance: 114
+ 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
+
+136:
+ /system/chassis/motherboard/dimm114:
+ entityID: 32
+ entityInstance: 115
+ 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
+
+137:
+ /system/chassis/motherboard/dimm115:
+ entityID: 32
+ entityInstance: 116
+ 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
+
+138:
+ /system/chassis/motherboard/dimm116:
+ entityID: 32
+ entityInstance: 117
+ 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
+
+139:
+ /system/chassis/motherboard/dimm117:
+ entityID: 32
+ entityInstance: 118
+ 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
+
+140:
+ /system/chassis/motherboard/dimm118:
+ entityID: 32
+ entityInstance: 119
+ 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
+
+141:
+ /system/chassis/motherboard/dimm119:
+ entityID: 32
+ entityInstance: 120
+ 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
+
+142:
+ /system/chassis/motherboard/dimm120:
+ entityID: 32
+ entityInstance: 121
+ 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
+
+143:
+ /system/chassis/motherboard/dimm121:
+ entityID: 32
+ entityInstance: 122
+ 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
+
+144:
+ /system/chassis/motherboard/dimm122:
+ entityID: 32
+ entityInstance: 123
+ 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
+
+145:
+ /system/chassis/motherboard/dimm123:
+ entityID: 32
+ entityInstance: 124
+ 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
+
+146:
+ /system/chassis/motherboard/dimm124:
+ entityID: 32
+ entityInstance: 125
+ 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
+
+147:
+ /system/chassis/motherboard/dimm125:
+ entityID: 32
+ entityInstance: 126
+ 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
+
+148:
+ /system/chassis/motherboard/dimm126:
+ entityID: 32
+ entityInstance: 127
+ 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
+
+149:
+ /system/chassis/motherboard/dimm127:
+ entityID: 32
+ entityInstance: 128
+ 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
+
+150:
+ /system/chassis/motherboard/powersupply0:
+ entityID: 19
+ entityInstance: 0
+ 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
+ /system/chassis/motherboard/powersupply0/info:
+ entityID: 19
+ entityInstance: 0
+ interfaces:
+ xyz.openbmc_project.Inventory.MultiRecord.PowerSupply:
+ Data:
+ IPMIFruProperty: PowerSupply
+ IPMIFruSection: MultiRecord
+ /system/chassis/motherboard/powersupply0/dc_output:
+ entityID: 19
+ entityInstance: 0
+ interfaces:
+ xyz.openbmc_project.Inventory.MultiRecord.DcOutput:
+ Data:
+ IPMIFruProperty: DcOutput
+ IPMIFruSection: MultiRecord
+
+151:
+ /system/chassis/motherboard/powersupply1:
+ entityID: 19
+ 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
+ /system/chassis/motherboard/powersupply1/info:
+ entityID: 19
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.MultiRecord.PowerSupply:
+ Data:
+ IPMIFruProperty: PowerSupply
+ IPMIFruSection: MultiRecord
+ /system/chassis/motherboard/powersupply1/dc_output:
+ entityID: 19
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.MultiRecord.DcOutput:
+ Data:
+ IPMIFruProperty: DcOutput
+ IPMIFruSection: MultiRecord
+
+152:
+ /system/chassis/motherboard/fan0:
+ entityID: 29
+ entityInstance: 0
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+
+153:
+ /system/chassis/motherboard/fan1:
+ entityID: 29
+ entityInstance: 1
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+
+154:
+ /system/chassis/motherboard/fan2:
+ entityID: 29
+ entityInstance: 2
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+
+155:
+ /system/chassis/motherboard/fan3:
+ entityID: 29
+ entityInstance: 3
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+
+156:
+ /system/chassis/motherboard/fan4:
+ entityID: 29
+ entityInstance: 4
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Asset:
+ Manufacturer:
+ IPMIFruProperty: Manufacturer
+ IPMIFruSection: Product
+ PartNumber:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+ Model:
+ IPMIFruProperty: Model Number
+ IPMIFruSection: Product
+
+254:
+ /system/chassis/motherboard/opfw:
+ entityID: 34
+ entityInstance: 0
+ interfaces:
+ xyz.openbmc_project.Inventory.Item:
+ PrettyName:
+ IPMIFruProperty: Name
+ IPMIFruSection: Product
+ xyz.openbmc_project.Inventory.Decorator.Revision:
+ Version:
+ IPMIFruProperty: Version
+ IPMIFruSection: Product
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb b/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb
new file mode 100644
index 000000000..51a2f0b07
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Phosphor LED Group Management for Vesnin"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+inherit obmc-phosphor-utils
+
+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-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml b/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml
new file mode 100644
index 000000000..3330e25ea
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/leds/vesnin-led-manager-config/led.yaml
@@ -0,0 +1,40 @@
+BmcBooted:
+ heartbeat:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ alarm_yel:
+ Action: 'On'
+ Priority: 'Blink'
+PowerOn:
+PgoodTimeout:
+ power_red:
+ Action: 'On'
+ Priority: 'On'
+HostQuiesced:
+ alarm_red:
+ Action: 'On'
+ Priority: 'Blink'
+Overheat:
+ alarm_red:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ Priority: 'Blink'
+PsuSmbalert:
+ alarm_yel:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 1000
+ Priority: 'Blink'
+EnclosureIdentify:
+ id_blue:
+ Action: 'Blink'
+ Priority: 'On'
+FruFault:
+ alarm_yel:
+ Action: 'Blink'
+ DutyOn: 50
+ Period: 200
+ Priority: 'Blink'
+
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/mboxd/mboxd_%.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/mboxd/mboxd_%.bbappend
new file mode 100644
index 000000000..8b6248a46
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/mboxd/mboxd_%.bbappend
@@ -0,0 +1 @@
+MBOXD_FLASH_SIZE = "64M"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/network/first-boot-set-mac_%.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/network/first-boot-set-mac_%.bbappend
new file mode 100644
index 000000000..29d23c8c4
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/network/first-boot-set-mac_%.bbappend
@@ -0,0 +1 @@
+SYSTEMD_SERVICE_${PN} += "first-boot-set-mac@eth0.service"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/occ/files/occ_sensor.yaml b/meta-yadro/meta-vesnin/recipes-phosphor/occ/files/occ_sensor.yaml
new file mode 100644
index 000000000..97fd3f76c
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/occ/files/occ_sensor.yaml
@@ -0,0 +1,12 @@
+- Instance: 0
+ SensorID: 0x08
+ SensorName: occ0
+- Instance: 1
+ SensorID: 0x09
+ SensorName: occ1
+- Instance: 6
+ SensorID: 0x06
+ SensorName: occ2
+- Instance: 7
+ SensorID: 0x07
+ SensorName: occ3
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/occ/openpower-occ-control_%.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/occ/openpower-occ-control_%.bbappend
new file mode 100644
index 000000000..6a7aa8c5e
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/occ/openpower-occ-control_%.bbappend
@@ -0,0 +1 @@
+EXTRA_OECONF_append = " --enable-i2c-occ"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb b/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb
new file mode 100644
index 000000000..2db6c3661
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/occ/vesnin-openpower-occ-control-config-native.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Vesnin OCC Control sensor IDs"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${YADROBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+inherit openpower-occ-control
+
+PROVIDES += "virtual/openpower-occ-control-config-native"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI += "file://occ_sensor.yaml"
+
+S = "${WORKDIR}"
+do_install() {
+ install -d ${YAML_DEST}/
+ install ${S}/occ_sensor.yaml ${YAML_DEST}/
+}
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 000000000..e5b837abc
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1 @@
+RDEPENDS_${PN}-inventory += "openpower-occ-control"
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json
new file mode 100644
index 000000000..75b0480bd
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf/gpio_defs.json
@@ -0,0 +1,131 @@
+{
+ "gpio_configs": {
+ "power_config": {
+ "power_good_in": "SYS_PWROK_BUFF",
+ "power_up_outs": [
+ {"name": "BMC_POWER_UP", "polarity": false}
+ ],
+ "reset_outs": [
+ {"name": "CM1_OE_R_N", "polarity": true},
+ {"name": "BMC_CP0_RESET_N", "polarity": false}
+ ],
+ "pci_reset_outs": [
+ {"name": "PEX8718_DEVICES_RESET_N", "polarity": false, "hold": true}
+ ]
+ }
+ },
+
+ "gpio_definitions": [
+ {
+ "name": "BMC_POWER_UP",
+ "pin": "E1",
+ "direction": "out"
+ },
+ {
+ "name": "SYS_PWROK_BUFF",
+ "pin": "E6",
+ "direction": "in"
+ },
+ {
+ "name": "BMC_WD_CLEAR_PULSE_N",
+ "pin": "N4",
+ "direction": "out"
+ },
+ {
+ "name": "CM1_OE_R_N",
+ "pin": "Q6",
+ "direction": "out"
+ },
+ {
+ "name": "BMC_CP0_RESET_N",
+ "pin": "O2",
+ "direction": "out"
+ },
+ {
+ "name": "PSU_PG",
+ "pin": "J2",
+ "direction": "in"
+ },
+ {
+ "name": "PEX8718_DEVICES_RESET_N",
+ "pin": "B6",
+ "direction": "out"
+ },
+ {
+ "name": "CP0_DEVICES_RESET_N",
+ "pin": "N3",
+ "direction": "in"
+ },
+ {
+ "name": "CP1_DEVICES_RESET_N",
+ "pin": "N5",
+ "direction": "in"
+ },
+ {
+ "name": "CP2_DEVICES_RESET_N",
+ "pin": "P0",
+ "direction": "in"
+ },
+
+ {
+ "name": "CP3_DEVICES_RESET_N",
+ "pin": "P1",
+ "direction": "in"
+ },
+ {
+ "name": "IDBTN",
+ "pin": "Q7",
+ "direction": "out"
+ },
+ {
+ "name": "POWER_BUTTON",
+ "pin": "E0",
+ "direction": "both"
+ },
+ {
+ "name": "RESET_BUTTON",
+ "pin": "E2",
+ "direction": "both"
+ },
+ {
+ "name": "CHECKSTOP",
+ "pin": "P5",
+ "direction": "falling"
+ },
+ {
+ "name": "PS0_PRES_N",
+ "pin": "P7",
+ "direction": "in"
+ },
+ {
+ "name": "PS1_PRES_N",
+ "pin": "N0",
+ "direction": "in"
+ },
+ {
+ "name": "FSI_DATA",
+ "pin": "A5",
+ "direction": "out"
+ },
+ {
+ "name": "FSI_CLK",
+ "pin": "A4",
+ "direction": "out"
+ },
+ {
+ "name": "FSI_ENABLE",
+ "pin": "E5",
+ "direction": "out"
+ },
+ {
+ "name": "CRONUS_SEL",
+ "pin": "A6",
+ "direction": "out"
+ },
+ {
+ "name": "CP0_FSI0_DATA_EN",
+ "pin": "H6",
+ "direction": "out"
+ }
+ ]
+}
diff --git a/meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend
index 72d991c7e..72d991c7e 100644
--- a/meta-inspur/meta-on5263m5/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-libobmc-intf_%.bbappend
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host/0001-Replace-ColdFire-FSI-with-plain-FSI-over-GPIO.patch b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host/0001-Replace-ColdFire-FSI-with-plain-FSI-over-GPIO.patch
new file mode 100644
index 000000000..33b1bb32f
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host/0001-Replace-ColdFire-FSI-with-plain-FSI-over-GPIO.patch
@@ -0,0 +1,358 @@
+From b6b1cda6a526bad8c7f50aa4427bedbc6e539a4d Mon Sep 17 00:00:00 2001
+From: Artem Senichev <a.senichev@yadro.com>
+Date: Fri, 23 Nov 2018 10:31:59 +0300
+Subject: [PATCH] Replace ColdFire FSI with plain FSI-over-GPIO
+
+Workaround to fix ColdFire FSI performance issue:
+https://github.com/openbmc/openbmc/issues/3433
+Current implementation based on an old version of skeleton
+(revision 517b35ed92ad2c0df5e048711c175bacb632f6d0), mostly it's
+a copy-paste of op-hostctl module.
+
+Signed-off-by: Artem Senichev <a.senichev@yadro.com>
+Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
+---
+ control_host_obj.c | 259 ++++++++++++++++++++--------------
+ 1 file changed, 152 insertions(+), 107 deletions(-)
+
+diff --git a/control_host_obj.c b/control_host_obj.c
+index 27f7fc7..ca45182 100644
+--- a/control_host_obj.c
++++ b/control_host_obj.c
+@@ -5,10 +5,10 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+-#include <errno.h>
+-
+ #include <openbmc_intf.h>
+ #include <openbmc.h>
++#include <gpio.h>
++#include <gpio_configs.h>
+
+ /* ------------------------------------------------------------------------- */
+ static const gchar* dbus_object_path = "/org/openbmc/control";
+@@ -17,36 +17,31 @@ static const gchar* dbus_name = "org.openbmc.control.Host";
+
+ static GDBusObjectManagerServer *manager = NULL;
+
+-#define PPC_BIT32(bit) (0x80000000UL >> (bit))
+-
+-#define FSI_EXTERNAL_MODE_PATH "/sys/devices/platform/gpio-fsi/external_mode"
+-#define FSI_SCAN_PATH "/sys/devices/platform/gpio-fsi/fsi0/rescan"
+-
+-/* TODO: Change this over to the cfam path once the cfam chardev patches have landed */
+-#define FSI_RAW_PATH "/sys/devices/platform/gpio-fsi/fsi0/slave@00:00/raw"
+-
+-#define FSI_SCAN_DELAY_US 10000
++static GPIO* fsi_data;
++static GPIO* fsi_clk;
++static GPIO* fsi_enable;
++static GPIO* cronus_sel;
++static size_t num_optionals;
++static GPIO* optionals;
++static gboolean* optional_pols;
+
+-/* Attention registers */
+-#define FSI_A_SI1S 0x081c
+-#define TRUE_MASK 0x100d
+-#define INTERRUPT_STATUS_REG 0x100b
++/* Bit bang patterns */
+
+-/* SBE boot register and values */
+-#define SBE_VITAL 0x281c
+-#define SBE_WARMSTART PPC_BIT32(0)
+-#define SBE_HW_TRIGGER PPC_BIT32(2)
+-#define SBE_UPDATE_1ST_NIBBLE PPC_BIT32(3)
+-#define SBE_IMAGE_SELECT PPC_BIT32(8)
+-#define SBE_UPDATE_3RD_NIBBLE PPC_BIT32(11)
++//putcfam pu 281c 30000000 -p0 (Primary Side Select)
++static const char* primary = "000011111111110101111000111001100111111111111111111111111111101111111111";
++//putcfam pu 281c B0000000 -p0
++static const char* go = "000011111111110101111000111000100111111111111111111111111111101101111111";
++//putcfam pu 0x281c 30900000 (Golden Side Select)
++static const char* golden = "000011111111110101111000111001100111101101111111111111111111101001111111";
+
+-/* Once the side is selected and attention bits are set, this starts the SBE */
+-#define START_SBE (SBE_WARMSTART | SBE_HW_TRIGGER | SBE_UPDATE_1ST_NIBBLE)
++/* Setup attentions */
++//putcfam pu 0x081C 20000000
++static const char* attnA = "000011111111111101111110001001101111111111111111111111111111110001111111";
++//putcfam pu 0x100D 40000000
++static const char* attnB = "000011111111111011111100101001011111111111111111111111111111110001111111";
++//putcfam pu 0x100B FFFFFFFF
++static const char* attnC = "000011111111111011111101001000000000000000000000000000000000001011111111";
+
+-/* Primary is first side. Golden is second side */
+-#define PRIMARY_SIDE (SBE_HW_TRIGGER | SBE_UPDATE_1ST_NIBBLE)
+-#define GOLDEN_SIDE (SBE_HW_TRIGGER | SBE_UPDATE_1ST_NIBBLE | \
+- SBE_IMAGE_SELECT | SBE_UPDATE_3RD_NIBBLE)
+
+ static gboolean
+ on_init(Control *control,
+@@ -57,126 +52,147 @@ on_init(Control *control,
+ return TRUE;
+ }
+
+-static gint
+-fsi_putcfam(int fd, uint64_t addr64, uint32_t val_host)
++int gpio_clock_cycle(GPIO* gpio, int num_clks)
+ {
+- int rc;
+- uint32_t val = htobe32(val_host);
+- /* Map FSI to FSI_BYTE, as the 'raw' kernel interface expects this */
+- uint32_t addr = (addr64 & 0x7ffc00) | ((addr64 & 0x3ff) << 2);
+-
+- rc = lseek(fd, addr, SEEK_SET);
+- if (rc < 0) {
+- g_print("ERROR HostControl: cfam seek failed (0x%08x): %s\n", addr,
+- strerror(errno));
+- return errno;
+- };
+-
+- rc = write(fd, &val, sizeof(val));
+- if (rc < 0) {
+- g_print("ERROR HostControl: cfam write failed: %s\n",
+- strerror(errno));
+- return errno;
+- }
+-
+- return 0;
++ g_assert(gpio != NULL);
++ int i = 0;
++ int r = GPIO_OK;
++ for (i = 0; i < num_clks; i++)
++ {
++ if (gpio_write(gpio, 0) == -1)
++ {
++ r = GPIO_WRITE_ERROR;
++ break;
++ }
++ if (gpio_write(gpio, 1) == -1)
++ {
++ r = GPIO_WRITE_ERROR;
++ break;
++ }
++ }
++
++ return r;
+ }
+
+-static int fsi_rescan(void)
++int
++fsi_bitbang(const char* pattern)
+ {
+- char *one = "1";
+- int fd, rc;
+-
+- fd = open(FSI_SCAN_PATH, O_WRONLY);
+- if (fd < 0) {
+- g_print("ERROR HostControl: Failed to open path '%s': %s\n",
+- FSI_SCAN_PATH, strerror(errno));
+- return errno;
+- }
+- rc = write(fd, one, sizeof(one));
+- close(fd);
+- if (rc < 0) {
+- g_print("ERROR HostControl: Failed to perform FSI scan: %s\n",
+- strerror(errno));
+- return errno;
++ int rc=GPIO_OK;
++ int i;
++ for(i=0;i<strlen(pattern);i++) {
++ rc = gpio_write(fsi_data,pattern[i] - '0');
++ if(rc!=GPIO_OK) { break; }
++ rc = gpio_clock_cycle(fsi_clk,1);
++ if(rc!=GPIO_OK) { break; }
+ }
+- g_print("HostControl: Performing FSI scan (delay %d us)\n",
+- FSI_SCAN_DELAY_US);
+- usleep(FSI_SCAN_DELAY_US);
++ return rc;
++}
+
+- return 0;
++int
++fsi_standby()
++{
++ int rc=GPIO_OK;
++ rc = gpio_write(fsi_data,1);
++ if(rc!=GPIO_OK) { return rc; }
++ rc = gpio_clock_cycle(fsi_clk,5000);
++ if(rc!=GPIO_OK) { return rc; }
++ return rc;
+ }
+
++
+ static gboolean
+ on_boot(ControlHost *host,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+ {
+- int rc, cfam_fd;
++ int rc = GPIO_OK;
+ GDBusProxy *proxy;
+ GError *error = NULL;
+ GDBusConnection *connection =
+ g_dbus_object_manager_server_get_connection(manager);
+
++ if (!(fsi_data && fsi_clk && fsi_enable && cronus_sel)) {
++ g_print("ERROR invalid GPIO configuration, will not boot\n");
++ return FALSE;
++ }
+ if(control_host_get_debug_mode(host)==1) {
+- int fd;
+- char *one = "1";
+ g_print("Enabling debug mode; not booting host\n");
+- fd = open(FSI_EXTERNAL_MODE_PATH, O_RDWR);
+- if (fd < 0) {
+- g_print("ERROR HostControl: Failed to open path '%s'\n",
+- FSI_EXTERNAL_MODE_PATH);
+- return TRUE;
++ rc |= gpio_open(fsi_enable, 1);
++ rc |= gpio_open(cronus_sel, 0);
++ if(rc!=GPIO_OK) {
++ g_print("ERROR enabling debug mode: %d\n",rc);
+ }
+- rc = write(fd, one, sizeof(one));
+- if (rc < 0) {
+- g_print("ERROR HostControl: Failed to enable debug mode '%s'\n",
+- FSI_EXTERNAL_MODE_PATH);
+- }
+- close(fd);
+ return TRUE;
+ }
+ g_print("Booting host\n");
+-
+- rc = fsi_rescan();
+- if (rc < 0)
+- return FALSE;
+-
+- cfam_fd = open(FSI_RAW_PATH, O_RDWR);
+- if (cfam_fd < 0) {
+- g_print("ERROR HostControl: Failed to open '%s'\n", FSI_RAW_PATH);
+- return FALSE;
+- }
+-
+ Control* control = object_get_control((Object*)user_data);
+ control_host_complete_boot(host,invocation);
+ do {
+- rc = fsi_putcfam(cfam_fd, FSI_A_SI1S, 0x20000000);
+- rc |= fsi_putcfam(cfam_fd, TRUE_MASK, 0x40000000);
+- rc |= fsi_putcfam(cfam_fd, INTERRUPT_STATUS_REG, 0xFFFFFFFF);
+- if(rc) { break; }
++ rc = gpio_open(fsi_clk, 1);
++ rc |= gpio_open(fsi_data, 0);
++ rc |= gpio_open(fsi_enable, 1);
++ rc |= gpio_open(cronus_sel, 1);
++ for (size_t i = 0; i < num_optionals; ++i) {
++ rc |= gpio_open(&optionals[i], optional_pols[i]);
++ }
++ if(rc!=GPIO_OK) { break; }
++
++ //data standy state
++ rc = fsi_standby();
++
++ //clear out pipes
++ rc |= gpio_write(fsi_data,0);
++ rc |= gpio_clock_cycle(fsi_clk,256);
++ rc |= gpio_write(fsi_data,1);
++ rc |= gpio_clock_cycle(fsi_clk,50);
++ if(rc!=GPIO_OK) { break; }
++
++ rc = fsi_bitbang(attnA);
++ rc |= fsi_standby();
++
++ rc |= fsi_bitbang(attnB);
++ rc |= fsi_standby();
++
++ rc |= fsi_bitbang(attnC);
++ rc |= fsi_standby();
++ if(rc!=GPIO_OK) { break; }
+
+ const gchar* flash_side = control_host_get_flash_side(host);
+ g_print("Using %s side of the bios flash\n",flash_side);
+ if(strcmp(flash_side,"primary")==0) {
+- rc |= fsi_putcfam(cfam_fd, SBE_VITAL, PRIMARY_SIDE);
++ rc |= fsi_bitbang(primary);
+ } else if(strcmp(flash_side,"golden") == 0) {
+- rc |= fsi_putcfam(cfam_fd, SBE_VITAL, GOLDEN_SIDE);
++ rc |= fsi_bitbang(golden);
+ } else {
+ g_print("ERROR: Invalid flash side: %s\n",flash_side);
+ rc = 0xff;
+
+ }
+- if(rc) { break; }
++ rc |= fsi_standby();
++ if(rc!=GPIO_OK) { break; }
++
++ rc = fsi_bitbang(go);
++
++ rc |= gpio_write(fsi_data,1); /* Data standby state */
++ rc |= gpio_clock_cycle(fsi_clk,2);
++
++ rc |= gpio_write(fsi_clk,0); /* hold clk low for clock mux */
++ rc |= gpio_write(fsi_enable,0);
++ rc |= gpio_clock_cycle(fsi_clk,16);
++ rc |= gpio_write(fsi_clk,0); /* Data standby state */
+
+- rc = fsi_putcfam(cfam_fd, SBE_VITAL, START_SBE);
+ } while(0);
+- if(rc)
++ if(rc != GPIO_OK)
+ {
+- g_print("ERROR HostControl: SBE sequence failed (rc=%d)\n",rc);
++ g_print("ERROR HostControl: GPIO sequence failed (rc=%d)\n",rc);
++ }
++ gpio_close(fsi_clk);
++ gpio_close(fsi_data);
++ gpio_close(fsi_enable);
++ gpio_close(cronus_sel);
++ for (size_t i = 0; i < num_optionals; ++i) {
++ gpio_close(&optionals[i]);
+ }
+- /* Close file descriptor */
+- close(cfam_fd);
+
+ control_host_emit_booted(host);
+
+@@ -222,6 +238,35 @@ on_bus_acquired(GDBusConnection *connection,
+ g_dbus_object_manager_server_set_connection(manager, connection);
+ g_dbus_object_manager_server_export(manager, G_DBUS_OBJECT_SKELETON(object));
+ g_object_unref(object);
++
++ // We don't free allocated memory as the service is a singleton,
++ // this function can be called only once and these GPIO objects
++ // have a process lifetime.
++ fsi_data = malloc(sizeof(GPIO));
++ fsi_data->name = g_strdup("FSI_DATA"); // GPIO struct has non-const char pointer
++ fsi_clk = malloc(sizeof(GPIO));
++ fsi_clk->name = g_strdup("FSI_CLK");
++ fsi_enable = malloc(sizeof(GPIO));
++ fsi_enable->name = g_strdup("FSI_ENABLE");
++ cronus_sel = malloc(sizeof(GPIO));
++ cronus_sel->name = g_strdup("CRONUS_SEL");
++
++ // WARNING: This portion of the hardcode is usable only with VESNIN.
++ // For the upstream, it should be rewritten for reading this data from the
++ // JSON file.
++ num_optionals = 1;
++ optionals = malloc(sizeof(GPIO));
++ optionals->name = g_strdup("CP0_FSI0_DATA_EN");
++ optional_pols = malloc(sizeof(gboolean));
++ optional_pols[0] = TRUE;
++
++ gpio_get_params(fsi_data);
++ gpio_get_params(fsi_clk);
++ gpio_get_params(fsi_enable);
++ gpio_get_params(cronus_sel);
++ for (int i = 0; i < num_optionals; ++i) {
++ gpio_get_params(&optionals[i]);
++ }
+ }
+
+ static void
+--
+2.20.1
+
diff --git a/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host_%.bbappend b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host_%.bbappend
new file mode 100644
index 000000000..068edeac8
--- /dev/null
+++ b/meta-yadro/meta-vesnin/recipes-phosphor/skeleton/obmc-op-control-host_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI += "file://0001-Replace-ColdFire-FSI-with-plain-FSI-over-GPIO.patch"
diff --git a/setup b/setup
index a1b3cc182..fb06ba629 100755
--- a/setup
+++ b/setup
@@ -24,24 +24,28 @@ fi
machine() {
local target=$1
local build_dir=$2
- local mfg mach realmach
- for mfg in meta-*; do
- for mach in $mfg/meta-*; do
- if [ -d "$mach" -a -d "$mach/conf/machine" ]; then
- realmach=${mach##*meta-}
- # If a target is specified, then check for a match,
- # otherwise just list what we've discovered
- if [ -n "$target" ]; then
- if [ "$realmach" = "$target" ]; then
- echo Machine $target is $mach
- TEMPLATECONF="$mach/conf" source oe-init-build-env $build_dir
- return
- fi
- else
- echo "$realmach"
+ local cfg name tmpl
+ for cfg in meta-*/meta-*/conf/machine/*.conf; do
+ name=${cfg##*/}
+ name=${name%.conf}
+ tmpl=${cfg%/machine/*.conf}
+ # If a target is specified, then check for a match,
+ # otherwise just list what we've discovered
+ if [ -n "$target" ]; then
+ if [ "${name}" = "${target}" ]; then
+ echo "Machine ${target} found in ${tmpl%/conf}"
+ TEMPLATECONF="${tmpl}" source \
+ oe-init-build-env ${build_dir}
+
+ if [ "$(cat conf/templateconf.cfg)" = "${tmpl}" ]; then
+ sed "s/^\(MACHINE\s*[?:]*\s*=\s*\).*$/\1\"${target}\"/" \
+ -i conf/local.conf
fi
+ return
fi
- done
+ else
+ echo "${name}"
+ fi
done
[ -n "$target" ] && echo "No such machine!"