diff --git a/boards/b-l072z-lrwan1/Makefile.include b/boards/b-l072z-lrwan1/Makefile.include
index 6b3cc1daa543a0ea4771072c93db4e3cca2d6371..f07d9ee51b2c3a62f07ee86bee340e861413b3f3 100644
--- a/boards/b-l072z-lrwan1/Makefile.include
+++ b/boards/b-l072z-lrwan1/Makefile.include
@@ -9,8 +9,8 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 # setup serial terminal
 include $(RIOTMAKE)/tools/serial.inc.mk
 
+# this board has an on-board ST-link adapter
 export DEBUG_ADAPTER ?= stlink
-export STLINK_VERSION ?= 2-1
 
 # call a 'reset halt' command before starting the debugger
 export OPENOCD_DBG_START_CMD = -c 'reset halt'
diff --git a/boards/b-l475e-iot01a/Makefile.include b/boards/b-l475e-iot01a/Makefile.include
index 3f29deeff12540e487fff96f88b86abcfdc35c20..c795b36608b22c7e16921dd320e8e484d7b3b41e 100644
--- a/boards/b-l475e-iot01a/Makefile.include
+++ b/boards/b-l475e-iot01a/Makefile.include
@@ -9,8 +9,8 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 # setup serial terminal
 include $(RIOTMAKE)/tools/serial.inc.mk
 
+# this board has an on-board ST-link adapter
 export DEBUG_ADAPTER ?= stlink
-export STLINK_VERSION ?= 2-1
 
 # this board uses openocd
 include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/b-l475e-iot01a/dist/openocd.cfg b/boards/b-l475e-iot01a/dist/openocd.cfg
deleted file mode 100644
index 52f860617d786a0acde420fddd11cdc3a01226ea..0000000000000000000000000000000000000000
--- a/boards/b-l475e-iot01a/dist/openocd.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-source [find target/stm32l4x.cfg]
-
-reset_config srst_only
diff --git a/boards/common/nucleo/Makefile.include b/boards/common/nucleo/Makefile.include
index 4b6e3db7133a7a7b4b347052800fe97913fdaa5c..63464521dcfc453506f509847c09a02ea2c72a9b 100644
--- a/boards/common/nucleo/Makefile.include
+++ b/boards/common/nucleo/Makefile.include
@@ -8,34 +8,12 @@ INCLUDES += -I$(RIOTBOARD)/common/stm32/include
 # configure the serial terminal
 PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
+
+# setup serial terminal
 include $(RIOTMAKE)/tools/serial.inc.mk
 
-# all Nucleo boards have an on-board ST-link v2-1 adapter
+# all Nucleo boards have an on-board ST-link adapter
 export DEBUG_ADAPTER ?= stlink
-export STLINK_VERSION ?= 2-1
-
-# select OpenOCD configuration depending on CPU type
-ifeq (,$(OPENOCD_CONFIG))
-  ifeq ($(CPU),stm32f0)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f0.cfg
-  else ifeq ($(CPU),stm32f1)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f1.cfg
-  else ifeq ($(CPU),stm32f2)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f2.cfg
-  else ifeq ($(CPU),stm32f3)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f3.cfg
-  else ifeq ($(CPU),stm32f4)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f4.cfg
-  else ifeq ($(CPU),stm32f7)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-f7.cfg
-  else ifeq ($(CPU),stm32l0)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-l0.cfg
-  else ifeq ($(CPU),stm32l1)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-l1.cfg
-  else ifeq ($(CPU),stm32l4)
-    export OPENOCD_CONFIG := $(RIOTBOARD)/common/nucleo/dist/openocd-l4.cfg
-  endif
-endif
 
-# this board uses openocd
+# nucleo boards use openocd
 include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/common/nucleo/dist/openocd-f0.cfg b/boards/common/stm32/dist/stm32f0.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f0.cfg
