From 83ec35f1852b049b173dcf2937afc83cc737ac30 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 23 Jul 2020 15:37:27 +1000 Subject: [PATCH] tool: Fix 'idf.py bootloader' error if Secure Boot is enabled If Secure Boot is enabled, there's no bootloader flasher arguments in the project (to encourage careful manual flashing), so this command would fail with a KeyError. --- tools/idf.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/idf.py b/tools/idf.py index 0c295feff4..b8c64481d8 100755 --- a/tools/idf.py +++ b/tools/idf.py @@ -462,8 +462,6 @@ def init_cli(verbose_output=None): # Otherwise, if we built any binaries print a message about # how to flash them def print_flashing_message(title, key): - print("\n%s build complete. To flash, run this command:" % title) - with open(os.path.join(args.build_dir, "flasher_args.json")) as f: flasher_args = json.load(f) @@ -471,6 +469,10 @@ def init_cli(verbose_output=None): return _safe_relpath(os.path.join(args.build_dir, f)) if key != "project": # flashing a single item + if key not in flasher_args: + # This is the case for 'idf.py bootloader' if Secure Boot is on, need to follow manual flashing steps + print("\n%s build complete." % title) + return cmd = "" if (key == "bootloader"): # bootloader needs --flash-mode, etc to be passed in cmd = " ".join(flasher_args["write_flash_args"]) + " " @@ -486,6 +488,8 @@ def init_cli(verbose_output=None): for o, f in flash_items: cmd += o + " " + flasher_path(f) + " " + print("\n%s build complete. To flash, run this command:" % title) + print( "%s %s -p %s -b %s --before %s --after %s --chip %s %s write_flash %s" % ( PYTHON,