The legacy macros were first deprecated in Zephyr v2.3. Now that Zephyr v2.4 has been released, that makes two releases where these macros have been deprecated, so it's OK to remove them. This leaves support for legacy binding syntax in place. Removing that is left to future work. We need to update various pieces of documentation related to flash partitions that never got updated when the new API was introduced. Consolidate this information in the flash_map.h API reference page, since that's really where users will run into it. This also gives us the opportunity to improve this documentation. Adjust a couple of kconfigfunctions.py and sanitycheck bits to use non-legacy edtlib APIs. Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
53 lines
1.9 KiB
ReStructuredText
53 lines
1.9 KiB
ReStructuredText
.. _dfu:
|
|
|
|
Device Firmware Upgrade
|
|
#######################
|
|
|
|
Overview
|
|
********
|
|
|
|
The Device Firmware Upgrade subsystem provides the necessary frameworks to
|
|
upgrade the image of a Zephyr-based application at run time. It currently
|
|
consists of two different modules:
|
|
|
|
* :zephyr_file:`subsys/dfu/boot/`: Interface code to bootloaders
|
|
* :zephyr_file:`subsys/dfu/img_util/`: Image management code
|
|
|
|
The DFU subsystem deals with image management, but not with the transport
|
|
or management protocols themselves required to send the image to the target
|
|
device. For information on these protocols and frameworks please refer to the
|
|
:ref:`device_mgmt` section.
|
|
|
|
Bootloaders
|
|
***********
|
|
|
|
.. _mcuboot:
|
|
|
|
MCUboot
|
|
=======
|
|
|
|
Zephyr is directly compatible with the open source, cross-RTOS
|
|
`MCUboot boot loader`_. It interfaces with MCUboot and is aware of the image
|
|
format required by it, so that Device Firmware Upgrade is available when MCUboot
|
|
is the boot loader used with Zephyr. The source code itself is hosted in the
|
|
`MCUboot GitHub Project`_ page.
|
|
|
|
In order to use MCUboot with Zephyr you need to take the following into account:
|
|
|
|
1. You will need to define the flash partitions required by MCUboot; see
|
|
:ref:`flash_map_api` for details.
|
|
2. Your application's :file:`.conf` file needs to enable the
|
|
:option:`CONFIG_BOOTLOADER_MCUBOOT` Kconfig option in order for Zephyr to
|
|
be built in an MCUboot-compatible manner
|
|
3. You need to build and flash MCUboot itself on your device
|
|
4. You might need to take precautions to avoid mass erasing the flash and also
|
|
to flash the Zephyr application image at the correct offset (right after the
|
|
bootloader)
|
|
|
|
More detailed information regarding the use of MCUboot with Zephyr can be found
|
|
in the `MCUboot with Zephyr`_ documentation page on the MCUboot website.
|
|
|
|
.. _MCUboot boot loader: https://mcuboot.com/
|
|
.. _MCUboot with Zephyr: https://mcuboot.com/mcuboot/readme-zephyr.html
|
|
.. _MCUboot GitHub Project: https://github.com/runtimeco/mcuboot
|