1.9 OTA Bootloader
The OTA bootloader Library can be used to upgrade firmware on a target device without the need for an external programmer or debugger.
Features
Supported on CORTEX-M and MIPS based MCUs, and MPUs
For MCUs, Bootloader uses dual bank Flash memory or external memory to store the application image
Dual Bank Flash Memory: Uses Harmony 3 NVM/NVMCTRL/EFC peripheral library to communicate with the internal dual bank Flash memory
External Memory: Uses Harmony 3 Serial Memory drivers to communicate with the associated serial memory. Below are the serial memory drivers used.
I2C EEPROM: AT24 Driver
SPI EEPROM: AT25 Driver
SPI Flash: SST26 Driver
QSPI Flash: SST26 Driver
For MPUs, Bootloader uses SD Card/NAND/Serial Flash memory to store the OTA application image
OTA Bootloader With Dual Bank Flash Memory (For MCUs)

- Bootloader Task (Dual Bank)
Uses Harmony 3 NVM/NVMCTRL/EFC peripheral library to read the control block (Metadata) stored in dual bank Flash memory
Checks for update in control block (Metadata)
Updates control block (Metadata) in dual bank Flash memory, swap bank and trigger reset
Jumps to the Application
Runs in Cooperative mode with other tasks in the system
OTA Bootloader With External Memory (For MCUs)

- Bootloader Task (External Memory)
Uses Serial Memory driver to read the control block (Metadata) stored in external memory
Checks for update in control block (Metadata)
Reads the application binary stored in external memory
Erases the Internal Flash memory
Programs the read binary into Flash memory
Verifies the programed application
Updates the control block (Metadata) in external memory
Jumps to the Application
Runs in Cooperative mode with other tasks in the system
OTA Bootloader With External Memory (For MPUs)

AT91Bootstrap loads MPU OTA bootloader from SD Card/NAND/Serial Flash memory to DDR memory and executes it
MPU OTA Bootloader Task
Reads the metadata (image size) stored in the external memory
Reads the OTA application binary stored from the external memory and Programs the binary to the DDR memory
Jumps to the OTA Application
Runs in Cooperative mode with other tasks in the system
