zephyr/boards/arm/actinius_icarus
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
..
doc boards: arm: actinius_icarus: add docs portal link, image, description 2020-10-21 07:13:49 -05:00
actinius_icarus_common.dts boards: arm: actinius_icarus: fix partition sizes for SPU compatibility 2020-10-21 07:13:49 -05:00
actinius_icarus_defconfig boards: arm: actinius_icarus: turn on hardware stack protection 2020-10-21 07:13:49 -05:00
actinius_icarus_ns_defconfig boards: arm: actinius_icarus: turn on hardware stack protection 2020-10-21 07:13:49 -05:00
actinius_icarus_ns.dts
actinius_icarus_ns.yaml boards: arm: actinius_icarus: fix partition sizes for SPU compatibility 2020-10-21 07:13:49 -05:00
actinius_icarus_partition_conf.dts boards: arm: actinius_icarus: fix partition sizes for SPU compatibility 2020-10-21 07:13:49 -05:00
actinius_icarus.dts boards: arm: actinius_icarus: update RAM partitions in DTS 2020-10-21 07:13:49 -05:00
actinius_icarus.yaml boards: arm: actinius_icarus: update supported board capabilities 2020-10-21 07:13:49 -05:00
board.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
board.cmake runners: nrfjprog: boilerplate and recover rework 2020-12-09 15:00:24 -06:00
CMakeLists.txt
feather_connector.dtsi boards: arm: actinius_icarus: add feather and arduino related aliases 2020-10-21 07:13:49 -05:00
Kconfig kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.board kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.defconfig boards: arm: nrf: Remove Kconfig PWM_[0-3] usage 2020-05-05 08:40:19 -05:00