blob: 0af8a2240ecbd07487084ba9977e5762a0a6c1e0 [file] [log] [blame] [view]
Francesco Servidio4ff0c182021-10-20 15:27:16 +02001# [MCUboot](http://mcuboot.com/)
Fabio Utzig811205e2017-08-10 14:55:27 -03002
Fabio Utzig0be390e2020-11-12 10:45:07 -03003[![Package on PyPI](https://img.shields.io/pypi/v/imgtool.svg)][pypi]
Fabio Utzig811205e2017-08-10 14:55:27 -03004[![Coverity Scan Build Status](https://scan.coverity.com/projects/12307/badge.svg)][coverity]
Fabio Utzig0be390e2020-11-12 10:45:07 -03005[![Build Status (Sim)](https://github.com/mcu-tools/mcuboot/workflows/Sim/badge.svg)][sim]
6[![Build Status (Mynewt)](https://github.com/mcu-tools/mcuboot/workflows/Mynewt/badge.svg)][mynewt]
7[![Publishing Status (imgtool)](https://github.com/mcu-tools/mcuboot/workflows/imgtool/badge.svg)][imgtool]
David Brownfe0bfcf2021-05-14 10:12:10 -06008[![Build Status (Travis CI)](https://img.shields.io/travis/mcu-tools/mcuboot/main.svg?label=travis-ci)][travis]
Fabio Utzig0be390e2020-11-12 10:45:07 -03009[![Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)][license]
Fabio Utzig811205e2017-08-10 14:55:27 -030010
Fabio Utzig0be390e2020-11-12 10:45:07 -030011[pypi]: https://pypi.org/project/imgtool/
Fabio Utzig811205e2017-08-10 14:55:27 -030012[coverity]: https://scan.coverity.com/projects/mcuboot
Fabio Utzigba042982020-11-12 13:17:46 -030013[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 Utzigde1d72d2020-11-10 12:35:04 -030016[travis]: https://travis-ci.org/mcu-tools/mcuboot
David Brownfe0bfcf2021-05-14 10:12:10 -060017[license]: https://github.com/mcu-tools/mcuboot/blob/main/LICENSE
Sterling Hughesb6903ec2017-02-07 13:12:19 -080018
David Brownc657cbe2022-03-01 14:17:19 -070019This is MCUboot version 1.9.0
David Browna3be2642017-07-26 19:02:33 -060020
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010021MCUboot is a secure bootloader for 32-bits microcontrollers. It defines a
22common infrastructure for the bootloader and the system flash layout on
23microcontroller systems, and provides a secure bootloader that enables easy
24software upgrade.
Sterling Hughesb6903ec2017-02-07 13:12:19 -080025
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010026MCUboot is not dependent on any specific operating system and hardware and
27relies on hardware porting layers from the operating system it works with.
28Currently, 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/)
Almir Okato553315c2022-01-26 18:13:50 -030034- [Espressif](https://www.espressif.com/)
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010035- [Cypress/Infineon](https://www.cypress.com/)
Sterling Hughesb6903ec2017-02-07 13:12:19 -080036
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010037RIOT is supported only as a boot target. We will accept any new
38port contributed by the community once it is good enough.
Carles Cufi3b61e702018-01-23 15:43:46 +010039
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010040## MCUboot How-tos
41
42See the following pages for instructions on using MCUboot with different
43operating systems and SoCs:
Carles Cufi3b61e702018-01-23 15:43:46 +010044- [Zephyr](docs/readme-zephyr.md)
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010045- [Apache Mynewt](docs/readme-mynewt.md)
46- [Apache NuttX](docs/readme-nuttx.md)
Carles Cufi3b61e702018-01-23 15:43:46 +010047- [RIOT](docs/readme-riot.md)
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010048- [Mbed OS](docs/readme-mbed.md)
Almir Okato553315c2022-01-26 18:13:50 -030049- [Espressif](docs/readme-espressif.md)
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010050- [Cypress/Infineon](boot/cypress/readme.md)
51
52There are also instructions for the [Simulator](sim/README.rst).
Carles Cufi3b61e702018-01-23 15:43:46 +010053
Sterling Hughesb6903ec2017-02-07 13:12:19 -080054## Roadmap
55
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020056The issues being planned and worked on are tracked using GitHub issues. To
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010057give your input, visit [MCUboot GitHub
58Issues](https://github.com/mcu-tools/mcuboot/issues).
Sterling Hughesb6903ec2017-02-07 13:12:19 -080059
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010060## Source files
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020061
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010062You can find additional documentation on the bootloader in the source files.
63For 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 Hughesb6903ec2017-02-07 13:12:19 -080074
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010075## Joining the project
Sterling Hughesb6903ec2017-02-07 13:12:19 -080076
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010077Developers are welcome!
Sterling Hughesb6903ec2017-02-07 13:12:19 -080078
Francesco Domenico Servidio50f11012021-11-03 13:48:58 +010079Use the following links to join or see more about the project:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080080
Francesco Servidio18488632021-10-20 14:57:50 +020081* [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)