MCUboot Over-the-Air Download (OAD)
###################################

The following sections aim to describe the lower layers of OAD software that are
common across all protocol stack implementations. This includes the OAD image
header, the flash layout, Secure Bootloader, and the oad image tool.

.. toctree::
    /oad-mcuboot/intro
    /oad-mcuboot/oad-types
    /oad-mcuboot/mcuboot
    /oad-mcuboot/on-chip-stack-library
    /oad-mcuboot/image-header
    /oad-mcuboot/flash-layout-on-chip-stack-library
    /oad-mcuboot/flash-layout-off-chip
    /oad-mcuboot/flash-layout-dual-image-cc23xx
    /oad-mcuboot/imgtool

The following sections aim to describe the |STACK| specific application and
profile layer of the OAD solution. The OAD application section will describe
the BLE OAD process from a high level in terms of events and states, and the
profile section will cover the actual structures that are sent over the air.

.. comment out the OAD doxygen for now
    See :ref:`oad_reference` for more information about the various OAD APIs and
    structures.

.. toctree::
    /ble-stack-oad/mcuboot-oad-application
    /ble-stack-oad/mcuboot-oad-profile

.. _SimpleLink Academy OAD Fundamentals Module: https://dev.ti.com/tirex/explore/node?node=A__AbMoFvWD.bZAg65tD.7NsQ__SIMPLELINK-ACADEMY-CC23XX__gsUPh5j__LATEST

The `SimpleLink Academy OAD Fundamentals Module`_ covers the out of the box
demo for OAD using the |STACK|.
This lab contains the following step by step instructions:

- Anatomy of an OAD

    - Image Header
    - MCUboot Secure Bootloader
    - OAD Memory Layout
    - OAD Protocol/BLE Profile

- Setting up the OAD Environment

    - OAD Distributor Setup
    - OAD Target Setup
    
- Running the OAD Demo

    - Modifying the Image Version
    - OAD using BTool
    - OAD using SimpleLink™ Connect Mobile Application

- Debug an OAD Project
    
   

.. Commenting until BLE OAD advanced for cc23xx is created
    .. commented from here::
        .. _SimpleLink Academy OAD Advanced Module: https://dev.ti.com/tirex/explore/node?node=ACnG5QNDmI2jX1enNwHqCQ__BSEc4rl__LATEST
        
        The `SimpleLink Academy OAD Advanced Module`_ covers these advanced topics and
        instructions:

        - Adding OAD to an Existing Project
        
            - Project Changes
            - Code Changes
        
        - Advanced OAD Debugging
        - Creating a Production Image
        
            - Change to Release BIM
            - Secure OAD: Change default keys
            - Loading a Production Image
            - Combined Production Image
        
        Mobile developers wishing to make applications that integrate the TI OAD
        should refer to the following sample implementations. These are intended
        as reference libraries that implement the TI OAD Downloader for Android and iOS.
        
            - ios-cocoapod-eoad_.
            - android-eoad_
        
        .. _ios-cocoapod-eoad: https://git.ti.com/simplelink-ble-oad-ios
        .. _android-eoad: https://git.ti.com/simplelink-ble-oad-android

        .. note::
        
            The above libraries do not implement full fledged applications, but instead
            are intended to be integrated as part of an end application.
