diff --git a/miosix/config/options.cmake b/miosix/config/options.cmake
index def67013a5010a8cbc14130d3f4c423f2627b229..ab6b2039cdf7527f42b0dbed9b6a5aa967ed47fb 100644
--- a/miosix/config/options.cmake
+++ b/miosix/config/options.cmake
@@ -3147,7 +3147,10 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
 
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
-        set(ARCH_SRC ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp)
+        set(ARCH_SRC 
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
+            ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
+        )
 
         ## Add a #define to allow querying board name
         list(APPEND CFLAGS_BASE -D_BOARD_STM32F756ZG_NUCLEO)
@@ -3188,6 +3191,7 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
         set(ARCH_SRC
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
             ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
             ${KPATH}/arch/common/drivers/stm32_backup_domain.cpp
         )
@@ -3231,6 +3235,7 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
         set(ARCH_SRC
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
             ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
             ${KPATH}/arch/common/drivers/stm32_backup_domain.cpp
         )
@@ -3273,6 +3278,7 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
         set(ARCH_SRC
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
             ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
             ${KPATH}/arch/common/drivers/stm32_backup_domain.cpp
         )
@@ -3315,6 +3321,7 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
         set(ARCH_SRC
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
             ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
             ${KPATH}/arch/common/drivers/stm32_backup_domain.cpp
         )
@@ -3353,7 +3360,10 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
 
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
-        set(ARCH_SRC ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp)
+        set(ARCH_SRC 
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
+            ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
+        )
 
         ## Add a #define to allow querying board name
         list(APPEND CFLAGS_BASE -D_BOARD_STM32F767ZI_NUCLEO)
@@ -3397,6 +3407,7 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
         set(ARCH_SRC
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
             ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
             ${KPATH}/arch/common/drivers/stm32_backup_domain.cpp
         )
@@ -3436,7 +3447,10 @@ elseif(${ARCH} STREQUAL cortexM7_stm32f7)
 
         ## Select architecture specific files
         ## These are the files in arch/<arch name>/<board name>
-        set(ARCH_SRC ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp)
+        set(ARCH_SRC 
+            ${KPATH}/arch/common/drivers/stm32_hardware_rng.cpp
+            ${KPATH}/${BOARD_INC}/interfaces-impl/bsp.cpp
+        )
 
         ## Add a #define to allow querying board name
         list(APPEND CFLAGS_BASE -D_BOARD_STM32F769NI_DISCO)