diff --git a/cpu/stm32_common/Makefile.features b/cpu/stm32_common/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..a78a126bbb4c6948d8482a34562d08c49d8a9f73
--- /dev/null
+++ b/cpu/stm32_common/Makefile.features
@@ -0,0 +1,7 @@
+FEATURES_PROVIDED += periph_cpuid
+
+ifneq (,$(filter $(BOARDS_WITHOUT_HWRNG),$(BOARD)))
+  FEATURES_PROVIDED := $(filter-out periph_hwrng,$(FEATURES_PROVIDED))
+endif
+
+-include $(RIOTCPU)/cortexm_common/Makefile.features
diff --git a/cpu/stm32f0/Makefile.features b/cpu/stm32f0/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..fb630f4c258596bbb190f74abf97a9f0145b0f16
--- /dev/null
+++ b/cpu/stm32f0/Makefile.features
@@ -0,0 +1,5 @@
+ifeq (,$(filter nucleo32-f031,$(BOARD)))
+  FEATURES_PROVIDED += periph_flashpage
+endif
+
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32f1/Makefile.features b/cpu/stm32f1/Makefile.features
index 7a418ea511cb94cb5a2daed61773d99257e33013..651254b37bfb8b15c88aea23baf9e8a857937229 100644
--- a/cpu/stm32f1/Makefile.features
+++ b/cpu/stm32f1/Makefile.features
@@ -1 +1,4 @@
+FEATURES_PROVIDED += periph_flashpage
 FEATURES_PROVIDED += periph_pm
+
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32f2/Makefile.features b/cpu/stm32f2/Makefile.features
index 7a418ea511cb94cb5a2daed61773d99257e33013..c6412dd78e1e8c5ab41522cd90f3a363517166b7 100644
--- a/cpu/stm32f2/Makefile.features
+++ b/cpu/stm32f2/Makefile.features
@@ -1 +1,4 @@
+FEATURES_PROVIDED += periph_hwrng
 FEATURES_PROVIDED += periph_pm
+
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32f3/Makefile.features b/cpu/stm32f3/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..8edd0b27724c0a046495c1b7d688364f2b8d5ba0
--- /dev/null
+++ b/cpu/stm32f3/Makefile.features
@@ -0,0 +1 @@
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32f4/Makefile.features b/cpu/stm32f4/Makefile.features
index 7a418ea511cb94cb5a2daed61773d99257e33013..a7a5abd1a3659d50c41c7fa5c7cd9a42395c9399 100644
--- a/cpu/stm32f4/Makefile.features
+++ b/cpu/stm32f4/Makefile.features
@@ -1 +1,14 @@
+FEATURES_PROVIDED += periph_hwrng
 FEATURES_PROVIDED += periph_pm
+
+# the granularity of provided feature definition for STMs is currently by CPU
+# sub-family (e.g., stm32f[1234]).  Unfortunately, only some of e.g., the
+# stm32f4 have an RNG peripheral.  As during evaluation of the features , no
+# CPU variable is available, we need to filter by board.
+#
+BOARDS_WITHOUT_HWRNG += nucleo-f401
+BOARDS_WITHOUT_HWRNG += nucleo-f411
+BOARDS_WITHOUT_HWRNG += nucleo-f446
+BOARDS_WITHOUT_HWRNG += nucleo144-f446
+
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32f7/Makefile.features b/cpu/stm32f7/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..2d4e44ccb55c0fea7cf3afebe2332bd0b6f1a596
--- /dev/null
+++ b/cpu/stm32f7/Makefile.features
@@ -0,0 +1,2 @@
+FEATURES_PROVIDED += periph_hwrng
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32l0/Makefile.features b/cpu/stm32l0/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..494f8c194a247954b861d9250f789ed4daea00fa
--- /dev/null
+++ b/cpu/stm32l0/Makefile.features
@@ -0,0 +1,5 @@
+FEATURES_PROVIDED += periph_hwrng
+
+BOARDS_WITHOUT_HWRNG += nucleo32-l031
+
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32l1/Makefile.features b/cpu/stm32l1/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..8edd0b27724c0a046495c1b7d688364f2b8d5ba0
--- /dev/null
+++ b/cpu/stm32l1/Makefile.features
@@ -0,0 +1 @@
+-include $(RIOTCPU)/stm32_common/Makefile.features
diff --git a/cpu/stm32l4/Makefile.features b/cpu/stm32l4/Makefile.features
new file mode 100644
index 0000000000000000000000000000000000000000..c51e0186eb8d20fbe025daebd2e0fd20a000438f
--- /dev/null
+++ b/cpu/stm32l4/Makefile.features
@@ -0,0 +1,3 @@
+FEATURES_PROVIDED += periph_hwrng
+
+-include $(RIOTCPU)/stm32_common/Makefile.features