diff --git a/boards/common/pyocd.board.cmake b/boards/common/pyocd.board.cmake
index 9a2f45f..26b0cc5 100644
--- a/boards/common/pyocd.board.cmake
+++ b/boards/common/pyocd.board.cmake
@@ -1,3 +1,3 @@
 set_ifndef(BOARD_FLASH_RUNNER pyocd)
 set_ifndef(BOARD_DEBUG_RUNNER pyocd)
-board_finalize_runner_args(pyocd) # No default arguments to provide.
+board_finalize_runner_args(pyocd "--dt-flash=y")
diff --git a/scripts/support/runner/pyocd.py b/scripts/support/runner/pyocd.py
index cf17168..afc9d8d 100644
--- a/scripts/support/runner/pyocd.py
+++ b/scripts/support/runner/pyocd.py
@@ -6,8 +6,7 @@
 
 import os
 import sys
-
-from .core import ZephyrBinaryRunner
+from .core import ZephyrBinaryRunner, RunnerCaps, BuildConfiguration
 
 DEFAULT_PYOCD_GDB_PORT = 3333
 
@@ -15,7 +14,8 @@
 class PyOcdBinaryRunner(ZephyrBinaryRunner):
     '''Runner front-end for pyOCD.'''
 
-    def __init__(self, target, flashtool='pyocd-flashtool',
+    def __init__(self, target,
+                 flashtool='pyocd-flashtool', flash_addr=0x0,
                  gdb=None, gdbserver='pyocd-gdbserver',
                  gdb_port=DEFAULT_PYOCD_GDB_PORT, tui=False,
                  bin_name=None, elf_name=None,
@@ -24,6 +24,7 @@
 
         self.target_args = ['-t', target]
         self.flashtool = flashtool
+        self.flash_addr_args = ['-a', hex(flash_addr)] if flash_addr else []
         self.gdb_cmd = [gdb] if gdb is not None else None
         self.gdbserver = gdbserver
         self.gdb_port = gdb_port
@@ -46,6 +47,10 @@
         return 'pyocd'
 
     @classmethod
+    def capabilities(cls):
+        return RunnerCaps(flash_addr=True)
+
+    @classmethod
     def do_add_parser(cls, parser):
         parser.add_argument('--target', required=True,
                             help='target override')
@@ -77,8 +82,12 @@
                       file=sys.stderr)
                 args.daparg = daparg
 
+        build_conf = BuildConfiguration(os.getcwd())
+        flash_addr = cls.get_flash_address(args, build_conf)
+
         return PyOcdBinaryRunner(
-            args.target, flashtool=args.flashtool, gdb=args.gdb,
+            args.target, flashtool=args.flashtool,
+            flash_addr=flash_addr, gdb=args.gdb,
             gdbserver=args.gdbserver, gdb_port=args.gdb_port, tui=args.tui,
             bin_name=args.kernel_bin, elf_name=args.kernel_elf,
             board_id=args.board_id, daparg=args.daparg, debug=args.verbose)
@@ -97,6 +106,7 @@
             raise ValueError('Cannot flash; bin_name is missing')
 
         cmd = ([self.flashtool] +
+               self.flash_addr_args +
                self.daparg_args +
                self.target_args +
                self.board_args +
