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