2017-09-12 03:04:34 +08:00
|
|
|
# MCUboot
|
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
MCUboot is a secure bootloader for 32-bits microcontrollers.
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
## Overview
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
MCUboot defines a common infrastructure for the bootloader and the system flash
|
|
|
|
layout on microcontroller systems, and provides a secure bootloader that
|
|
|
|
enables easy software upgrade.
|
|
|
|
|
|
|
|
MCUboot is not dependent on any specific operating system and hardware and
|
|
|
|
relies on hardware porting layers from the operating system it works with.
|
|
|
|
Currently MCUboot works with the following operating systems and SoCs:
|
|
|
|
- [Zephyr](https://www.zephyrproject.org/)
|
|
|
|
- [Apache Mynewt](https://mynewt.apache.org/)
|
|
|
|
- [Apache NuttX](https://nuttx.apache.org/)
|
|
|
|
- [RIOT](https://www.riot-os.org/)
|
|
|
|
- [Mbed OS](https://os.mbed.com/)
|
2022-03-08 12:30:48 +08:00
|
|
|
- [Espressif](https://www.espressif.com/)
|
2021-11-03 20:48:58 +08:00
|
|
|
- [Cypress/Infineon](https://www.cypress.com/)
|
|
|
|
|
|
|
|
RIOT is supported only as a boot target. We will accept any new port
|
|
|
|
contributed by the community once it is good enough.
|
|
|
|
|
|
|
|
MCUboot is an open governance project. See the [membership
|
2021-04-02 04:39:23 +08:00
|
|
|
list](https://github.com/mcu-tools/mcuboot/wiki/Members) for current
|
|
|
|
members, and the
|
2021-11-03 20:48:58 +08:00
|
|
|
[project charter](https://github.com/mcu-tools/mcuboot/wiki/MCUboot-Project-Charter)
|
2021-04-02 04:39:23 +08:00
|
|
|
for more details.
|
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
## Documentation
|
|
|
|
|
|
|
|
The MCUboot documentation is composed of the following pages:
|
2017-09-12 04:47:48 +08:00
|
|
|
|
2019-11-01 23:32:20 +08:00
|
|
|
- General - this document
|
2018-02-13 01:31:32 +08:00
|
|
|
- [Release notes](release-notes.md)
|
2019-11-01 23:32:20 +08:00
|
|
|
- [Bootloader design](design.md)
|
|
|
|
- [Encrypted images](encrypted_images.md)
|
|
|
|
- [imgtool](imgtool.md) - image signing and key management
|
2021-11-03 20:48:58 +08:00
|
|
|
- [ECDSA](ecdsa.md) - information about ECDSA signature formats
|
2022-09-08 21:51:38 +08:00
|
|
|
- [Serial Recovery](serial_recovery.md) - MCUmgr as the serial recovery protocol
|
2018-01-23 22:43:46 +08:00
|
|
|
- Usage instructions:
|
2018-02-13 01:31:32 +08:00
|
|
|
- [Zephyr](readme-zephyr.md)
|
2021-11-03 20:48:58 +08:00
|
|
|
- [Apache Mynewt](readme-mynewt.md)
|
|
|
|
- [Apache NuttX](readme-nuttx.md)
|
2018-02-13 01:31:32 +08:00
|
|
|
- [RIOT](readme-riot.md)
|
2021-11-03 20:48:58 +08:00
|
|
|
- [Mbed OS](readme-mbed.md)
|
2022-03-15 00:58:02 +08:00
|
|
|
- [Espressif](readme-espressif.md)
|
2023-01-29 23:45:24 +08:00
|
|
|
- [Cypress/Infineon](https://github.com/mcu-tools/mcuboot/tree/main/boot/cypress/README.md)
|
|
|
|
- [Simulator](https://github.com/mcu-tools/mcuboot/tree/main/sim/README.rst)
|
2017-09-12 04:47:48 +08:00
|
|
|
- Testing
|
2021-11-03 20:48:58 +08:00
|
|
|
- [Zephyr](testplan-zephyr.md) - Zephyr test plan
|
|
|
|
- [Apache Mynewt](testplan-mynewt.md) - Apache Mynewt test plan
|
2019-11-01 23:32:20 +08:00
|
|
|
- [Release process](release.md)
|
2021-11-03 20:48:58 +08:00
|
|
|
- [Project security policy](SECURITY.md)
|
|
|
|
- [Patch submission](SubmittingPatches.md) - information
|
|
|
|
on how to contribute to MCUboot
|
2017-09-12 04:47:48 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
The documentation page about [signed images](signed_images.md) is currently
|
|
|
|
outdated. Follow the instructions in [imgtool](imgtool.md) instead.
|
2017-09-12 04:47:48 +08:00
|
|
|
|
2017-09-12 03:04:34 +08:00
|
|
|
## Roadmap
|
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
The issues being planned and worked on are tracked using GitHub issues. To
|
|
|
|
give your input, visit [MCUboot GitHub
|
|
|
|
Issues](https://github.com/mcu-tools/mcuboot/issues).
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
## Source files
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
You can find additional documentation on the bootloader in the source files.
|
|
|
|
For more information, use the following links:
|
|
|
|
- [boot/bootutil](https://github.com/mcu-tools/mcuboot/tree/main/boot/bootutil) - The core of the bootloader itself.
|
|
|
|
- [boot/boot\_serial](https://github.com/mcu-tools/mcuboot/tree/main/boot/boot_serial) - Support for serial upgrade within the bootloader itself.
|
|
|
|
- [boot/zephyr](https://github.com/mcu-tools/mcuboot/tree/main/boot/zephyr) - Port of the bootloader to Zephyr.
|
|
|
|
- [boot/mynewt](https://github.com/mcu-tools/mcuboot/tree/main/boot/mynewt) - Bootloader application for Apache Mynewt.
|
|
|
|
- [boot/nuttx](https://github.com/mcu-tools/mcuboot/tree/main/boot/nuttx) - Bootloader application and port of MCUboot interfaces for Apache NuttX.
|
|
|
|
- [boot/mbed](https://github.com/mcu-tools/mcuboot/tree/main/boot/mbed) - Port of the bootloader to Mbed OS.
|
|
|
|
- [boot/espressif](https://github.com/mcu-tools/mcuboot/tree/main/boot/espressif) - Bootloader application and MCUboot port for Espressif SoCs.
|
|
|
|
- [boot/cypress](https://github.com/mcu-tools/mcuboot/tree/main/boot/cypress) - Bootloader application and MCUboot port for Cypress/Infineon SoCs.
|
|
|
|
- [imgtool](https://github.com/mcu-tools/mcuboot/tree/main/scripts/imgtool.py) - A tool to securely sign firmware images for booting by MCUboot.
|
|
|
|
- [sim](https://github.com/mcu-tools/mcuboot/tree/main/sim) - A bootloader simulator for testing and regression.
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
## Joining the project
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
Developers are welcome!
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2021-11-03 20:48:58 +08:00
|
|
|
Use the following links to join or see more about the project:
|
2017-09-12 03:04:34 +08:00
|
|
|
|
2020-01-22 23:26:04 +08:00
|
|
|
* [Our developer mailing list](https://groups.io/g/MCUBoot)
|
2024-05-29 20:17:02 +08:00
|
|
|
* [Our Discord channel](https://discord.com/channels/1106321706588577904/1106322802308550716) <br />
|
|
|
|
Get [your invite](https://discord.com/invite/5PpXhvda5p)
|
2021-04-02 04:39:23 +08:00
|
|
|
* [Current members](https://github.com/mcu-tools/mcuboot/wiki/Members)
|
|
|
|
* [Project charter](https://github.com/mcu-tools/mcuboot/wiki/MCUboot-Project-Charter)
|