1{ 2 "$schema": "http://json-schema.org/draft-07/schema#", 3 "$defs": { 4 "FirmwareInfoDef": { 5 "description": "This indicates the properties which apply to all firmwares", 6 "type": "object", 7 "additionalProperties": false, 8 "properties": { 9 "VendorIANA": { 10 "description": "The IANA Enterprise Id of the hardware vendor", 11 "type": "number" 12 }, 13 "CompatibleHardware": { 14 "description": "The compatible hardware with name format com.<vendor>.Hardware.<XXX> specified by vendor in phosphor-dbus-interfaces", 15 "type": "string" 16 } 17 }, 18 "required": ["VendorIANA", "CompatibleHardware"] 19 }, 20 "MuxOutputs": { 21 "description": "The pin names and values for the mux which toggles the flash to BMC", 22 "type": "array", 23 "items": { 24 "type": "object", 25 "additionalProperties": false, 26 "properties": { 27 "Name": { 28 "$ref": "legacy.json#/$defs/Types/Name" 29 }, 30 "Polarity": { 31 "$ref": "legacy.json#/$defs/Types/Polarity" 32 } 33 }, 34 "required": ["Name", "Polarity"] 35 } 36 }, 37 "I2CVRFirmware": { 38 "description": "Required information to complete I2C voltage regulator firmware update", 39 "object": "object", 40 "additionalProperties": false, 41 "properties": { 42 "Name": { 43 "description": "Name of the firmware", 44 "type": "string" 45 }, 46 "Type": { 47 "description": "The type of configuration object", 48 "enum": [ 49 "XDPE1X2XXFirmware", 50 "ISL69269Firmware", 51 "MP2X6XXFirmware", 52 "MP292XFirmware", 53 "MP297XFirmware", 54 "MP5998Firmware", 55 "MP994XFirmware", 56 "RAA22XGen2Firmware", 57 "RAA22XGen3p5Firmware", 58 "TDA38640AFirmware" 59 ] 60 }, 61 "Bus": { 62 "$ref": "legacy.json#/$defs/Types/Bus" 63 }, 64 "Address": { 65 "$ref": "legacy.json#/$defs/Types/Address" 66 }, 67 "FirmwareInfo": { 68 "$ref": "#/$defs/FirmwareInfoDef" 69 } 70 }, 71 "required": ["Name", "Type", "Bus", "Address", "FirmwareInfo"] 72 }, 73 "BIOS": { 74 "description": "Required information to complete the host fw update process.", 75 "type": "object", 76 "additionalProperties": false, 77 "properties": { 78 "Type": { 79 "description": "The type of configuration object. IntelSPIFlash implies Intel Flash Descriptor.", 80 "enum": ["IntelSPIFlash", "SPIFlash"] 81 }, 82 "Name": { 83 "description": "The name of the firmware.", 84 "type": "string" 85 }, 86 "SPIControllerIndex": { 87 "description": "The index of the SPI controller", 88 "type": "number" 89 }, 90 "SPIDeviceIndex": { 91 "description": "The index of the SPI device connected to that controller", 92 "type": "number" 93 }, 94 "MuxOutputs": { 95 "$ref": "#/$defs/MuxOutputs" 96 }, 97 "FirmwareInfo": { 98 "$ref": "#/$defs/FirmwareInfoDef" 99 } 100 }, 101 "required": [ 102 "Name", 103 "Type", 104 "SPIControllerIndex", 105 "SPIDeviceIndex", 106 "MuxOutputs", 107 "FirmwareInfo" 108 ] 109 }, 110 "EEPROMDeviceFirmware": { 111 "description": "Required information to complete the EEPROM device firmware update process", 112 "type": "object", 113 "additionalProperties": false, 114 "properties": { 115 "Name": { 116 "description": "Unique identifier or label for the EEPROM device", 117 "type": "string" 118 }, 119 "Type": { 120 "description": "The type of configuration object", 121 "enum": ["PT5161LFirmware"] 122 }, 123 "Bus": { 124 "$ref": "legacy.json#/$defs/Types/Bus" 125 }, 126 "Address": { 127 "$ref": "legacy.json#/$defs/Types/Address" 128 }, 129 "FirmwareDevice": { 130 "description": "The device that stores the EEPROM device firmware", 131 "type": "string" 132 }, 133 "MuxOutputs": { 134 "$ref": "#/$defs/MuxOutputs" 135 }, 136 "FirmwareInfo": { 137 "$ref": "#/$defs/FirmwareInfoDef" 138 } 139 }, 140 "required": [ 141 "Name", 142 "Type", 143 "Bus", 144 "Address", 145 "FirmwareDevice", 146 "FirmwareInfo" 147 ] 148 }, 149 "TPMFirmware": { 150 "description": "Required information to complete the TPM firmware update process", 151 "type": "object", 152 "additionalProperties": false, 153 "properties": { 154 "Name": { 155 "description": "Unique identifier or label for the TPM device", 156 "type": "string" 157 }, 158 "TPMIndex": { 159 "description": "The index of the TPM device", 160 "type": "number" 161 }, 162 "Type": { 163 "description": "The type of configuration object", 164 "enum": ["TPM2Firmware"] 165 }, 166 "FirmwareInfo": { 167 "$ref": "#/$defs/FirmwareInfoDef" 168 } 169 }, 170 "required": ["Name", "TPMIndex", "Type", "FirmwareInfo"] 171 } 172 } 173} 174