phosphor-ipmi-host: Move configuration to phosphor-ipmi-config

Witherspoon requires an dev_id.json file whose content is partially
derived from data provided by the os-release package. os-release is
updated for each commit, as some of its content (VERSION and
VERSION_ID) can be derived from `git describe`. As dev_id.json was
provided by the phosphor-ipmi-host package, every commit transitively
triggered a rebuild of phosphor-ipmi-host in order to satisfy
Witherspoon's requirements.

Always rebuilding phosphor-ipmi-host is unhelpful for several reasons:

* It needlessly reduces CI throughput, as it is likely the commits in
  question do not modify the phosphor-ipmi-host package.
* GCC suffers from what appears to be an unfixable[1] bug[2] that causes
  phoshor-ipmi-host to consume large (>5GiB) amounts of RAM when
  compiling some (at least Witherspoon) sensor configurations.

To avoid this, separate the configuration files out into
virtual/phosphor-ipmi-config and phosphor-ipmi-config packages that
phosphor-ipmi-host RDEPENDS on. Witherspoon provides an alternative
implementation in witherspoon-ipmi-config to mangle dev_id.json to its
particular requirements.

A virtual is used rather than a simple bbappends for Witherspoon, as the
bbappend approach breaks builds of machines other than Witherspoon if
Witherspoon is built first: The Witherspoon-specific dev_id.json file is
deployed in its mangled form into e.g. a Zaius image. Specifically, the
following sequence will trigger the issue:

    $ TEMPLATECONF=.../witherspoon.conf . openbmc-env
    $ bitbake obmc-phosphor-image
    $ rm -rf conf
    $ TEMPLATECONF=.../zaius.conf . openbmc-env
    $ bitbake obmc-phosphor-image

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80290#c26
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80290

