runners: stlink_gdbserver: expose --external-init as runner argument

3cc9a843e8154612f71d249f79458d69b3a1edd9 added '--external-init' to the GDB
Server command line whenever an external loader is provided, but it is not
a *necessary* argument and sometimes causes issues.

Provide a new runner argument "--external-init" (for consistency) which
controls whether or not the argument is added to command line if an
external loader is used. (It is otherwise ignored)

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
diff --git a/scripts/west_commands/runners/stlink_gdbserver.py b/scripts/west_commands/runners/stlink_gdbserver.py
index 213f61e..94d953f 100644
--- a/scripts/west_commands/runners/stlink_gdbserver.py
+++ b/scripts/west_commands/runners/stlink_gdbserver.py
@@ -112,11 +112,22 @@
             default=STLINK_GDB_SERVER_DEFAULT_PORT,
             help="Port number for GDB client",
         )
+        parser.add_argument(
+            "--external-init",
+            action='store_true',
+            help="Run Init() from external loader after reset",
+        )
 
     @classmethod
     def do_create(cls, cfg: RunnerConfig, args: argparse.Namespace) -> "STLinkGDBServerRunner":
         return STLinkGDBServerRunner(
-            cfg, args.swd, args.apid, args.dev_id, args.port_number, args.extload
+            cfg,
+            args.swd,
+            args.apid,
+            args.dev_id,
+            args.port_number,
+            args.extload,
+            args.external_init,
         )
 
     def __init__(
@@ -127,6 +138,7 @@
         stlink_serial: str | None,
         gdb_port: int,
         external_loader: str | None,
+        external_init: bool,
     ):
         super().__init__(cfg)
         self.ensure_output('elf')
@@ -136,6 +148,7 @@
         self._stlink_serial = stlink_serial
         self._ap_id = ap_id
         self._external_loader = external_loader
+        self._do_external_init = external_init
 
     def do_run(self, command: str, **kwargs):
         if command in ["attach", "debug", "debugserver"]:
@@ -177,7 +190,9 @@
             extldr_path = cubeprg_path / "ExternalLoader" / self._external_loader
             if not extldr_path.exists():
                 raise RuntimeError(f"External loader {self._external_loader} does not exist")
-            gdbserver_cmd += ["--external-init"]
+
+            if self._do_external_init:
+                gdbserver_cmd += ["--external-init"]
             gdbserver_cmd += ["--extload", str(extldr_path)]
 
         self.require(gdbserver_cmd[0])