blob: 0af8a2240ecbd07487084ba9977e5762a0a6c1e0 [file] [log] [blame] [view]
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +03001# [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]
Roman Okhrimenko977b3752022-03-31 14:40:48 +03008[![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
Roman Okhrimenko977b3752022-03-31 14:40:48 +030017[license]: https://github.com/mcu-tools/mcuboot/blob/main/LICENSE
Sterling Hughesb6903ec2017-02-07 13:12:19 -080018
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030019This is MCUboot version 1.9.0
David Browna3be2642017-07-26 19:02:33 -060020
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030021MCUboot 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
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030026MCUboot 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/)
34- [Espressif](https://www.espressif.com/)
35- [Cypress/Infineon](https://www.cypress.com/)
Sterling Hughesb6903ec2017-02-07 13:12:19 -080036
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030037RIOT 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
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030040## 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)
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030045- [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)
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030048- [Mbed OS](docs/readme-mbed.md)
49- [Espressif](docs/readme-espressif.md)
50- [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
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030057give your input, visit [MCUboot GitHub
58Issues](https://github.com/mcu-tools/mcuboot/issues).
Sterling Hughesb6903ec2017-02-07 13:12:19 -080059
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030060## Source files
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020061
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030062You 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
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030075## Joining the project
Sterling Hughesb6903ec2017-02-07 13:12:19 -080076
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030077Developers are welcome!
Sterling Hughesb6903ec2017-02-07 13:12:19 -080078
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030079Use the following links to join or see more about the project:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080080
Roman Okhrimenkodc0ca082023-06-21 20:49:51 +030081* [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)