Change-Id: Ib9629fc77b29e2deeab3f1c3a145d9e966c14ec4
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
diff --git a/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json
new file mode 100644
index 0000000..0f13b1e
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/cipher_list.json
@@ -0,0 +1,38 @@
+{
+    "a":{
+        "cipher":1,
+        "authentication":1,
+        "integrity":0,
+        "confidentiality":0
+    },
+    "b":{
+        "cipher":2,
+        "authentication":1,
+        "integrity":1,
+        "confidentiality":0
+    },
+    "c":{
+        "cipher":3,
+        "authentication":1,
+        "integrity":1,
+        "confidentiality":1
+    },
+    "d":{
+        "cipher":15,
+        "authentication":3,
+        "integrity":0,
+        "confidentiality":0
+    },
+    "e":{
+        "cipher":16,
+        "authentication":3,
+        "integrity":4,
+        "confidentiality":0
+    },
+    "f":{
+        "cipher":17,
+        "authentication":3,
+        "integrity":4,
+        "confidentiality":1
+    }
+}
diff --git a/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json
new file mode 100644
index 0000000..2d88320
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_cap.json
@@ -0,0 +1,17 @@
+{
+    "PowerManagement": 1,
+    "OOBSecondaryLan": 0,
+    "SerialTMODE": 0,
+    "InBandSystemInterfaceChannel": 1,
+    "SELAutoRollOver": 1,
+    "FlushEntireSELUponRollOver": 0,
+    "RecordLevelSELFlushUponRollOver": 0,
+    "NumberOfSELEntries": 200,
+    "TempMonitoringSamplingFreq":0,
+    "PowerMgmtDeviceSlaveAddress": 0,
+    "BMCChannelNumber": 0,
+    "DeviceRivision": 0,
+    "MandatoryPrimaryLanOOBSupport": 1,
+    "OptionalSecondaryLanOOBSupport": 255,
+    "OptionalSerialOOBMTMODECapability": 255
+}
diff --git a/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json
new file mode 100644
index 0000000..8370713
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dcmi_sensors.json
@@ -0,0 +1,58 @@
+{
+    "inlet": [
+        {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/ambient", "record_id": 254}
+    ],
+    "baseboard": [
+        {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/pcie", "record_id": 253}
+    ],
+    "cpu": [
+        {"instance": 1, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core0_temp", "record_id": 17},
+        {"instance": 2, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core1_temp", "record_id": 20},
+        {"instance": 3, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core2_temp", "record_id": 23},
+        {"instance": 4, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core3_temp", "record_id": 26},
+        {"instance": 5, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core4_temp", "record_id": 29},
+        {"instance": 6, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core5_temp", "record_id": 32},
+        {"instance": 7, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core6_temp", "record_id": 35},
+        {"instance": 8, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core7_temp", "record_id": 38},
+        {"instance": 9, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core8_temp", "record_id": 41},
+        {"instance": 10, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core9_temp", "record_id": 44},
+        {"instance": 11, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core10_temp", "record_id": 47},
+        {"instance": 12, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core11_temp", "record_id": 50},
+        {"instance": 13, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core12_temp", "record_id": 53},
+        {"instance": 14, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core13_temp", "record_id": 56},
+        {"instance": 15, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core14_temp", "record_id": 59},
+        {"instance": 16, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core15_temp", "record_id": 62},
+        {"instance": 17, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core16_temp", "record_id": 65},
+        {"instance": 18, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core17_temp", "record_id": 68},
+        {"instance": 19, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core18_temp", "record_id": 71},
+        {"instance": 20, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core19_temp", "record_id": 74},
+        {"instance": 21, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core20_temp", "record_id": 77},
+        {"instance": 22, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core21_temp", "record_id": 80},
+        {"instance": 23, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core22_temp", "record_id": 83},
+        {"instance": 24, "dbus": "/xyz/openbmc_project/sensors/temperature/p0_core23_temp", "record_id": 86},
+        {"instance": 25, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core0_temp", "record_id": 91},
+        {"instance": 26, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core1_temp", "record_id": 94},
+        {"instance": 27, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core2_temp", "record_id": 97},
+        {"instance": 28, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core3_temp", "record_id": 100},
+        {"instance": 29, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core4_temp", "record_id": 103},
+        {"instance": 30, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core5_temp", "record_id": 106},
+        {"instance": 31, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core6_temp", "record_id": 109},
+        {"instance": 32, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core7_temp", "record_id": 112},
+        {"instance": 33, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core8_temp", "record_id": 115},
+        {"instance": 34, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core9_temp", "record_id": 118},
+        {"instance": 35, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core10_temp", "record_id": 121},
+        {"instance": 36, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core11_temp", "record_id": 124},
+        {"instance": 37, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core12_temp", "record_id": 127},
+        {"instance": 38, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core13_temp", "record_id": 130},
+        {"instance": 39, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core14_temp", "record_id": 133},
+        {"instance": 40, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core15_temp", "record_id": 136},
+        {"instance": 41, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core16_temp", "record_id": 139},
+        {"instance": 42, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core17_temp", "record_id": 142},
+        {"instance": 43, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core18_temp", "record_id": 145},
+        {"instance": 44, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core19_temp", "record_id": 148},
+        {"instance": 45, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core20_temp", "record_id": 151},
+        {"instance": 46, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core21_temp", "record_id": 154},
+        {"instance": 47, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core22_temp", "record_id": 157},
+        {"instance": 48, "dbus": "/xyz/openbmc_project/sensors/temperature/p1_core23_temp", "record_id": 160}
+    ]
+}
diff --git a/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json
new file mode 100644
index 0000000..6cd9a94
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/dev_id.json
@@ -0,0 +1,2 @@
+{"id": 0, "revision": 128, "addn_dev_support": 141,
+    "manuf_id": 42817, "prod_id": 16975, "aux": 0}
diff --git a/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json
new file mode 100644
index 0000000..97e8f32
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/ipmi/witherspoon-ipmi-config/power_reading.json
@@ -0,0 +1,3 @@
+{
+  "path": "/xyz/openbmc_project/sensors/power/total_power"
+}