diff --git a/.github/workflows/boards_build.yml b/.github/workflows/boards_build.yml
index ef71f425d2bf929f569e2932838d7f6ea2be30c0..0a8fbebb7e1886443fc9a6e67ef36d4f53adca0d 100644
--- a/.github/workflows/boards_build.yml
+++ b/.github/workflows/boards_build.yml
@@ -26,6 +26,12 @@ jobs:
         run: python -m pip install --upgrade pip setuptools wheel
       - name: Set up OpenSK
         run: ./setup.sh
+
+      - name: Building board nrf52840_dongle_dfu
+        run: ./deploy.py --board=nrf52840_dongle_dfu --no-app --programmer=none
+      - name: Building board nrf52840_mdk_dfu
+        run: ./deploy.py --board=nrf52840_mdk_dfu --no-app --programmer=none
+
       - name: Create a long build directory
         run: mkdir this-is-a-long-build-directory-0123456789abcdefghijklmnopqrstuvwxyz && mv third_party this-is-a-long-build-directory-0123456789abcdefghijklmnopqrstuvwxyz/
 
diff --git a/.vscode/settings.json b/.vscode/settings.json
index ff197f1420b30bf157cba0ad594d91a36344a81a..16666833b87006eea09cefb03bbb9a602a18b45e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -20,6 +20,7 @@
   "python.linting.enabled": true,
   "python.linting.lintOnSave": true,
   "python.linting.pylintEnabled": true,
+  "python.linting.pylintPath": "pylint",
   "[python]": {
     "editor.tabSize": 2
   },
diff --git a/deploy.py b/deploy.py
index fbf1b63ad1cb4e4c4fd0886cb6f6d534258687ac..27e750929e64314cfdc8422269374a5f12bf2f22 100755
--- a/deploy.py
+++ b/deploy.py
@@ -41,15 +41,19 @@ PROGRAMMERS = frozenset(("jlink", "openocd", "pyocd", "nordicdfu", "none"))
 OpenSKBoard = collections.namedtuple(
     "OpenSKBoard",
     [
-        # Location of the Tock board (where the Makefile file is
+        # Location of the Tock board (where the Makefile file is)
         "path",
-        # Targeted architecture (e.g. thumbv7em-none-eabi)
+        # Target architecture (e.g. thumbv7em-none-eabi)
         "arch",
         # Size of 1 page of flash memory
         "page_size",
         # Flash address at which the kernel will be written
         "kernel_address",
-        # Set to None is padding is not required for the board
+        # Set to None is padding is not required for the board.
+        # This creates a fake Tock OS application that starts at the
+        # address specified by this parameter (must match the `prog` value
+        # specified on the board's `layout.ld` file) and will end at
+        # `app_address`.
         "padding_address",
         # Linker script to produce a working app for this board
         "app_ldscript",
@@ -293,9 +297,8 @@ class OpenSKInstaller:
       # Need to update
       self.checked_command_output(
           ["rustup", "install", target_toolchain_fullstring])
-    targets = {x.arch for x in SUPPORTED_BOARDS.values()}
-    for arch in targets:
-      self.checked_command_output(["rustup", "target", "add", arch])
+    self.checked_command_output(
+        ["rustup", "target", "add", SUPPORTED_BOARDS[self.args.board].arch])
     info("Rust toolchain up-to-date")
 
   def build_tockos(self):
@@ -427,7 +430,7 @@ class OpenSKInstaller:
     try:
       tock.flash_binary(kernel, board_props.kernel_address)
     except TockLoaderException as e:
-      fatal("Couldn't install padding: {}".format(str(e)))
+      fatal("Couldn't install Tock OS: {}".format(str(e)))
 
   def install_padding(self):
     padding = self.get_padding()
diff --git a/patches/tock/07-nrf52-bootloader.patch b/patches/tock/04-nrf52-bootloader.patch
similarity index 100%
rename from patches/tock/07-nrf52-bootloader.patch
rename to patches/tock/04-nrf52-bootloader.patch