Francesco Servidio | 4ff0c18 | 2021-10-20 15:27:16 +0200 | [diff] [blame] | 1 | # [MCUboot](http://mcuboot.com/) |
Fabio Utzig | 811205e | 2017-08-10 14:55:27 -0300 | [diff] [blame] | 2 | |
Fabio Utzig | 0be390e | 2020-11-12 10:45:07 -0300 | [diff] [blame] | 3 | [][pypi] |
Fabio Utzig | 811205e | 2017-08-10 14:55:27 -0300 | [diff] [blame] | 4 | [][coverity] |
Fabio Utzig | 0be390e | 2020-11-12 10:45:07 -0300 | [diff] [blame] | 5 | [][sim] |
| 6 | [][mynewt] |
Fabio Utzig | 0d2772c | 2023-08-09 15:05:12 -0300 | [diff] [blame] | 7 | [][espressif] |
Fabio Utzig | 0be390e | 2020-11-12 10:45:07 -0300 | [diff] [blame] | 8 | [][imgtool] |
David Brown | fe0bfcf | 2021-05-14 10:12:10 -0600 | [diff] [blame] | 9 | [][travis] |
Fabio Utzig | 0be390e | 2020-11-12 10:45:07 -0300 | [diff] [blame] | 10 | [][license] |
Fabio Utzig | 811205e | 2017-08-10 14:55:27 -0300 | [diff] [blame] | 11 | |
Fabio Utzig | 0be390e | 2020-11-12 10:45:07 -0300 | [diff] [blame] | 12 | [pypi]: https://pypi.org/project/imgtool/ |
Fabio Utzig | 811205e | 2017-08-10 14:55:27 -0300 | [diff] [blame] | 13 | [coverity]: https://scan.coverity.com/projects/mcuboot |
Fabio Utzig | ba04298 | 2020-11-12 13:17:46 -0300 | [diff] [blame] | 14 | [sim]: https://github.com/mcu-tools/mcuboot/actions?query=workflow:Sim |
| 15 | [mynewt]: https://github.com/mcu-tools/mcuboot/actions?query=workflow:Mynewt |
Fabio Utzig | 0d2772c | 2023-08-09 15:05:12 -0300 | [diff] [blame] | 16 | [espressif]: https://github.com/mcu-tools/mcuboot/actions?query=workflow:Espressif |
Fabio Utzig | ba04298 | 2020-11-12 13:17:46 -0300 | [diff] [blame] | 17 | [imgtool]: https://github.com/mcu-tools/mcuboot/actions?query=workflow:imgtool |
Fabio Utzig | de1d72d | 2020-11-10 12:35:04 -0300 | [diff] [blame] | 18 | [travis]: https://travis-ci.org/mcu-tools/mcuboot |
David Brown | fe0bfcf | 2021-05-14 10:12:10 -0600 | [diff] [blame] | 19 | [license]: https://github.com/mcu-tools/mcuboot/blob/main/LICENSE |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 20 | |
David Brown | 9c99326 | 2024-05-06 09:52:20 -0600 | [diff] [blame] | 21 | This is MCUboot version 2.1.0 |
David Brown | a3be264 | 2017-07-26 19:02:33 -0600 | [diff] [blame] | 22 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 23 | MCUboot is a secure bootloader for 32-bits microcontrollers. It defines a |
| 24 | common infrastructure for the bootloader and the system flash layout on |
| 25 | microcontroller systems, and provides a secure bootloader that enables easy |
| 26 | software upgrade. |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 27 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 28 | MCUboot is not dependent on any specific operating system and hardware and |
| 29 | relies on hardware porting layers from the operating system it works with. |
| 30 | Currently, MCUboot works with the following operating systems and SoCs: |
| 31 | - [Zephyr](https://www.zephyrproject.org/) |
| 32 | - [Apache Mynewt](https://mynewt.apache.org/) |
| 33 | - [Apache NuttX](https://nuttx.apache.org/) |
| 34 | - [RIOT](https://www.riot-os.org/) |
| 35 | - [Mbed OS](https://os.mbed.com/) |
Almir Okato | 553315c | 2022-01-26 18:13:50 -0300 | [diff] [blame] | 36 | - [Espressif](https://www.espressif.com/) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 37 | - [Cypress/Infineon](https://www.cypress.com/) |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 38 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 39 | RIOT is supported only as a boot target. We will accept any new |
| 40 | port contributed by the community once it is good enough. |
Carles Cufi | 3b61e70 | 2018-01-23 15:43:46 +0100 | [diff] [blame] | 41 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 42 | ## MCUboot How-tos |
| 43 | |
| 44 | See the following pages for instructions on using MCUboot with different |
| 45 | operating systems and SoCs: |
Carles Cufi | 3b61e70 | 2018-01-23 15:43:46 +0100 | [diff] [blame] | 46 | - [Zephyr](docs/readme-zephyr.md) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 47 | - [Apache Mynewt](docs/readme-mynewt.md) |
| 48 | - [Apache NuttX](docs/readme-nuttx.md) |
Carles Cufi | 3b61e70 | 2018-01-23 15:43:46 +0100 | [diff] [blame] | 49 | - [RIOT](docs/readme-riot.md) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 50 | - [Mbed OS](docs/readme-mbed.md) |
Almir Okato | 553315c | 2022-01-26 18:13:50 -0300 | [diff] [blame] | 51 | - [Espressif](docs/readme-espressif.md) |
David Brown | e802cd4 | 2022-05-17 08:50:55 -0600 | [diff] [blame] | 52 | - [Cypress/Infineon](boot/cypress/README.md) |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 53 | |
| 54 | There are also instructions for the [Simulator](sim/README.rst). |
Carles Cufi | 3b61e70 | 2018-01-23 15:43:46 +0100 | [diff] [blame] | 55 | |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 56 | ## Roadmap |
| 57 | |
Sigvart M. Hovland | 68b3053 | 2018-09-29 18:58:55 +0200 | [diff] [blame] | 58 | The issues being planned and worked on are tracked using GitHub issues. To |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 59 | give your input, visit [MCUboot GitHub |
| 60 | Issues](https://github.com/mcu-tools/mcuboot/issues). |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 61 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 62 | ## Source files |
Sigvart M. Hovland | 68b3053 | 2018-09-29 18:58:55 +0200 | [diff] [blame] | 63 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 64 | You can find additional documentation on the bootloader in the source files. |
| 65 | For more information, use the following links: |
| 66 | - [boot/bootutil](https://github.com/mcu-tools/mcuboot/tree/main/boot/bootutil) - The core of the bootloader itself. |
| 67 | - [boot/boot\_serial](https://github.com/mcu-tools/mcuboot/tree/main/boot/boot_serial) - Support for serial upgrade within the bootloader itself. |
| 68 | - [boot/zephyr](https://github.com/mcu-tools/mcuboot/tree/main/boot/zephyr) - Port of the bootloader to Zephyr. |
| 69 | - [boot/mynewt](https://github.com/mcu-tools/mcuboot/tree/main/boot/mynewt) - Bootloader application for Apache Mynewt. |
| 70 | - [boot/nuttx](https://github.com/mcu-tools/mcuboot/tree/main/boot/nuttx) - Bootloader application and port of MCUboot interfaces for Apache NuttX. |
| 71 | - [boot/mbed](https://github.com/mcu-tools/mcuboot/tree/main/boot/mbed) - Port of the bootloader to Mbed OS. |
| 72 | - [boot/espressif](https://github.com/mcu-tools/mcuboot/tree/main/boot/espressif) - Bootloader application and MCUboot port for Espressif SoCs. |
| 73 | - [boot/cypress](https://github.com/mcu-tools/mcuboot/tree/main/boot/cypress) - Bootloader application and MCUboot port for Cypress/Infineon SoCs. |
| 74 | - [imgtool](https://github.com/mcu-tools/mcuboot/tree/main/scripts/imgtool.py) - A tool to securely sign firmware images for booting by MCUboot. |
| 75 | - [sim](https://github.com/mcu-tools/mcuboot/tree/main/sim) - A bootloader simulator for testing and regression. |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 76 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 77 | ## Joining the project |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 78 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 79 | Developers are welcome! |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 80 | |
Francesco Domenico Servidio | 50f1101 | 2021-11-03 13:48:58 +0100 | [diff] [blame] | 81 | Use the following links to join or see more about the project: |
Sterling Hughes | b6903ec | 2017-02-07 13:12:19 -0800 | [diff] [blame] | 82 | |
Francesco Servidio | 1848863 | 2021-10-20 14:57:50 +0200 | [diff] [blame] | 83 | * [Our developer mailing list](https://groups.io/g/MCUBoot) |
David Vincze | 8be24f8 | 2024-05-29 14:17:02 +0200 | [diff] [blame^] | 84 | * [Our Discord channel](https://discord.com/channels/1106321706588577904/1106322802308550716) <br /> |
| 85 | Get [your invite](https://discord.com/invite/5PpXhvda5p) |