Jump to main content

# 1.1.1 How the UART Bootloader library works

The UART Bootloader firmware communicates with the personal computer host application by using a predefined communication protocol.

The UART Bootloader works in two different modes

Basic Mode

- This mode is supported for all the devices

- Resides from

  - The starting location of the flash memory region for CORTEX-M based MCUs

  - The starting location of the Boot flash memory region for MIPS based MCUs devices

  - Bootloader stored into SD/eMMC/NAND/Serial flash memory for MPUs devices and it executes from DDR memory. AT91Bootstrap loads bootloader from SD/eMMC/NAND/Serial flash memory to DDR memory and executes it

- The Bootloader performs flash erase/program/verify operations with the binary sent from host while in the firmware upgrade mode

  - The binary sent is only of the application to be programmed
  - Bootloader always performs flash operation on MCU devices from the address for (bootloader or application) binary sent from host
  - The application can use the entire flash memory region starting from the end of bootloader space

- Jumps to the application once verification is completed

Fail Safe Update Mode

- This mode is supported for the devices which have a Dual Bank flash memory

- Resides from the starting location of the flash memory region of both the banks on CORTEX-M based MCUs

- The Bootloader performs flash erase/program/verify operations with the binary sent from host while in the firmware upgrade mode

  - Bootloader can perform flash operation in either of the banks based on the address sent by the host application

  - The application can use only the flash memory region of one bank.

- Performs a bank swap and reset to run the application programmed in inactive bank once verification is completed or a normal reset to run the application in current bank based on command sent from host

Rev: F