2 File Transfer Based Approach to Firmware Updates

The MDFU Protocol uses a Client Update File abstraction to separate out the client application transport details from the client memory update details. The MDFU Protocol fully specifies the process (update algorithms, commands/responses, error handling, etc.) to transfer a Client Update File from a host to the client.

2.1 MDFU File Abstraction Paradigms

The File Transfer Approach to firmware updates used by the MDFU Protocol has a few key paradigms:

  1. The MDFU Protocol and MDFU host have no knowledge of the meaning of the Client Update File contents.
  2. The MDFU host only knows how to transfer the Client Update File to the client.
  3. The Client Firmware Update Code knows how to use the Client Update File contents to update the client firmware.

The format of the Client Update File is an agreement that must exist between the Client Firmware Update Code and the Client Update File. Client Firmware Update Code solutions are responsible for providing a specification for the file format that is used by those Client Firmware Update Code implementations.

2.2 MDFU File Abstraction Benefits

The paradigms listed in the previous section result in the following desirable MDFU Protocol characteristics:

  1. Hosts have universal client device processor support:
    • All client processor specific details (i.e. memory addresses, Flash controller unlock keys, etc.) are kept out of the MDFU Protocol and placed in the Client Update File and Client Firmware Update Code. This allows new client processors to be supported by a host without any modifications to the host. Clients simply need to implement the protocol and then immediately have host support, provided the host has allocated sufficient command/response buffer space to support the client implementation.
  2. Host Simplicity and Stability:
    • The process of transporting a file is well-defined, simple, stable, and client independent.
    • New client specific features can be added by modifying the Client Update File contents without modifying the MDFU protocol or host.
    • Embedded host support is easier to achieve with a simple transport protocol where the host is only responsible for Client Update File transport.
    • Host simplicity and stability reduces version compatibility issues between hosts and clients.