meta-ibm: acx22: new YAML config recipe

YAML configuration files exist scattered throughout the OpenBMC tree and
how they are used is controlled with layers dependencies of virtuals and
preferred providers.

Most of the time the above scheme is very difficult to comprehend.  This
patch continues a re-thinking of that approach towards a more
centralized scheme.

Specifically this patch implements a single YAML config recipe for the
ACx22 systems.  The logic contained in the recipe was pulled from
all over the OpenBMC tree - the ability to comprehend how the different
YAML files are generated and consumed should be greatly eased.

A couple notable details:
 - Specialized tasks for doing deep YAML dictionary merges existed in
the upstream recipes (-hardcoded.yaml, -config.yaml), but it was
observed that simply concatenating the YAML files produced the same
results, so the specialized deep merge logic was not copied here and can
be deprecated upstream.
 - Unlike the upstream recipes, acx22-yaml-config is a target recipe and
as such enables MACHINE based overrides.

YAML files were copied from different locations in the tree, and run
through a styling application (pyyaml dump(load(yaml))):
  phosphor-ipmi-fru-read-bmc-inventory-native:bmc-fru-config.yaml ->
    acx22-yaml-config:acx22-ipmi-fru-bmc.yaml
  phosphor-ipmi-fru-read-not-sent-by-host-inventory-native:fru-config-not-sent-by-host.yaml ->
    acx22-yaml-config:acx22-ipmi-fru-not-sent-by-host.yaml
  phosphor-ipmi-host:occ_sensors.hardcoded.yaml ->
    acx22-yaml-config:acx22-ipmi-occ-sensors.yaml
  phosphor-ipmi-host:hwmon_sensors.hardcoded.yaml ->
    acx22-yaml-config:acx22-ipmi-hwmon-sensors.yaml
  phosphor-ipmi-host:witherspoon_hwmon_sensors.hardcoded.yaml ->
    acx22-yaml-config:ac922-ipmi-extra-hwmon-sensors.yaml
  phosphor-ipmi-sensor-inventory-mrw-config-native:config.yaml ->
    acx22-yaml-config:acx22-ipmi-sensors-mrw.yaml

