meta-fii: meta-kudo: Use json expressions to select NBM chipset version

The NBM 2G and 4G chipset version is selected using expressions in
the json based on the chipset used and available in SDR.

Signed-off-by: Avenash Asai Thambi <avenash.thambi@fii-usa.com>
Change-Id: Ibd3c683fde94206254c37c3552db828a6b78e982
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.service b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.service
index 2bc76d5..0f8cefe 100644
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.service
+++ b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.service
@@ -1,5 +1,7 @@
 [Unit]
 Description=Detect CPUs to change config
+Requires=xyz.openbmc_project.adcsensor.service
+After=xyz.openbmc_project.adcsensor.service
 Before=phosphor-virtual-sensor.service
 
 [Service]
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.sh b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.sh
index 72cff4a..0cdde03 100644
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.sh
+++ b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/cpu_detect_virtual.sh
@@ -1,21 +1,14 @@
 #!/bin/bash
+#Prototype CPU detection script
 
 # Provide source directive to shellcheck.
 # shellcheck source=meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
 source /usr/libexec/kudo-fw/kudo-lib.sh
 
-CPU1_STATUS_N=$(get_gpio_ctrl "$GPIO_CPU1_STATUS_N")
+CPU1_STATUS_N=$(get_gpio_ctrl S1_STATUS_N)
 sleep 60
