David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 1 | # MCUboot |
| 2 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 3 | MCUboot is a secure bootloader for 32-bits microcontrollers. |
| 4 | |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 5 | ## Overview |
| 6 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 7 | MCUboot defines a common infrastructure for the bootloader and the system flash |
| 8 | layout on microcontroller systems, and provides a secure bootloader that |
| 9 | enables easy software upgrade. |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 10 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 11 | MCUboot is not dependent on any specific operating system and hardware and |
| 12 | relies on hardware porting layers from the operating system it works with. |
| 13 | Currently MCUboot works with the following operating systems and SoCs: |
| 14 | - [Zephyr](https://www.zephyrproject.org/) |
| 15 | - [Apache Mynewt](https://mynewt.apache.org/) |
| 16 | - [Apache NuttX](https://nuttx.apache.org/) |
| 17 | - [RIOT](https://www.riot-os.org/) |
| 18 | - [Mbed OS](https://os.mbed.com/) |
Almir Okato | 611ea50 | 2022-03-08 01:30:48 -0300 | [diff] [blame] | 19 | - [Espressif](https://www.espressif.com/) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 20 | - [Cypress/Infineon](https://www.cypress.com/) |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 21 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 22 | RIOT is supported only as a boot target. We will accept any new port |
| 23 | contributed by the community once it is good enough. |
| 24 | |
| 25 | MCUboot is an open governance project. See the [membership |
David Brown | 986c212 | 2021-04-01 14:39:23 -0600 | [diff] [blame] | 26 | list](https://github.com/mcu-tools/mcuboot/wiki/Members) for current |
| 27 | members, and the |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 28 | [project charter](https://github.com/mcu-tools/mcuboot/wiki/MCUboot-Project-Charter) |
David Brown | 986c212 | 2021-04-01 14:39:23 -0600 | [diff] [blame] | 29 | for more details. |
| 30 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 31 | ## Documentation |
| 32 | |
| 33 | The MCUboot documentation is composed of the following pages: |
David Brown | d2fcc21 | 2017-09-11 14:47:48 -0600 | [diff] [blame] | 34 | |
Ruth Fuchss | 4023d62 | 2019-11-01 16:32:20 +0100 | [diff] [blame] | 35 | - General - this document |
Fabio Utzig | 4dce6aa | 2018-02-12 15:31:32 -0200 | [diff] [blame] | 36 | - [Release notes](release-notes.md) |
Ruth Fuchss | 4023d62 | 2019-11-01 16:32:20 +0100 | [diff] [blame] | 37 | - [Bootloader design](design.md) |
| 38 | - [Encrypted images](encrypted_images.md) |
| 39 | - [imgtool](imgtool.md) - image signing and key management |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 40 | - [ECDSA](ecdsa.md) - information about ECDSA signature formats |
Andrzej Puzdrowski | 4e9d86a | 2022-09-08 15:51:38 +0200 | [diff] [blame] | 41 | - [Serial Recovery](serial_recovery.md) - MCUmgr as the serial recovery protocol |
Carles Cufi | 3b61e70 | 2018-01-23 15:43:46 +0100 | [diff] [blame] | 42 | - Usage instructions: |
Fabio Utzig | 4dce6aa | 2018-02-12 15:31:32 -0200 | [diff] [blame] | 43 | - [Zephyr](readme-zephyr.md) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 44 | - [Apache Mynewt](readme-mynewt.md) |
| 45 | - [Apache NuttX](readme-nuttx.md) |
Fabio Utzig | 4dce6aa | 2018-02-12 15:31:32 -0200 | [diff] [blame] | 46 | - [RIOT](readme-riot.md) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 47 | - [Mbed OS](readme-mbed.md) |
Almir Okato | 20e0209 | 2022-03-14 13:58:02 -0300 | [diff] [blame] | 48 | - [Espressif](readme-espressif.md) |
hasheddan | 85b4e0b | 2023-01-29 10:45:24 -0500 | [diff] [blame] | 49 | - [Cypress/Infineon](https://github.com/mcu-tools/mcuboot/tree/main/boot/cypress/README.md) |
| 50 | - [Simulator](https://github.com/mcu-tools/mcuboot/tree/main/sim/README.rst) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 51 | - Testing |
| 52 | - [Zephyr](testplan-zephyr.md) - Zephyr test plan |
| 53 | - [Apache Mynewt](testplan-mynewt.md) - Apache Mynewt test plan |
| 54 | - [Release process](release.md) |
| 55 | - [Project security policy](SECURITY.md) |
Ruth Fuchss | 4023d62 | 2019-11-01 16:32:20 +0100 | [diff] [blame] | 56 | - [Patch submission](SubmittingPatches.md) - information |
Francesco Servidio | 4ff0c18 | 2021-10-20 15:27:16 +0200 | [diff] [blame] | 57 | on how to contribute to MCUboot |
David Brown | d2fcc21 | 2017-09-11 14:47:48 -0600 | [diff] [blame] | 58 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 59 | The documentation page about [signed images](signed_images.md) is currently |
| 60 | outdated. Follow the instructions in [imgtool](imgtool.md) instead. |
David Brown | d2fcc21 | 2017-09-11 14:47:48 -0600 | [diff] [blame] | 61 | |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 62 | ## Roadmap |
| 63 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 64 | The issues being planned and worked on are tracked using GitHub issues. To |
| 65 | give your input, visit [MCUboot GitHub |
| 66 | Issues](https://github.com/mcu-tools/mcuboot/issues). |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 67 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 68 | ## Source files |
Sigvart M. Hovland | 68b3053 | 2018-09-29 18:58:55 +0200 | [diff] [blame] | 69 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 70 | You can find additional documentation on the bootloader in the source files. |
| 71 | For more information, use the following links: |
| 72 | - [boot/bootutil](https://github.com/mcu-tools/mcuboot/tree/main/boot/bootutil) - The core of the bootloader itself. |
| 73 | - [boot/boot\_serial](https://github.com/mcu-tools/mcuboot/tree/main/boot/boot_serial) - Support for serial upgrade within the bootloader itself. |
| 74 | - [boot/zephyr](https://github.com/mcu-tools/mcuboot/tree/main/boot/zephyr) - Port of the bootloader to Zephyr. |
| 75 | - [boot/mynewt](https://github.com/mcu-tools/mcuboot/tree/main/boot/mynewt) - Bootloader application for Apache Mynewt. |
| 76 | - [boot/nuttx](https://github.com/mcu-tools/mcuboot/tree/main/boot/nuttx) - Bootloader application and port of MCUboot interfaces for Apache NuttX. |
| 77 | - [boot/mbed](https://github.com/mcu-tools/mcuboot/tree/main/boot/mbed) - Port of the bootloader to Mbed OS. |
| 78 | - [boot/espressif](https://github.com/mcu-tools/mcuboot/tree/main/boot/espressif) - Bootloader application and MCUboot port for Espressif SoCs. |
| 79 | - [boot/cypress](https://github.com/mcu-tools/mcuboot/tree/main/boot/cypress) - Bootloader application and MCUboot port for Cypress/Infineon SoCs. |
| 80 | - [imgtool](https://github.com/mcu-tools/mcuboot/tree/main/scripts/imgtool.py) - A tool to securely sign firmware images for booting by MCUboot. |
| 81 | - [sim](https://github.com/mcu-tools/mcuboot/tree/main/sim) - A bootloader simulator for testing and regression. |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 82 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 83 | ## Joining the project |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 84 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 85 | Developers are welcome! |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 86 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 87 | Use the following links to join or see more about the project: |
David Brown | 12b9ded | 2017-09-11 13:04:34 -0600 | [diff] [blame] | 88 | |
Fabio Utzig | 970840c | 2020-01-22 12:26:04 -0300 | [diff] [blame] | 89 | * [Our developer mailing list](https://groups.io/g/MCUBoot) |
Francesco Servidio | 1848863 | 2021-10-20 14:57:50 +0200 | [diff] [blame] | 90 | * [Our Slack channel](https://mcuboot.slack.com/) <br /> |
| 91 | Get [your invite](https://join.slack.com/t/mcuboot/shared_invite/MjE2NDcwMTQ2MTYyLTE1MDA4MTIzNTAtYzgyZTU0NjFkMg) |
David Brown | 986c212 | 2021-04-01 14:39:23 -0600 | [diff] [blame] | 92 | * [Current members](https://github.com/mcu-tools/mcuboot/wiki/Members) |
| 93 | * [Project charter](https://github.com/mcu-tools/mcuboot/wiki/MCUboot-Project-Charter) |