Change-Id: I990146c818f3227c9b0d7e7c126e540c6f03d5b3
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml b/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml
new file mode 100644
index 0000000..0a04d93
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/configuration/acx22-yaml-config/acx22-ipmi-sensors-mrw.yaml
@@ -0,0 +1,338 @@
+boot_count_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.Boot.RebootAttempts:
+            AttemptsLeft:
+                Offsets:
+                    255:
+                        type: uint32_t
+    mutability: Mutability::Write|Mutability::Read
+    path: /xyz/openbmc_project/state/host0
+    readingType: readingAssertion
+    sensorNamePattern: nameProperty
+    serviceInterface: org.freedesktop.DBus.Properties
+cpu_func_sensor:
+    interfaces:
+        xyz.openbmc_project.Inventory.Item:
+            Present:
+                Offsets:
+                    7:
+                        assert: true
+                        deassert: false
+                        type: bool
+        xyz.openbmc_project.State.Decorator.OperationalStatus:
+            Functional:
+                Offsets:
+                    8:
+                        assert: false
+                        deassert: true
+                        type: bool
+                Prereqs:
+                    7:
+                        assert: true
+                        deassert: false
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: xyz.openbmc_project.Inventory.Manager
+cpucore_func_sensor:
+    interfaces:
+        xyz.openbmc_project.Inventory.Item:
+            Present:
+                Offsets:
+                    7:
+                        assert: true
+                        deassert: false
+                        skipOn: deassert
+                        type: bool
+        xyz.openbmc_project.State.Decorator.OperationalStatus:
+            Functional:
+                Offsets:
+                    8:
+                        assert: false
+                        deassert: true
+                        type: bool
+                Prereqs:
+                    7:
+                        assert: true
+                        deassert: false
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    readingType: assertion
+    sensorNamePattern: nameParentLeaf
+    serviceInterface: xyz.openbmc_project.Inventory.Manager
+cpucore_temp_sensor:
+    bExp: 0
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: int64_t
+    multiplierM: 1
+    mutability: Mutability::Write|Mutability::Read
+    offsetB: -127
+    rExp: 0
+    readingType: readingData
+    scale: -3
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+dimm_func_sensor:
+    interfaces:
+        xyz.openbmc_project.Inventory.Item:
+            Present:
+                Offsets:
+                    6:
+                        assert: true
+                        deassert: false
+                        type: bool
+        xyz.openbmc_project.State.Decorator.OperationalStatus:
+            Functional:
+                Offsets:
+                    4:
+                        assert: false
+                        deassert: true
+                        type: bool
+                Prereqs:
+                    6:
+                        assert: true
+                        deassert: false
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: xyz.openbmc_project.Inventory.Manager
+dimm_temp_sensor:
+    bExp: 0
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: int64_t
+    multiplierM: 1
+    mutability: Mutability::Write|Mutability::Read
+    offsetB: -127
+    rExp: 0
+    readingType: readingData
+    scale: -3
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+fw_boot_sensor:
+    interfaces:
+        xyz.openbmc_project.State.Boot.Progress:
+            BootProgress:
+                Offsets:
+                    0:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
+                        type: string
+                    1:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit
+                        type: string
+                    3:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit
+                        type: string
+                    7:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit
+                        type: string
+                    19:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart
+                        type: string
+                    20:
+                        set: xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit
+                        type: string
+    mutability: Mutability::Write|Mutability::Read
+    path: /xyz/openbmc_project/state/host0
+    readingType: eventdata2
+    sensorNamePattern: nameProperty
+    serviceInterface: org.freedesktop.DBus.Properties
+gpu_func_sensor:
+    interfaces:
+        xyz.openbmc_project.Inventory.Decorator.Replaceable:
+            FieldReplaceable:
+                Offsets:
+                    7:
+                        assert: true
+                        deassert: true
+                        type: bool
+        xyz.openbmc_project.Inventory.Item:
+            Present:
+                Offsets:
+                    7:
+                        assert: true
+                        deassert: false
+                        type: bool
+        xyz.openbmc_project.State.Decorator.OperationalStatus:
+            Functional:
+                Offsets:
+                    8:
+                        assert: false
+                        deassert: true
+                        type: bool
+                Prereqs:
+                    7:
+                        assert: true
+                        deassert: false
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: xyz.openbmc_project.Inventory.Manager
+gpu_temp_sensor:
+    bExp: 0
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: int64_t
+    multiplierM: 1
+    mutability: Mutability::Write|Mutability::Read
+    offsetB: -127
+    rExp: 0
+    readingType: readingData
+    scale: -3
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+host_auto_reboot_control_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.Boot.RebootPolicy:
+            AutoReboot:
+                Offsets:
+                    0:
+                        assert: false
+                        type: bool
+                    1:
+                        assert: true
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    path: /xyz/openbmc_project/control/host0/auto_reboot
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+memory_temp_sensor:
+    bExp: 0
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: int64_t
+    multiplierM: 1
+    mutability: Mutability::Write|Mutability::Read
+    offsetB: -127
+    rExp: 0
+    readingType: readingData
+    scale: -3
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+os_boot_sensor:
+    interfaces:
+        xyz.openbmc_project.State.OperatingSystem.Status:
+            OperatingSystemState:
+                Offsets:
+                    1:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CBoot
+                        type: string
+                    2:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.PXEBoot
+                        type: string
+                    3:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.DiagBoot
+                        type: string
+                    4:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.CDROMBoot
+                        type: string
+                    5:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.ROMBoot
+                        type: string
+                    6:
+                        assert: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete
+                        type: string
+    mutability: Mutability::Write|Mutability::Read
+    path: /xyz/openbmc_project/state/host0
+    readingType: assertion
+    sensorNamePattern: nameProperty
+    serviceInterface: org.freedesktop.DBus.Properties
+ps_derating_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.PowerSupplyAttributes:
+            DeratingFactor:
+                Offsets:
+                    255:
+                        type: uint32_t
+    mutability: Mutability::Read
+    readingType: assertion
+    sensorNamePattern: nameProperty
+    serviceInterface: org.freedesktop.DBus.Properties
+ps_redundancy_state_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.PowerSupplyRedundancy:
+            PowerSupplyRedundancyEnabled:
+                Offsets:
+                    0:
+                        assert: false
+                        type: bool
+                    1:
+                        assert: true
+                        type: bool
+    mutability: Mutability::Read
+    path: /xyz/openbmc_project/control/power_supply_redundancy
+    readingType: assertion
+    sensorNamePattern: nameProperty
+    serviceInterface: org.freedesktop.DBus.Properties
+tpm_required_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.TPM.Policy:
+            TPMEnable:
+                Offsets:
+                    0:
+                        assert: false
+                        type: bool
+                    1:
+                        assert: true
+                        type: bool
+    mutability: Mutability::Write|Mutability::Read
+    path: /xyz/openbmc_project/control/host0/TPMEnable
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+turbo_allowed_sensor:
+    interfaces:
+        xyz.openbmc_project.Control.Host.TurboAllowed:
+            TurboAllowed:
+                Offsets:
+                    0:
+                        assert: false
+                        deassert: true
+                        type: bool
+                    1:
+                        assert: true
+                        deassert: false
+                        type: bool
+    mutability: Mutability::Read
+    path: /xyz/openbmc_project/control/host0/turbo_allowed
+    readingType: assertion
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+vrm_vdd_temp_sensor:
+    bExp: 0
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: int64_t
+    multiplierM: 1
+    mutability: Mutability::Write|Mutability::Read
+    offsetB: -127
+    rExp: 0
+    readingType: readingData
+    scale: -3
+    sensorNamePattern: nameLeaf
+    serviceInterface: org.freedesktop.DBus.Properties
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC