xref: /openbmc/phosphor-dbus-interfaces/yaml/com/google/gbmc/Hoth.interface.yaml (revision 921791c73008a3edfc6507afb5bc15e48963d295)
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