diff --git a/os/hal/dox/ext.dox b/os/hal/dox/ext.dox
deleted file mode 100644
index b59269c43..000000000
--- a/os/hal/dox/ext.dox
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-/**
- * @defgroup EXT EXT Driver
- * @brief Generic EXT Driver.
- * @details This module implements a generic EXT (EXTernal) driver.
- * @note This driver is obsolete. Use the Event and Callback functions
- * of the @ref PAL driver instead.
- * @pre In order to use the EXT driver the @p HAL_USE_EXT option
- * must be enabled in @p halconf.h.
- *
- * @section ext_1 Driver State Machine
- * The driver implements a state machine internally, not all the driver
- * functionalities can be used in any moment, any transition not explicitly
- * shown in the following diagram has to be considered an error and shall
- * be captured by an assertion (if enabled).
- * @if LATEX_PDF
- * @dot
- digraph example {
- size="5, 7";
- rankdir="LR";
-
- node [shape=circle, fontname=Sans, fontsize=8, fixedsize="true", width="0.9", height="0.9"];
- edge [fontname=Sans, fontsize=8];
-
- uninit [label="EXT_UNINIT", style="bold"];
- stop [label="EXT_STOP\nLow Power"];
- active [label="EXT_ACTIVE"];
-
- uninit -> stop [label="extInit()"];
- stop -> stop [label="\nextStop()"];
- stop -> active [label="\nextStart()"];
- active -> stop [label="\nextStop()"];
- active -> active [label="\nextStart()"];
- }
- * @enddot
- * @else
- * @dot
- digraph example {
- rankdir="LR";
-
- node [shape=circle, fontname=Sans, fontsize=8, fixedsize="true", width="0.9", height="0.9"];
- edge [fontname=Sans, fontsize=8];
-
- uninit [label="EXT_UNINIT", style="bold"];
- stop [label="EXT_STOP\nLow Power"];
- active [label="EXT_ACTIVE"];
-
- uninit -> stop [label="extInit()"];
- stop -> stop [label="\nextStop()"];
- stop -> active [label="\nextStart()"];
- active -> stop [label="\nextStop()"];
- active -> active [label="\nextStart()"];
- }
- * @enddot
- * @endif
- *
- * @section ext_2 EXT Operations.
- * This driver abstracts generic external interrupt sources, a callback
- * is invoked when a programmable transition is detected on one of the
- * configured channels. Several channel modes are possible.
- * - EXT_CH_MODE_DISABLED, channel not used.
- * - EXT_CH_MODE_RISING_EDGE, callback on a rising edge.
- * - EXT_CH_MODE_FALLING_EDGE, callback on a falling edge.
- * - EXT_CH_MODE_BOTH_EDGES, callback on a both edges.
- * .
- * @ingroup HAL_NORMAL_DRIVERS
- */
diff --git a/os/hal/dox/accelerometer.dox b/os/hal/dox/hal_accelerometer.dox
similarity index 100%
rename from os/hal/dox/accelerometer.dox
rename to os/hal/dox/hal_accelerometer.dox
diff --git a/os/hal/dox/adc.dox b/os/hal/dox/hal_adc.dox
similarity index 100%
rename from os/hal/dox/adc.dox
rename to os/hal/dox/hal_adc.dox
diff --git a/os/hal/dox/barometer.dox b/os/hal/dox/hal_barometer.dox
similarity index 100%
rename from os/hal/dox/barometer.dox
rename to os/hal/dox/hal_barometer.dox
diff --git a/os/hal/dox/can.dox b/os/hal/dox/hal_can.dox
similarity index 100%
rename from os/hal/dox/can.dox
rename to os/hal/dox/hal_can.dox
diff --git a/os/hal/dox/compass.dox b/os/hal/dox/hal_compass.dox
similarity index 100%
rename from os/hal/dox/compass.dox
rename to os/hal/dox/hal_compass.dox
diff --git a/os/hal/dox/crypto.dox b/os/hal/dox/hal_crypto.dox
similarity index 100%
rename from os/hal/dox/crypto.dox
rename to os/hal/dox/hal_crypto.dox
diff --git a/os/hal/dox/dac.dox b/os/hal/dox/hal_dac.dox
similarity index 100%
rename from os/hal/dox/dac.dox
rename to os/hal/dox/hal_dac.dox
diff --git a/os/hal/dox/flash.dox b/os/hal/dox/hal_flash.dox
similarity index 100%
rename from os/hal/dox/flash.dox
rename to os/hal/dox/hal_flash.dox
diff --git a/os/hal/dox/gpt.dox b/os/hal/dox/hal_gpt.dox
similarity index 100%
rename from os/hal/dox/gpt.dox
rename to os/hal/dox/hal_gpt.dox
diff --git a/os/hal/dox/gyro.dox b/os/hal/dox/hal_gyro.dox
similarity index 100%
rename from os/hal/dox/gyro.dox
rename to os/hal/dox/hal_gyro.dox
diff --git a/os/hal/dox/hygrometer.dox b/os/hal/dox/hal_hygrometer.dox
similarity index 100%
rename from os/hal/dox/hygrometer.dox
rename to os/hal/dox/hal_hygrometer.dox
diff --git a/os/hal/dox/i2c.dox b/os/hal/dox/hal_i2c.dox
similarity index 100%
rename from os/hal/dox/i2c.dox
rename to os/hal/dox/hal_i2c.dox
diff --git a/os/hal/dox/i2s.dox b/os/hal/dox/hal_i2s.dox
similarity index 100%
rename from os/hal/dox/i2s.dox
rename to os/hal/dox/hal_i2s.dox
diff --git a/os/hal/dox/icu.dox b/os/hal/dox/hal_icu.dox
similarity index 100%
rename from os/hal/dox/icu.dox
rename to os/hal/dox/hal_icu.dox
diff --git a/os/hal/dox/mac.dox b/os/hal/dox/hal_mac.dox
similarity index 100%
rename from os/hal/dox/mac.dox
rename to os/hal/dox/hal_mac.dox
diff --git a/os/hal/dox/mfs.dox b/os/hal/dox/hal_mfs.dox
similarity index 100%
rename from os/hal/dox/mfs.dox
rename to os/hal/dox/hal_mfs.dox
diff --git a/os/hal/dox/mii.dox b/os/hal/dox/hal_mii.dox
similarity index 100%
rename from os/hal/dox/mii.dox
rename to os/hal/dox/hal_mii.dox
diff --git a/os/hal/dox/mmc_spi.dox b/os/hal/dox/hal_mmc_spi.dox
similarity index 100%
rename from os/hal/dox/mmc_spi.dox
rename to os/hal/dox/hal_mmc_spi.dox
diff --git a/os/hal/dox/mmcsd.dox b/os/hal/dox/hal_mmcsd.dox
similarity index 100%
rename from os/hal/dox/mmcsd.dox
rename to os/hal/dox/hal_mmcsd.dox
diff --git a/os/hal/dox/norflash.dox b/os/hal/dox/hal_norflash.dox
similarity index 100%
rename from os/hal/dox/norflash.dox
rename to os/hal/dox/hal_norflash.dox
diff --git a/os/hal/dox/pal.dox b/os/hal/dox/hal_pal.dox
similarity index 100%
rename from os/hal/dox/pal.dox
rename to os/hal/dox/hal_pal.dox
diff --git a/os/hal/dox/pwm.dox b/os/hal/dox/hal_pwm.dox
similarity index 100%
rename from os/hal/dox/pwm.dox
rename to os/hal/dox/hal_pwm.dox
diff --git a/os/hal/dox/rtc.dox b/os/hal/dox/hal_rtc.dox
similarity index 100%
rename from os/hal/dox/rtc.dox
rename to os/hal/dox/hal_rtc.dox
diff --git a/os/hal/dox/sdc.dox b/os/hal/dox/hal_sdc.dox
similarity index 100%
rename from os/hal/dox/sdc.dox
rename to os/hal/dox/hal_sdc.dox
diff --git a/os/hal/dox/sensor.dox b/os/hal/dox/hal_sensor.dox
similarity index 100%
rename from os/hal/dox/sensor.dox
rename to os/hal/dox/hal_sensor.dox
diff --git a/os/hal/dox/serial.dox b/os/hal/dox/hal_serial.dox
similarity index 100%
rename from os/hal/dox/serial.dox
rename to os/hal/dox/hal_serial.dox
diff --git a/os/hal/dox/serial_usb.dox b/os/hal/dox/hal_serial_usb.dox
similarity index 100%
rename from os/hal/dox/serial_usb.dox
rename to os/hal/dox/hal_serial_usb.dox
diff --git a/os/hal/dox/sio.dox b/os/hal/dox/hal_sio.dox
similarity index 100%
rename from os/hal/dox/sio.dox
rename to os/hal/dox/hal_sio.dox
diff --git a/os/hal/dox/spi.dox b/os/hal/dox/hal_spi.dox
similarity index 100%
rename from os/hal/dox/spi.dox
rename to os/hal/dox/hal_spi.dox
diff --git a/os/hal/dox/st.dox b/os/hal/dox/hal_st.dox
similarity index 100%
rename from os/hal/dox/st.dox
rename to os/hal/dox/hal_st.dox
diff --git a/os/hal/dox/thermometer.dox b/os/hal/dox/hal_thermometer.dox
similarity index 100%
rename from os/hal/dox/thermometer.dox
rename to os/hal/dox/hal_thermometer.dox
diff --git a/os/hal/dox/hal_trng.dox b/os/hal/dox/hal_trng.dox
new file mode 100644
index 000000000..b9ad2b157
--- /dev/null
+++ b/os/hal/dox/hal_trng.dox
@@ -0,0 +1,25 @@
+/*
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+/**
+ * @defgroup CRYPTO Crypto Driver
+ * @brief Generic Crypto Driver.
+ * @details This module implements a generic Cryptography driver.
+ * @pre In order to use the crypto driver the @p HAL_USE_CRY option
+ * must be enabled in @p halconf.h.
+ *
+ * @ingroup HAL_NORMAL_DRIVERS
+ */
diff --git a/os/hal/dox/uart.dox b/os/hal/dox/hal_uart.dox
similarity index 100%
rename from os/hal/dox/uart.dox
rename to os/hal/dox/hal_uart.dox
diff --git a/os/hal/dox/usb.dox b/os/hal/dox/hal_usb.dox
similarity index 100%
rename from os/hal/dox/usb.dox
rename to os/hal/dox/hal_usb.dox
diff --git a/os/hal/dox/usb_cdc.dox b/os/hal/dox/hal_usb_cdc.dox
similarity index 100%
rename from os/hal/dox/usb_cdc.dox
rename to os/hal/dox/hal_usb_cdc.dox
diff --git a/os/hal/dox/wdg.dox b/os/hal/dox/hal_wdg.dox
similarity index 100%
rename from os/hal/dox/wdg.dox
rename to os/hal/dox/hal_wdg.dox
diff --git a/os/hal/dox/wspi.dox b/os/hal/dox/hal_wspi.dox
similarity index 100%
rename from os/hal/dox/wspi.dox
rename to os/hal/dox/hal_wspi.dox
diff --git a/os/hal/include/hal_persistent.h b/os/hal/include/hal_persistent.h
index f6ba14e82..99697f131 100644
--- a/os/hal/include/hal_persistent.h
+++ b/os/hal/include/hal_persistent.h
@@ -19,6 +19,9 @@
* @brief Generic persistent storage class header.
*
* @addtogroup HAL_PERSISTENT
+ * @details This module define an abstract interface for generic persistent
+ * storage. Such storage has a fixed size and can be read and
+ * written.
* @{
*/
diff --git a/os/hal/lib/streams/memstreams.c b/os/hal/lib/streams/memstreams.c
index a06b0a3a1..98b3fe6d5 100644
--- a/os/hal/lib/streams/memstreams.c
+++ b/os/hal/lib/streams/memstreams.c
@@ -19,6 +19,7 @@
* @brief Memory streams code.
*
* @addtogroup HAL_MEMORY_STREAMS
+ * @details Memory buffers handled as streams.
* @{
*/
diff --git a/os/hal/lib/streams/nullstreams.c b/os/hal/lib/streams/nullstreams.c
index 51206e943..dcfd42442 100644
--- a/os/hal/lib/streams/nullstreams.c
+++ b/os/hal/lib/streams/nullstreams.c
@@ -19,6 +19,7 @@
* @brief Null streams code.
*
* @addtogroup HAL_NULL_STREAMS
+ * @details A null streams.
* @{
*/