blob: 0c409bf0ef035c724f8312a4ced9f600a25eb98f [file] [log] [blame] [view]
Fabio Utzig811205e2017-08-10 14:55:27 -03001# [mcuboot](http://mcuboot.com/)
2
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
Andrzej Puzdrowski39b65182020-11-25 16:44:26 +010019This is mcuboot version 1.8.0-dev
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
David Brown586c84e2019-12-02 12:02:59 -070027hardware porting layers from the operating. Currently, mcuboot works
28with 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)
David Brown4cb70cc2020-05-11 14:10:00 -060040- [Simulator](sim/README.rst)
Carles Cufi3b61e702018-01-23 15:43:46 +010041
Sterling Hughesb6903ec2017-02-07 13:12:19 -080042## Roadmap
43
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020044The issues being planned and worked on are tracked using GitHub issues. To
45participate please visit:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080046
Fabio Utzigde1d72d2020-11-10 12:35:04 -030047[MCUBoot GitHub Issues](https://github.com/mcu-tools/mcuboot/issues)
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020048
49~~Issues were previously tracked on [MCUboot JIRA](https://runtimeco.atlassian.net/projects/MCUB/summary)
50, but it is now deprecated.~~
Sterling Hughesb6903ec2017-02-07 13:12:19 -080051
Fabio Utzig811205e2017-08-10 14:55:27 -030052## Browsing
Sterling Hughesb6903ec2017-02-07 13:12:19 -080053
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020054Information and documentation on the bootloader are stored within the source.
Sterling Hughesb6903ec2017-02-07 13:12:19 -080055
Sigvart M. Hovland68b30532018-09-29 18:58:55 +020056~~It was previously also documented on confluence:
57[MCUBoot Confluence](https://runtimeco.atlassian.net/wiki/discover/all-updates)
58however, it is now deprecated and not currently maintained~~
Sterling Hughesb6903ec2017-02-07 13:12:19 -080059
Fabio Utzig811205e2017-08-10 14:55:27 -030060For more information in the source, here are some pointers:
Sterling Hughesb6903ec2017-02-07 13:12:19 -080061
Fabio Utzigb519ed02018-02-13 14:20:03 -020062- [boot/bootutil](boot/bootutil): The core of the bootloader itself.
63- [boot/boot\_serial](boot/boot_serial): Support for serial upgrade within the bootloader itself.
64- [boot/zephyr](boot/zephyr): Port of the bootloader to Zephyr
65- [boot/mynewt](boot/mynewt): Mynewt bootloader app
Gustavo Henrique Nihei9d67f012021-08-06 16:15:33 -030066- [boot/nuttx](boot/nuttx): Bootloader application and port of MCUboot interfaces for NuttX.
Fabio Utzigb519ed02018-02-13 14:20:03 -020067- [imgtool](scripts/imgtool.py): A tool to securely sign firmware images for booting by mcuboot.
68- [sim](sim): A bootloader simulator for testing and regression
Sterling Hughesb6903ec2017-02-07 13:12:19 -080069
Fabio Utzig74023742017-07-20 09:20:43 -030070## Joining
Sterling Hughesb6903ec2017-02-07 13:12:19 -080071
Fabio Utzig74023742017-07-20 09:20:43 -030072Developers welcome!
Sterling Hughesb6903ec2017-02-07 13:12:19 -080073
Fabio Utzig74023742017-07-20 09:20:43 -030074* Our developer mailing list:
David Browna222bf32020-02-07 11:53:06 -070075 https://groups.io/g/mcuboot
Fabio Utzig83e59292017-07-24 07:59:26 -030076* Our Slack channel: https://mcuboot.slack.com/ <br />
77 Get your invite [here!](https://join.slack.com/t/mcuboot/shared_invite/MjE2NDcwMTQ2MTYyLTE1MDA4MTIzNTAtYzgyZTU0NjFkMg)
Fabio Utzig74023742017-07-20 09:20:43 -030078* Our IRC channel: http://irc.freenode.net, #mcuboot