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