-sensor_name=$(busctl get-property xyz.openbmc_project.EntityManager /xyz/openbmc_project/inventory/system/chassis/NBM4G/CPU0_NBM4G_TMP_V xyz.openbmc_project.Configuration.ADC Name | awk '{print $2}')
-sensor="\"CPU0_NBM4G_TMP_V\""
-
-#4G sensor is found only in 1 CPU systems, so enough to check 4G for 1p alone
-if [[ "$sensor_name" == "$sensor" ]]; then
-    cp -f /etc/virtual-sensor/configurations/virtual_sensor_config1p4G.json /usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
-else
-    if [[ $CPU1_STATUS_N == 1 ]]; then
-        cp -f /etc/virtual-sensor/configurations/virtual_sensor_config1p2G.json /usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
-    else
-        cp -f /etc/virtual-sensor/configurations/virtual_sensor_config2p2G.json /usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
-    fi
-fi
+if [[ $CPU1_STATUS_N == 1 ]]; then
+    cp -f /etc/virtual-sensor/configurations/virtual_sensor_config1p.json /usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
+        else
+    cp -f /etc/virtual-sensor/configurations/virtual_sensor_config2p.json /usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
+        fi
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p4G.json b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p.json
similarity index 95%
rename from meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p4G.json
rename to meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p.json
index 0343dd0..980c910 100644
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p4G.json
+++ b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p.json
@@ -26,6 +26,13 @@
        "Params":{
           "DbusParam":[
              {
+                "ParamName":"CPU0_NBM2G_TMP_V",
+                "Desc":{
+                   "Name":"CPU0_NBM2G_TMP_V",
+                   "SensorType":"voltage"
+                }
+             },
+             {
                 "ParamName":"CPU0_NBM4G_TMP_V",
                 "Desc":{
                    "Name":"CPU0_NBM4G_TMP_V",
@@ -34,7 +41,7 @@
              }
           ]
        },
-       "Expression":"(CPU0_NBM4G_TMP_V == CPU0_NBM4G_TMP_V) ? (CPU0_NBM4G_TMP_V - 1.911) / 0.007 : NULL"
+       "Expression":"(CPU0_NBM4G_TMP_V == CPU0_NBM4G_TMP_V) ? (CPU0_NBM4G_TMP_V - 1.911) / 0.007 : (CPU0_NBM2G_TMP_V == CPU0_NBM2G_TMP_V) ? (CPU0_NBM2G_TMP_V - 2.73) * 100 : NULL"
     },
     {
        "Desc":{
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p2G.json b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p2G.json
deleted file mode 100644
index 8dbd1b9..0000000
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config1p2G.json
+++ /dev/null
@@ -1,295 +0,0 @@
-[
-    {
-       "Desc":{
-          "Name":"CPU0_NBM_T",
-          "SensorType":"temperature",
-          "MinValue":0,
-          "MaxValue":160
-       },
-       "Threshold":
-       {
-          "CriticalHigh":110,
-          "WarningHigh":108
-       },
-       "Associations":[
-          [
-             "chassis",
-             "all_sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ],
-          [
-             "inventory",
-             "sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ]
-       ],
-       "Params":{
-          "DbusParam":[
-             {
-                "ParamName":"CPU0_NBM2G_TMP_V",
-                "Desc":{
-                   "Name":"CPU0_NBM2G_TMP_V",
-                   "SensorType":"voltage"
-                }
-             }
-          ]
-       },
-       "Expression":"(CPU0_NBM2G_TMP_V == CPU0_NBM2G_TMP_V) ? (CPU0_NBM2G_TMP_V - 2.73) * 100 : NULL"
-    },
-    {
-       "Desc":{
-          "Name":"CPU0_DIMMG_T",
-          "SensorType":"temperature",
-          "MinValue":0,
-          "MaxValue":255
-       },
-       "Threshold":
-       {
-          "CriticalHigh":90,
-          "WarningHigh":85
-       },
-       "Associations":[
-          [
-             "chassis",
-             "all_sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ],
-          [
-             "inventory",
-             "sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ]
-       ],
-       "Params":{
-          "DbusParam":[
-             {
-                "ParamName":"CPU0_CH0",
-                "Desc":{
-                   "Name":"CPU0_CH0DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH1",
-                "Desc":{
-                   "Name":"CPU0_CH1DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH2",
-                "Desc":{
-                   "Name":"CPU0_CH2DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH3",
-                "Desc":{
-                   "Name":"CPU0_CH3DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH4",
-                "Desc":{
-                   "Name":"CPU0_CH4DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH5",
-                "Desc":{
-                   "Name":"CPU0_CH5DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH6",
-                "Desc":{
-                   "Name":"CPU0_CH6DIMM_T",
-                   "SensorType":"temperature"
-                }
-             },
-             {
-                "ParamName":"CPU0_CH7",
-                "Desc":{
-                   "Name":"CPU0_CH7DIMM_T",
-                   "SensorType":"temperature"
-                }
-             }
-          ]
-       },
-        "Expression":"var x := max((CPU0_CH0 == CPU0_CH0) ? CPU0_CH0 : 0,(CPU0_CH1 == CPU0_CH1) ? CPU0_CH1 : 0,(CPU0_CH2 == CPU0_CH2) ? CPU0_CH2 : 0,(CPU0_CH3 == CPU0_CH3) ? CPU0_CH3 : 0,(CPU0_CH4 == CPU0_CH4) ? CPU0_CH4 : 0,(CPU0_CH5 == CPU0_CH5) ? CPU0_CH5 : 0,(CPU0_CH6 == CPU0_CH6) ? CPU0_CH6 : 0,(CPU0_CH7 == CPU0_CH7) ? CPU0_CH7 : 0); x == 0 ? NULL : x"
-    },
-    {
-       "Desc":{
-          "Name":"CPU0_DIMM_DDR_V",
-          "SensorType":"voltage",
-          "MinValue":0,
-          "MaxValue":5
-       },
-       "Threshold":
-       {
-          "CriticalHigh":2.999
-       },
-       "Associations":[
-          [
-             "chassis",
-             "all_sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ],
-          [
-             "inventory",
-             "sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ]
-       ],
-       "Params":{
-          "DbusParam":[
-             {
-                "ParamName":"CPU0_DIMM_VR1_V",
-                "Desc":{
-                   "Name":"CPU0_DIMM_VR1_V",
-                   "SensorType":"voltage"
-                }
-             },
-             {
-                "ParamName":"CPU0_DIMM_VR2_V",
-                "Desc":{
-                   "Name":"CPU0_DIMM_VR2_V",
-                   "SensorType":"voltage"
-                }
-             }
-          ]
-       },
-       "Expression":"(CPU0_DIMM_VR1_V + CPU0_DIMM_VR2_V) >= 0 ? (CPU0_DIMM_VR1_V + CPU0_DIMM_VR2_V) : NULL"
-    },
-    {
-       "Desc":{
-          "Name":"CPU0_MEM_PW",
-          "SensorType":"power",
-          "MinValue":0,
-          "MaxValue":80
-       },
-       "Threshold":
-       {
-          "CriticalHigh":29.987
-       },
-       "Associations":[
-          [
-             "chassis",
-             "all_sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ],
-          [
-             "inventory",
-             "sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ]
-       ],
-       "Params":{
-          "DbusParam":[
-             {
-                "ParamName":"CPU0_DIMM_VR1_PW",
-                "Desc":{
-                   "Name":"CPU0_DIMM_VR1_PW",
-                   "SensorType":"power"
-                }
-             },
-             {
-                "ParamName":"CPU0_DIMM_VR2_PW",
-                "Desc":{
-                   "Name":"CPU0_DIMM_VR2_PW",
-                   "SensorType":"power"
-                }
-             }
-          ]
-       },
-       "Expression":"(CPU0_DIMM_VR1_PW + CPU0_DIMM_VR2_PW) >= 0 ? (CPU0_DIMM_VR1_PW + CPU0_DIMM_VR2_PW) : NULL"
-    },
-    {
-       "Desc":{
-          "Name":"CPU0_CPU_PW",
-          "SensorType":"power",
-          "MinValue":0,
-          "MaxValue":550
-       },
-       "Threshold":
-       {
-          "CriticalHigh":500
-       },
-       "Associations":[
-          [
-             "chassis",
-             "all_sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ],
-          [
-             "inventory",
-             "sensors",
-             "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-          ]
-       ],
-       "Params":{
-          "DbusParam":[
-             {
-                "ParamName":"CPU0_Core_VRD_PW",
-                "Desc":{
-                   "Name":"CPU0_Core_VRD_PW",
-                   "SensorType":"power"
-                }
-             },
-             {
-                "ParamName":"CPU0_SOC_PW",
-                "Desc":{
-                   "Name":"CPU0_SOC_PW",
-                   "SensorType":"power"
-                }
-             }
-          ]
-       },
-       "Expression":"(CPU0_Core_VRD_PW + CPU0_SOC_PW) >= 0 ? (CPU0_Core_VRD_PW + CPU0_SOC_PW) : NULL"
-    },
-    {
-        "Desc":
-        {
-            "Name": "zone0_temp",
-            "SensorType": "temperature",
-            "MinValue": 0,
-            "MaxValue": 300
-        },
-        "Threshold" :
-        {
-            "CriticalHigh": 200,
-            "WarningHigh": 198
-        },
-        "Associations":[
-         [
-            "chassis",
-            "all_sensors",
-            "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-         ],
-         [
-            "inventory",
-            "sensors",
-            "/xyz/openbmc_project/inventory/system/board/Kudo_Motherboard"
-         ]
-      ],
-        "Params":
-        {
-            "DbusParam":
-            [
-                {
-                    "ParamName": "margin0",
-                    "Desc":
-                    {
-                        "Name": "thermal_zone0",
-                        "SensorType": "temperature"
-                    }
-                }
-            ]
-        },
-        "Expression": "(200 - margin0)"
-    }
- ]
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p2G.json b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p.json
similarity index 97%
rename from meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p2G.json
rename to meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p.json
index 8516173..d7a5d1b 100644
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p2G.json
+++ b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor/virtual_sensor_config2p.json
@@ -26,15 +26,15 @@
        "Params":{
           "DbusParam":[
              {
-                "ParamName":"CPU0_NBM4G_TMP_V",
+                "ParamName":"CPU0_NBM2G_TMP_V",
                 "Desc":{
-                   "Name":"CPU0_NBM4G_TMP_V",
+                   "Name":"CPU0_NBM2G_TMP_V",
                    "SensorType":"voltage"
                 }
              }
           ]
        },
-       "Expression":"(CPU0_NBM4G_TMP_V == CPU0_NBM4G_TMP_V) ? (CPU0_NBM4G_TMP_V - 2.73) * 100 : NULL"
+       "Expression":"(CPU0_NBM2G_TMP_V == CPU0_NBM2G_TMP_V) ? (CPU0_NBM2G_TMP_V - 2.73) * 100 : NULL"
     },
     {
        "Desc":{
@@ -63,15 +63,15 @@
        "Params":{
           "DbusParam":[
              {
-                "ParamName":"CPU1_NBM4G_TMP_V",
+                "ParamName":"CPU1_NBM2G_TMP_V",
                 "Desc":{
-                   "Name":"CPU1_NBM4G_TMP_V",
+                   "Name":"CPU1_NBM2G_TMP_V",
                    "SensorType":"voltage"
                 }
              }
           ]
        },
-       "Expression":"(CPU1_NBM4G_TMP_V == CPU1_NBM4G_TMP_V) ? (CPU1_NBM4G_TMP_V - 2.73) * 100 : NULL"
+       "Expression":"(CPU1_NBM2G_TMP_V == CPU1_NBM2G_TMP_V) ? (CPU1_NBM2G_TMP_V - 2.73) * 100 : NULL"
     },
     {
        "Desc":{
diff --git a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend
index 9273338..45f224b 100644
--- a/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend
+++ b/meta-fii/meta-kudo/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend
@@ -6,9 +6,8 @@
                                     "
 
 SRC_URI:append:kudo = " \
-    file://virtual_sensor_config1p2G.json \
-    file://virtual_sensor_config2p2G.json \
-    file://virtual_sensor_config1p4G.json \
+    file://virtual_sensor_config1p.json \
+    file://virtual_sensor_config2p.json \
     file://cpu_detect_virtual.sh \
     file://cpu_detect_virtual.service \
     "
@@ -16,9 +15,8 @@
     install -d ${D}${libexecdir}/${PN}
     install -m 0755 ${WORKDIR}/cpu_detect_virtual.sh ${D}${libexecdir}/${PN}/cpu_detect_virtual.sh
     install -d ${D}${sysconfdir}/virtual-sensor/configurations/
-    install -m 0644 ${WORKDIR}/virtual_sensor_config1p2G.json ${D}${sysconfdir}/virtual-sensor/configurations/virtual_sensor_config1p2G.json
-    install -m 0644 ${WORKDIR}/virtual_sensor_config2p2G.json ${D}${sysconfdir}/virtual-sensor/configurations/virtual_sensor_config2p2G.json
-    install -m 0644 ${WORKDIR}/virtual_sensor_config1p4G.json ${D}${sysconfdir}/virtual-sensor/configurations/virtual_sensor_config1p4G.json
+    install -m 0644 ${WORKDIR}/virtual_sensor_config1p.json ${D}${sysconfdir}/virtual-sensor/configurations/virtual_sensor_config1p.json
+    install -m 0644 ${WORKDIR}/virtual_sensor_config2p.json ${D}${sysconfdir}/virtual-sensor/configurations/virtual_sensor_config2p.json
     install -d ${D}${systemd_system_unitdir}
     install -m 0644 ${WORKDIR}/cpu_detect_virtual.service ${D}${systemd_system_unitdir}/cpu_detect_virtual.service
 }