configurations: clemente: expose boot drive and data drives

- Use FRU data from NVMe drives to probe and create their
  DBus representations. This ensures information based on
  FRU data that can be extracted by different means stays
  consistent.

Change-Id: Icfd3265c771f6d3fb53a1bcfc7b7585f8cf7bd5b
Signed-off-by: Bruce Hung <bruce.jy.hung@fii-foxconn.com>
diff --git a/configurations/meta/clemente_hdd_nvme.json b/configurations/meta/clemente_hdd_nvme.json
index 6ebde50..e917834 100644
--- a/configurations/meta/clemente_hdd_nvme.json
+++ b/configurations/meta/clemente_hdd_nvme.json
@@ -2,44 +2,15 @@
     {
         "Exposes": [
             {
-                "Address": "0x6a",
-                "Bus": "48",
-                "Name": "HDDBOARD0_SSD0_TEMP_C",
-                "PowerState": "On",
-                "Thresholds": [
-                    {
-                        "Direction": "greater than",
-                        "Index": 2,
-                        "Name": "upper non recoverable",
-                        "Severity": 4,
-                        "Value": 85
-                    },
-                    {
-                        "Direction": "greater than",
-                        "Index": 2,
-                        "Name": "upper critical",
-                        "Severity": 1,
-                        "Value": 83
-                    },
-                    {
-                        "Direction": "greater than",
-                        "Name": "upper non critical",
-                        "Severity": 0,
-                        "Value": 80
-                    },
-                    {
-                        "Direction": "less than",
-                        "Name": "lower non critical",
-                        "Severity": 0,
-                        "Value": 5
-                    }
-                ],
-                "Type": "NVME1000"
+                "Address": "$address",
+                "Bus": "$bus",
+                "Name": "NVMe $index FRU",
+                "Type": "EEPROM"
             },
             {
                 "Address": "0x6a",
-                "Bus": "50",
-                "Name": "HDDBOARD0_SSD1_TEMP_C",
+                "Bus": "$bus",
+                "Name": "HDDBOARD0 SSD$index TEMP_C",
                 "PowerState": "On",
                 "Thresholds": [
                     {
@@ -73,54 +44,35 @@
             }
         ],
         /* Clemente Hard Disk Drive NVMe Board 0*/
-        "Name": "Clemente HDD NVMe 0",
+        "Name": "Clemente HDD NVMe 0 $index",
         "Probe": [
-            "xyz.openbmc_project.Inventory.Item.Board({'Name': 'Clemente HDD Carrier 0'})"
+            "xyz.openbmc_project.FruDevice({'BUS': 48, 'ADDRESS': 83, 'PRODUCT_MANUFACTURER': '(Samsung|MICRON)'})",
+            "OR",
+            "xyz.openbmc_project.FruDevice({'BUS': 50, 'ADDRESS': 83, 'PRODUCT_MANUFACTURER': '(Samsung|MICRON)'})",
+            "AND",
+            "FOUND('Clemente HDD Carrier $bus - 25 % 11')"
         ],
-        "Type": "Board",
+        "Type": "NVMe",
+        "xyz.openbmc_project.Inventory.Decorator.Asset": {
+            "Manufacturer": "$PRODUCT_MANUFACTURER",
+            "Model": "$PRODUCT_PRODUCT_NAME",
+            "PartNumber": "$PRODUCT_PART_NUMBER",
+            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
+        },
         "xyz.openbmc_project.Inventory.Item.Chassis": {}
     },
     {
         "Exposes": [
             {
-                "Address": "0x6a",
-                "Bus": "52",
-                "Name": "HDDBOARD1_SSD0_TEMP_C",
-                "PowerState": "On",
-                "Thresholds": [
-                    {
-                        "Direction": "greater than",
-                        "Index": 2,
-                        "Name": "upper non recoverable",
-                        "Severity": 4,
-                        "Value": 85
-                    },
-                    {
-                        "Direction": "greater than",
-                        "Index": 2,
-                        "Name": "upper critical",
-                        "Severity": 1,
-                        "Value": 83
-                    },
-                    {
-                        "Direction": "greater than",
-                        "Name": "upper non critical",
-                        "Severity": 0,
-                        "Value": 80
-                    },
-                    {
-                        "Direction": "less than",
-                        "Name": "lower non critical",
-                        "Severity": 0,
-                        "Value": 5
-                    }
-                ],
-                "Type": "NVME1000"
+                "Address": "$address",
+                "Bus": "$bus",
+                "Name": "NVMe $index FRU",
+                "Type": "EEPROM"
             },
             {
                 "Address": "0x6a",
-                "Bus": "54",
-                "Name": "HDDBOARD1_SSD1_TEMP_C",
+                "Bus": "$bus",
+                "Name": "HDDBOARD1 SSD$index TEMP_C",
                 "PowerState": "On",
                 "Thresholds": [
                     {
@@ -154,16 +106,32 @@
             }
         ],
         /* Clemente Hard Disk Drive NVMe Board 1*/
-        "Name": "Clemente HDD NVMe 1",
+        "Name": "Clemente HDD NVMe 1 $index",
         "Probe": [
-            "xyz.openbmc_project.Inventory.Item.Board({'Name': 'Clemente HDD Carrier 1'})"
+            "xyz.openbmc_project.FruDevice({'BUS': 52, 'ADDRESS': 83, 'PRODUCT_MANUFACTURER': '(Samsung|MICRON)'})",
+            "OR",
+            "xyz.openbmc_project.FruDevice({'BUS': 54, 'ADDRESS': 83, 'PRODUCT_MANUFACTURER': '(Samsung|MICRON)'})",
+            "AND",
+            "FOUND('Clemente HDD Carrier $bus - 25 % 11')"
         ],
-        "Type": "Board",
+        "Type": "NVMe",
+        "xyz.openbmc_project.Inventory.Decorator.Asset": {
+            "Manufacturer": "$PRODUCT_MANUFACTURER",
+            "Model": "$PRODUCT_PRODUCT_NAME",
+            "PartNumber": "$PRODUCT_PART_NUMBER",
+            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
+        },
         "xyz.openbmc_project.Inventory.Item.Chassis": {}
     },
     {
         "Exposes": [
             {
+                "Address": "$address",
+                "Bus": "$bus",
+                "Name": "NVMe $index FRU",
+                "Type": "EEPROM"
+            },
+            {
                 "Address": "0x6a",
                 "Bus": "45",
                 "Name": "BOOTDRIVE_TEMP_C",
@@ -188,9 +156,17 @@
         /* Clemente Boot Drive NVMe*/
         "Name": "Clemente Boot Drive NVMe",
         "Probe": [
-            "xyz.openbmc_project.FruDevice({'BUS': 45, 'ADDRESS': 83})"
+            "xyz.openbmc_project.FruDevice({'BUS': 45, 'ADDRESS': 83, 'PRODUCT_MANUFACTURER': '(Samsung|MICRON|KIOXIA)'})",
+            "AND",
+            "FOUND('Clemente HDD Carrier $bus - 25 % 11')"
         ],
-        "Type": "Board",
+        "Type": "NVMe",
+        "xyz.openbmc_project.Inventory.Decorator.Asset": {
+            "Manufacturer": "$PRODUCT_MANUFACTURER",
+            "Model": "$PRODUCT_PRODUCT_NAME",
+            "PartNumber": "$PRODUCT_PART_NUMBER",
+            "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
+        },
         "xyz.openbmc_project.Inventory.Item.Chassis": {}
     }
 ]