scripts: runner: dfu-util: add --dfuse-modifiers option

This gives callers finer-grained control over the flash. For example,
giving --dfuse-modifiers=force:mass-erase allows a chip-erase rather
than just erasing the sectors which need to be overwritten with the image.

Signed-off-by: Marti Bolivar <marti@opensourcefoundries.com>
diff --git a/scripts/support/runner/dfu.py b/scripts/support/runner/dfu.py
index d41f162..44276f4 100644
--- a/scripts/support/runner/dfu.py
+++ b/scripts/support/runner/dfu.py
@@ -57,6 +57,11 @@
         parser.add_argument("--dfuse", default=False, action='store_true',
                             help='''set if target is a DfuSe device;
                             implies --dt-flash.''')
+        parser.add_argument("--dfuse-modifiers", default='leave',
+                            help='''colon-separated list of DfuSe modifiers
+                            (default is "leave", which starts execution
+                            immediately); --dfuse must also be given for this
+                            option to take effect.''')
         parser.add_argument('--dfu-util', default='dfu-util',
                             help='dfu-util executable; defaults to "dfu-util"')
 
@@ -69,7 +74,7 @@
             args.dt_flash = True  # --dfuse implies --dt-flash.
             build_conf = BuildConfiguration(os.getcwd())
             dcfg = DfuSeConfig(address=cls.get_flash_address(args, build_conf),
-                               options="leave")
+                               options=args.dfuse_modifiers)
         else:
             dcfg = None