Go to file
Martí Bolívar 6628a16e4d runners: nrfjprog: boilerplate and recover rework
Rework the runner to improve various issues.

Every board.cmake file for an nRF SoC target is repeating boilerplate
needed for the nrfjprog runner's --nrf-family argument. The
information we need to decide the --nrf-family is already available in
Kconfig, so just get it from there instead. Keep the --nrf-family
argument around for compatibility, though.

This cuts boilerplate burden for board maintainers.

We also need to revisit how this runner handles recovery to fix it
in nRF53 and keep things consistent everywhere else.

To cleanly handle additional readback protection features in nRF53,
add a --recover option that does an 'nrfjprog --recover' before
flashing. Keep the behavior consistent across SoCs by supporting it on
those too. Because this is expected to be a bit tricky for users to
understand, check if a --recover is needed if the 'nrfjprog --program'
fails because of protection, and tell the user how to fix it.

Finally, instead of performing a separate 'nrfjprog --eraseall', just
give --chiperase to 'nrfjprog --program' process's arguments instead
of --sectorerase. This is cleaner, resulting in fewer subprocesses and
avoiding an extra chip reset.

Having a separate 'west flash --recover' option doubles the number of
test cases if we want to keep exhaustively enumerating them. That
doesn't feel worthwhile, so update the test cases by picking a
representative subset of the possibilities. Each test now has enough
state that it's worth wrapping it up in a named tuple for readability.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-12-09 15:00:24 -06:00
.buildkite ci: double number of worker for Dec 2020 2020-12-03 14:32:16 -05:00
.github actions: rename jobs 2020-12-09 08:20:38 -05:00
.known-issues doc: update known-issues for Sphinx==3.3.0 2020-11-03 15:27:37 +01:00
arch power: rename _sys_suspend/_sys_resume 2020-12-09 15:18:29 -05:00
boards runners: nrfjprog: boilerplate and recover rework 2020-12-09 15:00:24 -06:00
cmake SPARC: add FPU support 2020-12-04 14:33:43 +02:00
doc power: remove SYS_ and sys_ prefixes 2020-12-09 15:18:29 -05:00
drivers power: remove SYS_ and sys_ prefixes 2020-12-09 15:18:29 -05:00
dts driver: host_uart: Add host-uart device in npcx. 2020-12-09 00:46:57 -05:00
include power: rename _pm_idle_exit_notification_disable 2020-12-09 15:18:29 -05:00
kernel power: cleanup kernel idle and power hooks 2020-12-09 15:18:29 -05:00
lib lib: cbprintf: float conversion optimization and documentation 2020-12-08 14:09:15 -05:00
misc
modules modules/Kconfig.nordic: Allow using direct 802.15.4 calls for nRF53 2020-12-08 10:49:28 -06:00
samples power: pm_force_power_state -> pm_power_state_force 2020-12-09 15:18:29 -05:00
scripts runners: nrfjprog: boilerplate and recover rework 2020-12-09 15:00:24 -06:00
share
soc power: sys_set_power_state -> pm_power_state_set 2020-12-09 15:18:29 -05:00
subsys net: openthread: add missing settings deinit function 2020-12-09 22:53:53 +02:00
tests tests: remove posix from allowed archs 2020-12-09 15:18:29 -05:00
.checkpatch.conf checkpatch: disable PREFER_SECTION 2020-10-30 15:51:46 +01:00
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore
.gitlint
.mailmap
.uncrustify.cfg
CMakeLists.txt cmake: using zephyr_get_compile_options_for_lang_as_string() 2020-12-03 09:23:07 -05:00
CODE_OF_CONDUCT.md
CODEOWNERS boards: arm: nordic: rakwireless Introduce rak5010_nrf52840 board 2020-12-07 14:51:28 -06:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr power: standarize PM Kconfigs and cleanup 2020-12-09 15:18:29 -05:00
LICENSE
MAINTAINERS.yml MAINTAINERS: add missing labels 2020-12-07 13:01:44 -05:00
Makefile
README.rst
VERSION
version.h.in
west.yml samples: net: syslog: Add Docker based testing support 2020-12-09 15:56:44 +02:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a href="https://buildkite.com/zephyr/zephyr">
   <img
   src="https://badge.buildkite.com/f5bd0dc88306cee17c9b38e78d11bb74a6291e3f40e7d13f31.svg?branch=master"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM Cortex-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

.. below included in doc/introduction/introduction.rst

.. start_include_here

Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

Community Support
*****************

Community support is provided via mailing lists and Slack; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI
  (shippable) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Slack Invite: https://tinyurl.com/y5glwylp
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/guides/getting-help.html