Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 1 | # Copyright (c) 2018 Open Source Foundries Limited. |
| 2 | # Copyright 2019 Foundries.io |
Martí Bolívar | eb95bed | 2020-02-10 06:40:29 -0800 | [diff] [blame] | 3 | # Copyright (c) 2020 Nordic Semiconductor ASA |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 4 | # |
| 5 | # SPDX-License-Identifier: Apache-2.0 |
| 6 | |
| 7 | '''west "flash" command''' |
| 8 | |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 9 | from west.commands import WestCommand |
| 10 | |
Torsten Rasmussen | 8408af6 | 2021-11-22 10:29:56 +0100 | [diff] [blame] | 11 | from run_common import add_parser_common, do_run_common, get_build_dir |
| 12 | from build_helpers import load_domains |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 13 | |
| 14 | |
| 15 | class Flash(WestCommand): |
| 16 | |
| 17 | def __init__(self): |
| 18 | super(Flash, self).__init__( |
| 19 | 'flash', |
Marti Bolivar | 808028b | 2019-01-28 10:45:02 -0700 | [diff] [blame] | 20 | # Keep this in sync with the string in west-commands.yml. |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 21 | 'flash and run a binary on a board', |
Martí Bolívar | 6e4c2b9 | 2020-06-25 12:58:58 -0700 | [diff] [blame] | 22 | "Permanently reprogram a board's flash with a new binary.", |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 23 | accepts_unknown_args=True) |
Martí Bolívar | eb95bed | 2020-02-10 06:40:29 -0800 | [diff] [blame] | 24 | self.runner_key = 'flash-runner' # in runners.yaml |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 25 | |
| 26 | def do_add_parser(self, parser_adder): |
Martí Bolívar | eb95bed | 2020-02-10 06:40:29 -0800 | [diff] [blame] | 27 | return add_parser_common(self, parser_adder) |
Marti Bolivar | ab82264 | 2019-01-23 08:31:06 -0700 | [diff] [blame] | 28 | |
| 29 | def do_run(self, my_args, runner_args): |
Torsten Rasmussen | 8408af6 | 2021-11-22 10:29:56 +0100 | [diff] [blame] | 30 | build_dir = get_build_dir(my_args) |
Grzegorz Swiderski | 05d7769 | 2023-09-25 12:45:10 +0200 | [diff] [blame] | 31 | domains = load_domains(build_dir).get_domains(my_args.domain, |
| 32 | default_flash_order=True) |
Torsten Rasmussen | 8408af6 | 2021-11-22 10:29:56 +0100 | [diff] [blame] | 33 | do_run_common(self, my_args, runner_args, domains=domains) |