blob: 53a039710821aa41613f7e3442ef5f74392eb0c2 [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
Francesco Servidio4ff0c182021-10-20 15:27:16 +020019This is MCUboot version 1.8.0
David Browna3be2642017-07-26 19:02:33 -060020
David Brown586c84e2019-12-02 12:02:59 -070021MCUboot is a secure bootloader for 32-bit MCUs. The goal of MCUboot is to
Fabio Utzig811205e2017-08-10 14:55:27 -030022define a common infrastructure for the bootloader, system flash layout on
23microcontroller systems, and to provide a secure bootloader that enables
David Brown586c84e2019-12-02 12:02:59 -070024simple software upgrades.
Sterling Hughesb6903ec2017-02-07 13:12:19 -080025
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020026MCUboot is operating system and hardware independent and relies on
Francesco Servidio4ff0c182021-10-20 15:27:16 +020027hardware porting layers from the operating. Currently, MCUboot works
David Brown586c84e2019-12-02 12:02:59 -070028with both the Apache Mynewt and Zephyr operating systems, but more
29ports are planned in the future. RIOT is currently supported as a boot
Fabio Utzig756ca862017-07-20 13:38:22 -030030target with a complete port planned.
Sterling Hughesb6903ec2017-02-07 13:12:19 -080031
Carles Cufi3b61e702018-01-23 15:43:46 +010032## Using MCUboot
33
34Instructions for different operating systems can be found here:
35- [Zephyr](docs/readme-zephyr.md)
36- [Mynewt](docs/readme-mynewt.md)
37- [RIOT](docs/readme-riot.md)
George Beckstein1c399bb2020-11-05 00:51:09 -050038- [Mbed-OS](docs/readme-mbed.md)
Gustavo Henrique Nihei9d67f012021-08-06 16:15:33 -030039- [NuttX](docs/readme-nuttx.md)
Almir Okatod3632482021-08-23 14:12:16 -030040- [Espressif IDF](docs/readme-espressif.md)
David Brown4cb70cc2020-05-11 14:10:00 -060041- [Simulator](sim/README.rst)
Carles Cufi3b61e702018-01-23 15:43:46 +010042
Sterling Hughesb6903ec2017-02-07 13:12:19 -080043## Roadmap
44
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020045The issues being planned and worked on are tracked using GitHub issues. To
46participate please visit:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080047
Francesco Servidio4ff0c182021-10-20 15:27:16 +020048[MCUboot GitHub Issues](https://github.com/mcu-tools/mcuboot/issues)
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020049
50~~Issues were previously tracked on [MCUboot JIRA](https://runtimeco.atlassian.net/projects/MCUB/summary)
51, but it is now deprecated.~~
Sterling Hughesb6903ec2017-02-07 13:12:19 -080052
Fabio Utzig811205e2017-08-10 14:55:27 -030053## Browsing
Sterling Hughesb6903ec2017-02-07 13:12:19 -080054
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020055Information and documentation on the bootloader are stored within the source.
Sterling Hughesb6903ec2017-02-07 13:12:19 -080056
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020057~~It was previously also documented on confluence:
Francesco Servidio4ff0c182021-10-20 15:27:16 +020058[MCUboot Confluence](https://runtimeco.atlassian.net/wiki/discover/all-updates)
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020059however, it is now deprecated and not currently maintained~~
Sterling Hughesb6903ec2017-02-07 13:12:19 -080060
Fabio Utzig811205e2017-08-10 14:55:27 -030061For more information in the source, here are some pointers:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080062
Fabio Utzigb519ed02018-02-13 14:20:03 -020063- [boot/bootutil](boot/bootutil): The core of the bootloader itself.
64- [boot/boot\_serial](boot/boot_serial): Support for serial upgrade within the bootloader itself.
65- [boot/zephyr](boot/zephyr): Port of the bootloader to Zephyr
66- [boot/mynewt](boot/mynewt): Mynewt bootloader app
Gustavo Henrique Nihei9d67f012021-08-06 16:15:33 -030067- [boot/nuttx](boot/nuttx): Bootloader application and port of MCUboot interfaces for NuttX.
Almir Okatod3632482021-08-23 14:12:16 -030068- [boot/espressif](boot/espressif): Bootloader application and MCUboot port for Espressif SoCs.
Francesco Servidio4ff0c182021-10-20 15:27:16 +020069- [imgtool](scripts/imgtool.py): A tool to securely sign firmware images for booting by MCUboot.
Fabio Utzigb519ed02018-02-13 14:20:03 -020070- [sim](sim): A bootloader simulator for testing and regression
Sterling Hughesb6903ec2017-02-07 13:12:19 -080071
Fabio Utzig74023742017-07-20 09:20:43 -030072## Joining
Sterling Hughesb6903ec2017-02-07 13:12:19 -080073
Fabio Utzig74023742017-07-20 09:20:43 -030074Developers welcome!
Sterling Hughesb6903ec2017-02-07 13:12:19 -080075
Francesco Servidio18488632021-10-20 14:57:50 +020076* [Our developer mailing list](https://groups.io/g/MCUBoot)
77* [Our Slack channel](https://mcuboot.slack.com/) <br />
78 Get [your invite](https://join.slack.com/t/mcuboot/shared_invite/MjE2NDcwMTQ2MTYyLTE1MDA4MTIzNTAtYzgyZTU0NjFkMg)