schemas: add Host firmware info

Add the Host fw info such as SPI device access, Mux GPIO details and
other related details. Also add the firmware info attributes which
refers to the previously defined FirmwareInfoDef.

Tested:
Tested with dummy configuration.

Change-Id: Ia0437e8457e1ba291dfadf77fddcad3a76615d47
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/schemas/exposes_record.json b/schemas/exposes_record.json
index 39aad44..676e878 100644
--- a/schemas/exposes_record.json
+++ b/schemas/exposes_record.json
@@ -143,6 +143,9 @@
                 },
                 {
                     "$ref": "firmware.json#/$defs/XDPE1X2XXFirmware"
+                },
+                {
+                    "$ref": "firmware.json#/$defs/BIOS"
                 }
             ]
         },
diff --git a/schemas/firmware.json b/schemas/firmware.json
index 6e4a543..296d6f5 100644
--- a/schemas/firmware.json
+++ b/schemas/firmware.json
@@ -41,6 +41,55 @@
                 }
             },
             "required": ["Name", "Type", "Bus", "Address", "FirmwareInfo"]
+        },
+        "BIOS": {
+            "description": "Required information to complete the host fw update process.",
+            "type": "object",
+            "properties": {
+                "Type": {
+                    "description": "The type of configuration object. IntelSPIFlash implies Intel Flash Descriptor.",
+                    "enum": ["IntelSPIFlash", "SPIFlash"]
+                },
+                "Name": {
+                    "description": "The name of the firmware.",
+                    "type": "string"
+                },
+                "SPIControllerIndex": {
+                    "description": "The index of the SPI controller",
+                    "type": "number"
+                },
+                "SPIDeviceIndex": {
+                    "description": "The index of the SPI device connected to that controller",
+                    "type": "number"
+                },
+                "MuxOutputs": {
+                    "description": "The pin names and values for the mux which toggles the flash to BMC",
+                    "type": "array",
+                    "items": {
+                        "type": "object",
+                        "properties": {
+                            "Name": {
+                                "$ref": "legacy.json#/$defs/Types/Name"
+                            },
+                            "Polarity": {
+                                "$ref": "legacy.json#/$defs/Types/Polarity"
+                            }
+                        },
+                        "required": ["Name", "Polarity"]
+                    }
+                },
+                "FirmwareInfo": {
+                    "$ref": "#/$defs/FirmwareInfoDef"
+                }
+            },
+            "required": [
+                "Name",
+                "Type",
+                "SPIControllerIndex",
+                "SPIDeviceIndex",
+                "MuxOutputs",
+                "FirmwareInfo"
+            ]
         }
     }
 }