Difference between revisions of "PineTime bootloader improvements"

Jump to navigation Jump to search
(Add bootloader/application boundaries)
Line 23: Line 23:
* OTA : SECONDARY SLOT for MCUBoot. During OTA, this is where the new version of the firmware is stored.
* OTA : SECONDARY SLOT for MCUBoot. During OTA, this is where the new version of the firmware is stored.
* FS : space available for the application firmware.
* FS : space available for the application firmware.
This memory map allows a strong boundary between the bootloader and the application :
* The bootloader is ran by the MCU at reset time and loads its boot logo from the SPI flash
* The bootloader (MCUBoot) swaps images from primary and secondary slots if necessary
* The bootloader starts the watchdog
* The bootloader jumps to 0x8000 to run the application
The application don't know anything about the bootloader except that:
* it must be linked @0x8000
* it must refresh the watchdog periodically
* it must store the image for OTA at a specific location in the external SPI flash memory
In this configuration, the boot logo is part of the bootloader, not of the application : the same logo will be displayed whatever application firmware will be loaded.


== Changes ==  
== Changes ==  
Line 65: Line 78:
** From InfiniTime to wasp-os : the reloader contains the NRF Bootloader and Softdevice. This bootloader provides the OTA mecanism out of the box. Wasp-os is downloaded when the NRF bootloader is running
** From InfiniTime to wasp-os : the reloader contains the NRF Bootloader and Softdevice. This bootloader provides the OTA mecanism out of the box. Wasp-os is downloaded when the NRF bootloader is running
** From wasp-os to InfiniTime : the reloader contains the factory image (infinitime-factory). The complete version of InfiniTime will be OTAed when this factory image is running.
** From wasp-os to InfiniTime : the reloader contains the factory image (infinitime-factory). The complete version of InfiniTime will be OTAed when this factory image is running.
== Discussions ==
=== Boot Logo : embedded into the bootloader binary vs stored in the external SPI flash ===
=== Fixed vs dynamic memory map ===


[[Category:PineTime]]
[[Category:PineTime]]