MCU bootloader protocol

Introduction

All MCU bootloader command APIs follow the command packet format wrapped by the framing packet, as explained in the previous sections. See Table 4-9 for a list of commands supported by the MCU bootloader. For a list of status codes returned by the MCU bootloader, see Appendix A.

Parent topic:MCU bootloader protocol

Parent topic:MCU bootloader command API

Command with no data phase

Note: In these diagrams, the Ack sent in response to a Command or Data packet can arrive at any time before, during, or after the Command/Data packet has processed.

Command with no data phase

The protocol for a command with no data phase contains:

  • Command packet (from host)

  • Generic response command packet (to host)

Command with no data phase

Parent topic:MCU bootloader protocol

Command with incoming data phase

The protocol for a command with incoming data phase contains:

  • Command packet (from host)(kCommandFlag_HasDataPhase set)

  • Generic response command packet (to host)

  • Incoming data packets (from host)

  • Generic response command packet (to host)

Command with incoming data phase

Note:

  • The host may not send any further packets while it is waiting for the response to a command.

  • The data phase is aborted if, prior to the start of the data phase, the Generic Response packet does not have a status of kStatus_Success.

  • Data phases may be aborted by the receiving side by sending the final Generic Response early with a status of kStatus_AbortDataPhase. The host may abort the data phase early by sending a zero-length data packet.

  • The final Generic Response packet sent after the data phase includes the status for the entire operation.

Parent topic:MCU bootloader protocol

Command with outgoing data phase

The protocol for a command with an outgoing data phase contains:

  • Command packet (from host)

  • ReadMemory Response command packet (to host)(kCommandFlag_HasDataPhase set)

  • Outgoing data packets (to host)

  • Generic response command packet (to host)

Command with outgoing data phase

Note:

  • The data phase is considered part of the response command for the outgoing data phase sequence.

  • The host may not send any further packets while the host is waiting for the response to a command.

  • The data phase is aborted if, prior to the start of the data phase, the ReadMemory Response command packet does not contain the kCommandFlag_HasDataPhase flag.

  • Data phases may be aborted by the host sending the final Generic Response early with a status of kStatus_AbortDataPhase. The sending side may abort the data phase early by sending a zero-length data packet.

  • The final Generic Response packet sent after the data phase includes the status for the entire operation.

Parent topic:MCU bootloader protocol