12b2784a5SJohn Edward Broadbentdescription: > 22b2784a5SJohn Edward Broadbent Implement the Hoth command control interface. 32b2784a5SJohn Edward Broadbent 42b2784a5SJohn Edward Broadbentmethods: 52b2784a5SJohn Edward Broadbent - name: SendHostCommand 62b2784a5SJohn Edward Broadbent description: > 7a1347418SPatrick Williams Send a host command to Hoth and return the response. This will block 8a1347418SPatrick Williams on Hoth completing its internal operations. Critical host commands 9a1347418SPatrick Williams like LoadTokens are banned. This method should be called from the IPMI 10a1347418SPatrick Williams HostCommand passthrough. 112b2784a5SJohn Edward Broadbent parameters: 122b2784a5SJohn Edward Broadbent - name: Command 132b2784a5SJohn Edward Broadbent type: array[byte] 142b2784a5SJohn Edward Broadbent description: > 152b2784a5SJohn Edward Broadbent Data to write to Hoth SPI host command offset. 162b2784a5SJohn Edward Broadbent returns: 172b2784a5SJohn Edward Broadbent - name: Response 182b2784a5SJohn Edward Broadbent type: array[byte] 192b2784a5SJohn Edward Broadbent description: > 202b2784a5SJohn Edward Broadbent Data read from Hoth SPI host command offset. 212b2784a5SJohn Edward Broadbent errors: 222b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 232b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 242b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 252b2784a5SJohn Edward Broadbent - xyz.openbmc_project.Common.Error.Timeout 262b2784a5SJohn Edward Broadbent 272b2784a5SJohn Edward Broadbent - name: SendTrustedHostCommand 282b2784a5SJohn Edward Broadbent description: > 29a1347418SPatrick Williams Send a host command to Hoth and return the response. This will block 30a1347418SPatrick Williams on Hoth completing its internal operations. Critical host commands 31a1347418SPatrick Williams like LoadTokens are allowed. This method should be called from the 32a1347418SPatrick Williams BMC. 332b2784a5SJohn Edward Broadbent parameters: 342b2784a5SJohn Edward Broadbent - name: Command 352b2784a5SJohn Edward Broadbent type: array[byte] 362b2784a5SJohn Edward Broadbent description: > 372b2784a5SJohn Edward Broadbent Data to write to Hoth SPI host command offset. 382b2784a5SJohn Edward Broadbent returns: 392b2784a5SJohn Edward Broadbent - name: Response 402b2784a5SJohn Edward Broadbent type: array[byte] 412b2784a5SJohn Edward Broadbent description: > 422b2784a5SJohn Edward Broadbent Data read from Hoth SPI host command offset. 432b2784a5SJohn Edward Broadbent errors: 442b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 452b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 462b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 472b2784a5SJohn Edward Broadbent - xyz.openbmc_project.Common.Error.Timeout 482b2784a5SJohn Edward Broadbent 492b2784a5SJohn Edward Broadbent - name: SendHostCommandAsync 502b2784a5SJohn Edward Broadbent description: > 512b2784a5SJohn Edward Broadbent Send a host command to Hoth and immediately return without waiting for 522b2784a5SJohn Edward Broadbent response. Caller can either poll with calls to GetHostCommandResponse 532b2784a5SJohn Edward Broadbent until retrieving the response, or wait for a ResponseReady signal. 542b2784a5SJohn Edward Broadbent parameters: 552b2784a5SJohn Edward Broadbent - name: Command 562b2784a5SJohn Edward Broadbent type: array[byte] 572b2784a5SJohn Edward Broadbent description: > 582b2784a5SJohn Edward Broadbent Data to write to Hoth SPI host command offset. 592b2784a5SJohn Edward Broadbent returns: 602b2784a5SJohn Edward Broadbent - name: CallToken 612b2784a5SJohn Edward Broadbent type: uint64 622b2784a5SJohn Edward Broadbent description: > 632b2784a5SJohn Edward Broadbent The representation for the call made 642b2784a5SJohn Edward Broadbent errors: 652b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 662b2784a5SJohn Edward Broadbent 672b2784a5SJohn Edward Broadbent - name: GetHostCommandResponse 682b2784a5SJohn Edward Broadbent description: > 692b2784a5SJohn Edward Broadbent Read the response from Hoth mailbox. 702b2784a5SJohn Edward Broadbent parameters: 712b2784a5SJohn Edward Broadbent - name: CallToken 722b2784a5SJohn Edward Broadbent type: uint64 732b2784a5SJohn Edward Broadbent description: > 742b2784a5SJohn Edward Broadbent The token returned from SendHostCommandAsync() 752b2784a5SJohn Edward Broadbent returns: 762b2784a5SJohn Edward Broadbent - name: Response 772b2784a5SJohn Edward Broadbent type: array[byte] 782b2784a5SJohn Edward Broadbent description: > 792b2784a5SJohn Edward Broadbent Data read from Hoth SPI host command offset 802b2784a5SJohn Edward Broadbent errors: 812b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 822b2784a5SJohn Edward Broadbent - self.Error.ResponseNotFound 832b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 842b2784a5SJohn Edward Broadbent 852b2784a5SJohn Edward Broadbent - name: UpdateFirmware 862b2784a5SJohn Edward Broadbent description: > 872b2784a5SJohn Edward Broadbent Write given firmware data to the Hoth firmware partition in EEPROM. 882b2784a5SJohn Edward Broadbent parameters: 892b2784a5SJohn Edward Broadbent - name: FirmwareData 902b2784a5SJohn Edward Broadbent type: array[byte] 912b2784a5SJohn Edward Broadbent description: > 922b2784a5SJohn Edward Broadbent Hoth firmware image 932b2784a5SJohn Edward Broadbent errors: 942b2784a5SJohn Edward Broadbent - self.Error.FirmwareFailure 952b2784a5SJohn Edward Broadbent 962b2784a5SJohn Edward Broadbent - name: GetFirmwareUpdateStatus 972b2784a5SJohn Edward Broadbent description: > 982b2784a5SJohn Edward Broadbent Get the status of the firmware update process. 992b2784a5SJohn Edward Broadbent returns: 1002b2784a5SJohn Edward Broadbent - name: Status 1012b2784a5SJohn Edward Broadbent type: enum[self.FirmwareUpdateStatus] 1022b2784a5SJohn Edward Broadbent description: > 1032b2784a5SJohn Edward Broadbent Status of the firmware update 1042b2784a5SJohn Edward Broadbent 1052b2784a5SJohn Edward Broadbent - name: InitiatePayload 1062b2784a5SJohn Edward Broadbent description: > 107a1347418SPatrick Williams Initiates erasure of the EEPROM staging area. Note that this will lock 108a1347418SPatrick Williams up access to Hoth for an extended time and may go over the kernel's 109a1347418SPatrick Williams SPI write timeout. Calling multiple small ErasePayload is recommended. 1102b2784a5SJohn Edward Broadbent errors: 1112b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 1122b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 1132b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 1142b2784a5SJohn Edward Broadbent 1152b2784a5SJohn Edward Broadbent - name: GetInitiatePayloadStatus 1162b2784a5SJohn Edward Broadbent description: > 1172b2784a5SJohn Edward Broadbent Get the status of the payload initiation process. 1182b2784a5SJohn Edward Broadbent returns: 1192b2784a5SJohn Edward Broadbent - name: Status 1202b2784a5SJohn Edward Broadbent type: enum[self.FirmwareUpdateStatus] 1212b2784a5SJohn Edward Broadbent description: > 1222b2784a5SJohn Edward Broadbent Status of the payload initiation 1232b2784a5SJohn Edward Broadbent 1242b2784a5SJohn Edward Broadbent - name: ErasePayload 1252b2784a5SJohn Edward Broadbent description: > 1262b2784a5SJohn Edward Broadbent Erases the given size starting at the specified offset of the staging 1272b2784a5SJohn Edward Broadbent partition. 1282b2784a5SJohn Edward Broadbent parameters: 1292b2784a5SJohn Edward Broadbent - name: Offset 1302b2784a5SJohn Edward Broadbent type: uint32 1312b2784a5SJohn Edward Broadbent description: > 1322b2784a5SJohn Edward Broadbent Offset of the staging partition to start erasing from. 1332b2784a5SJohn Edward Broadbent - name: Size 1342b2784a5SJohn Edward Broadbent type: uint32 1352b2784a5SJohn Edward Broadbent description: > 1362b2784a5SJohn Edward Broadbent Size of the staging partition to erase. 1372b2784a5SJohn Edward Broadbent errors: 1382b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 1392b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 1402b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 1412b2784a5SJohn Edward Broadbent 1422b2784a5SJohn Edward Broadbent - name: SendPayload 1432b2784a5SJohn Edward Broadbent description: > 1442b2784a5SJohn Edward Broadbent Chunk and send the binary specified in the image path 1452b2784a5SJohn Edward Broadbent parameters: 1462b2784a5SJohn Edward Broadbent - name: ImagePath 1472b2784a5SJohn Edward Broadbent type: string 1482b2784a5SJohn Edward Broadbent description: > 1492b2784a5SJohn Edward Broadbent Firmware image path 1502b2784a5SJohn Edward Broadbent errors: 1512b2784a5SJohn Edward Broadbent - self.Error.FirmwareFailure 1522b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 1532b2784a5SJohn Edward Broadbent 1542b2784a5SJohn Edward Broadbent - name: GetSendPayloadStatus 1552b2784a5SJohn Edward Broadbent description: > 1562b2784a5SJohn Edward Broadbent Get the status of the send payload process. 1572b2784a5SJohn Edward Broadbent returns: 1582b2784a5SJohn Edward Broadbent - name: Status 1592b2784a5SJohn Edward Broadbent type: enum[self.FirmwareUpdateStatus] 1602b2784a5SJohn Edward Broadbent description: > 1612b2784a5SJohn Edward Broadbent Status of the send payload process. 1622b2784a5SJohn Edward Broadbent 1632b2784a5SJohn Edward Broadbent - name: VerifyPayload 1642b2784a5SJohn Edward Broadbent description: > 1652b2784a5SJohn Edward Broadbent Initiates the verification process without activating the staging area 1662b2784a5SJohn Edward Broadbent errors: 1672b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 1682b2784a5SJohn Edward Broadbent 1692b2784a5SJohn Edward Broadbent - name: GetVerifyPayloadStatus 1702b2784a5SJohn Edward Broadbent description: > 1712b2784a5SJohn Edward Broadbent Get the status of the payload verification process. 1722b2784a5SJohn Edward Broadbent returns: 1732b2784a5SJohn Edward Broadbent - name: Status 1742b2784a5SJohn Edward Broadbent type: enum[self.FirmwareUpdateStatus] 1752b2784a5SJohn Edward Broadbent description: > 1762b2784a5SJohn Edward Broadbent Status of the payload verification 1772b2784a5SJohn Edward Broadbent 1782b2784a5SJohn Edward Broadbent - name: ActivatePayload 1792b2784a5SJohn Edward Broadbent description: > 180a1347418SPatrick Williams Activates the staging area as persistent or non-persistent for next 181a1347418SPatrick Williams boot if verification was successful. 1822b2784a5SJohn Edward Broadbent parameters: 1832b2784a5SJohn Edward Broadbent - name: MakePersistent 1842b2784a5SJohn Edward Broadbent type: boolean 1852b2784a5SJohn Edward Broadbent description: > 186a1347418SPatrick Williams Flag to determine whether to activate the staged image as 187a1347418SPatrick Williams persistent or non-persistent for next boot. 1882b2784a5SJohn Edward Broadbent errors: 1892b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 1902b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 1912b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 1922b2784a5SJohn Edward Broadbent 1932b2784a5SJohn Edward Broadbent - name: GetPayloadSize 1942b2784a5SJohn Edward Broadbent description: > 1952b2784a5SJohn Edward Broadbent Determines the max size of the payload region. 1962b2784a5SJohn Edward Broadbent returns: 1972b2784a5SJohn Edward Broadbent - name: Size 1982b2784a5SJohn Edward Broadbent type: uint32 1992b2784a5SJohn Edward Broadbent description: > 2002b2784a5SJohn Edward Broadbent The size of the payload region 2012b2784a5SJohn Edward Broadbent errors: 2022b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 2032b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2042b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 2052b2784a5SJohn Edward Broadbent 2062b2784a5SJohn Edward Broadbent - name: Confirm 2072b2784a5SJohn Edward Broadbent description: > 208a1347418SPatrick Williams Prevents hoth from rolling back and using the previous image. When an 209*921791c7SManojkiran Eda image can be confirmed to be working well, this command is given, 2102b2784a5SJohn Edward Broadbent which disarms the hoth watchdog. 2112b2784a5SJohn Edward Broadbent errors: 2122b2784a5SJohn Edward Broadbent - self.Error.CommandFailure 2132b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2142b2784a5SJohn Edward Broadbent - self.Error.InterfaceError 2152b2784a5SJohn Edward Broadbent 2162b2784a5SJohn Edward Broadbent - name: GetTotalBootTime 2172b2784a5SJohn Edward Broadbent description: > 2182b2784a5SJohn Edward Broadbent Get total time spending from reset to HVNGOOD. 2192b2784a5SJohn Edward Broadbent returns: 2202b2784a5SJohn Edward Broadbent - name: Time 2212b2784a5SJohn Edward Broadbent type: uint32 2222b2784a5SJohn Edward Broadbent description: > 2232b2784a5SJohn Edward Broadbent Time in microseconds. 2242b2784a5SJohn Edward Broadbent errors: 2252b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2262b2784a5SJohn Edward Broadbent - self.Error.ExpectedInfoNotFound 2272b2784a5SJohn Edward Broadbent 2282b2784a5SJohn Edward Broadbent - name: GetFirmwareUpdateTime 2292b2784a5SJohn Edward Broadbent description: > 230a1347418SPatrick Williams Get time spending in the self update routine. Since a proper self 231a1347418SPatrick Williams update involves a reset, this time is always expected to be low. 2322b2784a5SJohn Edward Broadbent returns: 2332b2784a5SJohn Edward Broadbent - name: Time 2342b2784a5SJohn Edward Broadbent type: uint32 2352b2784a5SJohn Edward Broadbent description: > 2362b2784a5SJohn Edward Broadbent Time in microseconds. 2372b2784a5SJohn Edward Broadbent errors: 2382b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2392b2784a5SJohn Edward Broadbent - self.Error.ExpectedInfoNotFound 2402b2784a5SJohn Edward Broadbent 2412b2784a5SJohn Edward Broadbent - name: GetFirmwareMirroringTime 2422b2784a5SJohn Edward Broadbent description: > 243a1347418SPatrick Williams Get time spending in mirroing the self-update. This time is a 244a1347418SPatrick Williams reasonable proxy for the total self update time. 2452b2784a5SJohn Edward Broadbent returns: 2462b2784a5SJohn Edward Broadbent - name: Time 2472b2784a5SJohn Edward Broadbent type: uint32 2482b2784a5SJohn Edward Broadbent description: > 2492b2784a5SJohn Edward Broadbent Time in microseconds. 2502b2784a5SJohn Edward Broadbent errors: 2512b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2522b2784a5SJohn Edward Broadbent - self.Error.ExpectedInfoNotFound 2532b2784a5SJohn Edward Broadbent 2542b2784a5SJohn Edward Broadbent - name: GetPayloadValidationTime 2552b2784a5SJohn Edward Broadbent description: > 256a1347418SPatrick Williams Get time spending in validating the payload, copying mutable regions 257a1347418SPatrick Williams and/or dealing with failsafe fallback. 2582b2784a5SJohn Edward Broadbent returns: 2592b2784a5SJohn Edward Broadbent - name: Time 2602b2784a5SJohn Edward Broadbent type: uint32 2612b2784a5SJohn Edward Broadbent description: > 2622b2784a5SJohn Edward Broadbent Time in microseconds. 2632b2784a5SJohn Edward Broadbent errors: 2642b2784a5SJohn Edward Broadbent - self.Error.ResponseFailure 2652b2784a5SJohn Edward Broadbent - self.Error.ExpectedInfoNotFound 2662b2784a5SJohn Edward Broadbent 2672b2784a5SJohn Edward Broadbentsignals: 2682b2784a5SJohn Edward Broadbent - name: HostCommandResponseReady 2692b2784a5SJohn Edward Broadbent description: > 2702b2784a5SJohn Edward Broadbent This signal is broadcast when a response is ready for the call that 2712b2784a5SJohn Edward Broadbent returned CallToken. 2722b2784a5SJohn Edward Broadbent properties: 2732b2784a5SJohn Edward Broadbent - name: CallToken 2742b2784a5SJohn Edward Broadbent type: uint64 2752b2784a5SJohn Edward Broadbent description: > 2762b2784a5SJohn Edward Broadbent The token returned from SendHostCommandAsync() 2772b2784a5SJohn Edward Broadbent 2782b2784a5SJohn Edward Broadbentenumerations: 2792b2784a5SJohn Edward Broadbent - name: FirmwareUpdateStatus 2802b2784a5SJohn Edward Broadbent description: > 2812b2784a5SJohn Edward Broadbent The status of a firmware update through hothd 2822b2784a5SJohn Edward Broadbent values: 2838da396caSPatrick Williams - name: "None" 2842b2784a5SJohn Edward Broadbent description: > 2852b2784a5SJohn Edward Broadbent No update initiated 2868da396caSPatrick Williams - name: "InProgress" 2872b2784a5SJohn Edward Broadbent description: > 2882b2784a5SJohn Edward Broadbent Update still in progress 2898da396caSPatrick Williams - name: "Error" 2902b2784a5SJohn Edward Broadbent description: > 2912b2784a5SJohn Edward Broadbent Update has failed 2928da396caSPatrick Williams - name: "Done" 2932b2784a5SJohn Edward Broadbent description: > 2942b2784a5SJohn Edward Broadbent Update has completed successfully 295