rename to boards/common/stm32/dist/stm32f0.cfg
diff --git a/boards/common/nucleo/dist/openocd-f1.cfg b/boards/common/stm32/dist/stm32f1.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f1.cfg
rename to boards/common/stm32/dist/stm32f1.cfg
diff --git a/boards/common/nucleo/dist/openocd-f2.cfg b/boards/common/stm32/dist/stm32f2.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f2.cfg
rename to boards/common/stm32/dist/stm32f2.cfg
diff --git a/boards/common/nucleo/dist/openocd-f3.cfg b/boards/common/stm32/dist/stm32f3.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f3.cfg
rename to boards/common/stm32/dist/stm32f3.cfg
diff --git a/boards/common/nucleo/dist/openocd-f4.cfg b/boards/common/stm32/dist/stm32f4.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f4.cfg
rename to boards/common/stm32/dist/stm32f4.cfg
diff --git a/boards/common/nucleo/dist/openocd-f7.cfg b/boards/common/stm32/dist/stm32f7.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-f7.cfg
rename to boards/common/stm32/dist/stm32f7.cfg
diff --git a/boards/common/nucleo/dist/openocd-l0.cfg b/boards/common/stm32/dist/stm32l0.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-l0.cfg
rename to boards/common/stm32/dist/stm32l0.cfg
diff --git a/boards/common/nucleo/dist/openocd-l1.cfg b/boards/common/stm32/dist/stm32l1.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-l1.cfg
rename to boards/common/stm32/dist/stm32l1.cfg
diff --git a/boards/common/nucleo/dist/openocd-l4.cfg b/boards/common/stm32/dist/stm32l4.cfg
similarity index 100%
rename from boards/common/nucleo/dist/openocd-l4.cfg
rename to boards/common/stm32/dist/stm32l4.cfg
diff --git a/boards/maple-mini/Makefile.include b/boards/maple-mini/Makefile.include
index ce0aa455791a6d3cced45383f0ba036320ba0837..0214ae65681ebaa6c7357a5c76544e6d576134bd 100644
--- a/boards/maple-mini/Makefile.include
+++ b/boards/maple-mini/Makefile.include
@@ -10,7 +10,6 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 include $(RIOTMAKE)/tools/serial.inc.mk
 
 export DEBUG_ADAPTER ?= stlink
-export STLINK_VERSION ?= 2-1
 
 # this board uses openocd
 include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/maple-mini/dist/openocd.cfg b/boards/maple-mini/dist/openocd.cfg
deleted file mode 100644
index 43022477c48557620bc8c3c3d8fde8cdaf3010a3..0000000000000000000000000000000000000000
--- a/boards/maple-mini/dist/openocd.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-source [find target/stm32f1x.cfg]
-
-reset_config srst_only
diff --git a/boards/stm32f3discovery/dist/openocd.cfg b/boards/stm32f3discovery/dist/openocd.cfg
deleted file mode 100644
index a9f35532594edc5c59d2e68d814e4d234849ff77..0000000000000000000000000000000000000000
--- a/boards/stm32f3discovery/dist/openocd.cfg
+++ /dev/null
@@ -1,5 +0,0 @@
-source [find target/stm32f3x.cfg]
-
-reset_config srst_only
-
-$_TARGETNAME configure -rtos auto
diff --git a/boards/stm32f769i-disco/Makefile.include b/boards/stm32f769i-disco/Makefile.include
index ccae756d4bb3b26afa1da85fc25dcca6250ac47b..171076874329dfc868a5c3606374aef1a77f93dc 100644
--- a/boards/stm32f769i-disco/Makefile.include
+++ b/boards/stm32f769i-disco/Makefile.include
@@ -9,8 +9,8 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup serial terminal
 include $(RIOTMAKE)/tools/serial.inc.mk
 
+# this board has an on-board ST-link adapter
 export DEBUG_ADAPTER ?= stlink
-export STLINK_VERSION ?= 2-1
 
 # this board uses openocd
 include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/makefiles/tools/openocd-adapters/stlink.inc.mk b/makefiles/tools/openocd-adapters/stlink.inc.mk
index b9ef8d1ee004a3ccc5438061409f600ec2f81f3c..c9b12908e0c2cc955700b42e73819c7e0fd93efe 100644
--- a/makefiles/tools/openocd-adapters/stlink.inc.mk
+++ b/makefiles/tools/openocd-adapters/stlink.inc.mk
@@ -1,4 +1,7 @@
 # ST-Link debug adapter
+# Use st-link v2-1 by default
+STLINK_VERSION ?= 2-1
+
 # Use STLINK_VERSION to select which stlink version is used
 OPENOCD_ADAPTER_INIT ?= \
   -c 'source [find interface/stlink-v$(STLINK_VERSION).cfg]' \
@@ -8,3 +11,14 @@ ifneq (,$(DEBUG_ADAPTER_ID))
   OPENOCD_ADAPTER_INIT += -c 'hla_serial $(DEBUG_ADAPTER_ID)'
 endif
 export OPENOCD_ADAPTER_INIT
+
+# if no openocd specific configuration file, check for default locations:
+# 1. Using the default dist/openocd.cfg (automatically set by openocd.sh)
+# 2. Using the common cpu specific config file
+ifeq (,$(OPENOCD_CONFIG))
+  # if no openocd default configuration is provided by the board,
+  # use the STM32 common one
+  ifeq (0,$(words $(wildcard $(RIOTBOARD)/$(BOARD)/dist/openocd.cfg)))
+    export OPENOCD_CONFIG := $(RIOTBASE)/boards/common/stm32/dist/$(CPU).cfg
+  endif
+endif