AN772: Using the Ember Application Bootloader
his document describes some of the specific types of legacy Ember Application Bootloaders released by Silicon Labs. For general information about bootloaders and how an application bootloader compares with a standalone bootloader, see UG103.6: Application Development Fundamentals: Bootloading.
A bootloader is a program stored in reserved flash memory that can initialize a device, update firmware images, and possibly perform some integrity checks. Silicon Labs networking devices use bootloaders that perform firmware updates in two different modes: standalone (also called standalone bootloaders) and application (also called application bootloaders). A standalone bootloader is a program that uses an external communication interface, such as UART or SPI, to get a firmware update image. NCPs (Network Coprocessors) only support standalone bootloaders. An application bootloader performs a firmware image update by reprogramming the flash with an update image stored in internal or external memory. Application bootloaders can only be used on SoC (System-on-Chip) devices.
In March of 2017, Silicon Labs introduced the Gecko Bootloader, a code library configurable through Simplicity Studio’s IDE to generate bootloaders that can be used with a variety of Silicon Labs protocol stacks. The SoC model dictates which bootloader must be used. Legacy Ember application bootloaders must be used with all EM3x SoCs. The Gecko Bootloader must be used with all EFR32 SoCs.
An application bootloader begins the firmware update process after the running application has completely downloaded the update image file to a download space. Typically this download space is an external memory device like a dataflash or EEPROM, but, on SoC devices with larger memory capacity, the download space can be a portion of the SoC's internal flash memory. Legacy Ember application bootloader update images must be in the EBL format and stored starting at the logical beginning of the download space. Ember application bootloaders do not support bootloading from multiple images stored in the download space, although it is possible for the application to store as many images as will fit. Note, however, that the Gecko Bootloader can be configured to access multiple images from the download space.
Since acquiring the image is the responsibility of the application, application bootloaders in general are simpler and more flexible than standalone boot- loaders. The application is free to upload the new image to the download space any way it wants. The image could come over-the-air from multiple hops away, over a physical connection like the serial port or USB, or anything else the application developer can think of. The application is also free to take as much time as necessary to upload the new image in the background and only program it once ready. The stored image could even be in an encrypted form if the secure application bootloader is used.
Since the new image is stored externally, the current application isn't overwritten until the new image has been successfully saved and verified. If something goes wrong during the update process, the bootloader will automatically try to bootload the image again when restarted. In the unlikely event that both the application image and the image in the download space become corrupted, a legacy Ember application bootloaders can enter a failsafe recovery mode.
The main downside of an application bootloader is that some storage space must be allocated for the download space. In the case of a local storage bootloader, this uses up some quantity of flash that could otherwise be used for the application. In external application bootloader configurations, an external data storage part must be added to the design, which increases the cost.
All application bootloaders are very closely related to each other, but they are generally organized along two dimensions: external versus local storage, and unencrypted versus secure (encrypted).
KEY POINTS:
• Describes the principles of the application bootloader model compared to the standalone bootloader model.
• Compares and contrasts the available Ember application bootloader variants.
• Lists supported drivers and model numbers for external storage options.
EFR32 、 EM35x 、 EM3x 、 EFR32MG 、 MX25R 、 MX25R8035F 、 MX25R6435F 、 M24M02-DR 、 AT45DB021D 、 AT45DB021E 、 M45PE20-VMN6TP 、 MX25L2006EM1I-12G 、 MX25L2006EM1R-12G 、 MX25L4006E 、 MX25L8006EM1I-12G 、 MX25L8006EM1R-12G 、 W25X20BVSNIG 、 W25X20CVSNJG 、 W25Q80BVSNIG 、 W25Q80BVSNJG 、 S25FL208K 、 MX25L1606E 、 MX25U1635E 、 AT25DF041A 、 AT25DF081A 、 AT25SDF041 、 M25P20 、 M25P40 、 M25P80 、 M25P16 、 IS25LQ025B 、 IS25LQ512B 、 IS25LQ010B 、 IS25LQ020B 、 IS25LQ040B 、 EM358x 、 EM359x |
|
|
|
Application note & Design Guide |
|
|
|
Please see the document for details |
|
|
|
|
|
|
|
English Chinese Chinese and English Japanese |
|
|
|
Rev. 0.9 |
|
AN772 |
|
686 KB |
- +1 Like
- Add to Favorites
Recommend
All reproduced articles on this site are for the purpose of conveying more information and clearly indicate the source. If media or individuals who do not want to be reproduced can contact us, which will be deleted.