.. _sec-mcuboot-oad:

Introduction
============

This chapter serves as a guide to the Texas Instruments Over-the-Air Download
(:term:`OAD`) ecosystem including the custom over the air specification,
application architecture, drivers, and middleware. OAD is a device
firmware upgrade method that allows the firmware image running on a device to be
updated over the air while providing power loss protection.

The guide will cover the principles of the OAD process, the out of
the box examples included in the |SDK|, and the process for adding OAD
to an existing project.

The OAD guide chapter will cover:

    - MCUboot and the device startup procedure (see
      :ref:`sec-mcuboot-oad-overview`)
    - OAD image header and how it is populated (see
      :ref:`sec-mcuboot-oad-image-header`)
    - OAD theory of operation and architecture
    - Flash layout for OAD applications
    - Protocol stack specific examples of OAD
    - How to add OAD to an existing sample application.

The supported development kit for OAD is the |LP|. To follow the
procedures listed in this guide, two |LP| development kits are required.
The flow of this document will follow the boot process of the device from
MCUboot to the user application, explaining the concepts as they come up.

.. _sec-mcuboot-oad-topology:

OAD Topology Overview
---------------------

Two wireless devices are required to perform an OAD.
The terms for the devices involved in an OAD exchange are listed below:

    - :term:`OAD Target`
    - :term:`OAD Distributor`

The OAD target is the device that receives the incoming image over the
air. The OAD target is responsible for implementing the protocol stack
specific transport layer that is used for sending and receiving OAD image data.

The OAD distributor is responsible for fragmenting the new firmware image
into protocol stack specific packets and sending them over the air.

.. note::

    The OAD distributor may take any form. Below it is illustrated as a TI
    development kit connected to an associated PC tool, but it can also be a
    mobile device or another TI embedded device that implements the protocol
    specific transport.

:numref:`fig-mcuboot-oad-downloader-and-target` shows a graphical relationship
of the devices required for an OAD transfer.

.. _fig-mcuboot-oad-downloader-and-target:
.. figure:: resources/oad_topology.png
    :align: center

    OAD Distributor and OAD Target
