blob: 4f173535be886161ed5aceb603dcc081375fd6d6 [file] [log] [blame]
Marti Bolivarab822642019-01-23 08:31:06 -07001# Copyright (c) 2018 Open Source Foundries Limited.
2# Copyright 2019 Foundries.io
Martí Bolívareb95bed2020-02-10 06:40:29 -08003# Copyright (c) 2020 Nordic Semiconductor ASA
Marti Bolivarab822642019-01-23 08:31:06 -07004#
5# SPDX-License-Identifier: Apache-2.0
6
7'''west "flash" command'''
8
Marti Bolivarab822642019-01-23 08:31:06 -07009from west.commands import WestCommand
10
Torsten Rasmussen8408af62021-11-22 10:29:56 +010011from run_common import add_parser_common, do_run_common, get_build_dir
12from build_helpers import load_domains
Marti Bolivarab822642019-01-23 08:31:06 -070013
14
15class Flash(WestCommand):
16
17 def __init__(self):
18 super(Flash, self).__init__(
19 'flash',
Marti Bolivar808028b2019-01-28 10:45:02 -070020 # Keep this in sync with the string in west-commands.yml.
Marti Bolivarab822642019-01-23 08:31:06 -070021 'flash and run a binary on a board',
Martí Bolívar6e4c2b92020-06-25 12:58:58 -070022 "Permanently reprogram a board's flash with a new binary.",
Marti Bolivarab822642019-01-23 08:31:06 -070023 accepts_unknown_args=True)
Martí Bolívareb95bed2020-02-10 06:40:29 -080024 self.runner_key = 'flash-runner' # in runners.yaml
Marti Bolivarab822642019-01-23 08:31:06 -070025
26 def do_add_parser(self, parser_adder):
Martí Bolívareb95bed2020-02-10 06:40:29 -080027 return add_parser_common(self, parser_adder)
Marti Bolivarab822642019-01-23 08:31:06 -070028
29 def do_run(self, my_args, runner_args):
Torsten Rasmussen8408af62021-11-22 10:29:56 +010030 build_dir = get_build_dir(my_args)
Grzegorz Swiderski05d77692023-09-25 12:45:10 +020031 domains = load_domains(build_dir).get_domains(my_args.domain,
32 default_flash_order=True)
Torsten Rasmussen8408af62021-11-22 10:29:56 +010033 do_run_common(self, my_args, runner_args, domains=domains)