Index: ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h723xx.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h723xx.h	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h723xx.h	(revision 59)
@@ -1322,5 +1322,5 @@
   __IO uint32_t TSSSR;      /*!< RTC time-stamp sub second register,                        Address offset: 0x38 */
   __IO uint32_t CALR;       /*!< RTC calibration register,                                  Address offset: 0x3C */
-  __IO uint32_t TAMPCR;     /*!< RTC tamper configuration register,                         Address offset: 0x40 */
+  __IO uint32_t TAFCR;      /*!< RTC tamper and alternate function configuration register,  Address offset: 0x40 */
   __IO uint32_t ALRMASSR;   /*!< RTC alarm A sub second register,                           Address offset: 0x44 */
   __IO uint32_t ALRMBSSR;   /*!< RTC alarm B sub second register,                           Address offset: 0x48 */
@@ -16974,5 +16974,102 @@
 #define RTC_CALR_CALM_8                (0x100UL << RTC_CALR_CALM_Pos)           /*!< 0x00000100 */
 
-/********************  Bits definition for RTC_TAMPCR register  ***************/
+/********************  Bits definition for RTC_TAFCR register  ***************/
+#define RTC_TAFCR_PC15MODE_Pos         (23U)
+#define RTC_TAFCR_PC15MODE_Msk         (0x1UL << RTC_TAFCR_PC15MODE_Pos)      /*!< 0x00800000 */
+#define RTC_TAFCR_PC15MODE             RTC_TAFCR_PC15MODE_Msk
+#define RTC_TAFCR_PC15VALUE_Pos        (22U)
+#define RTC_TAFCR_PC15VALUE_Msk        (0x1UL << RTC_TAFCR_PC15VALUE_Pos)     /*!< 0x00400000 */
+#define RTC_TAFCR_PC15VALUE            RTC_TAFCR_PC15VALUE_Msk
+#define RTC_TAFCR_PC14MODE_Pos         (21U)
+#define RTC_TAFCR_PC14MODE_Msk         (0x1UL << RTC_TAFCR_PC14MODE_Pos)      /*!< 0x00200000 */
+#define RTC_TAFCR_PC14MODE             RTC_TAFCR_PC14MODE_Msk
+#define RTC_TAFCR_PC14VALUE_Pos        (20U)
+#define RTC_TAFCR_PC14VALUE_Msk        (0x1UL << RTC_TAFCR_PC14VALUE_Pos)     /*!< 0x00100000 */
+#define RTC_TAFCR_PC14VALUE            RTC_TAFCR_PC14VALUE_Msk
+#define RTC_TAFCR_PC13MODE_Pos         (19U)
+#define RTC_TAFCR_PC13MODE_Msk         (0x1UL << RTC_TAFCR_PC13MODE_Pos)      /*!< 0x00080000 */
+#define RTC_TAFCR_PC13MODE             RTC_TAFCR_PC13MODE_Msk
+#define RTC_TAFCR_PC13VALUE_Pos        (18U)
+#define RTC_TAFCR_PC13VALUE_Msk        (0x1UL << RTC_TAFCR_PC13VALUE_Pos)     /*!< 0x00040000 */
+#define RTC_TAFCR_PC13VALUE            RTC_TAFCR_PC13VALUE_Msk
+#define RTC_TAFCR_TAMPPUDIS_Pos        (15U)
+#define RTC_TAFCR_TAMPPUDIS_Msk        (0x1UL << RTC_TAFCR_TAMPPUDIS_Pos)     /*!< 0x00008000 */
+#define RTC_TAFCR_TAMPPUDIS            RTC_TAFCR_TAMPPUDIS_Msk
+#define RTC_TAFCR_TAMPPRCH_Pos         (13U)
+#define RTC_TAFCR_TAMPPRCH_Msk         (0x3UL << RTC_TAFCR_TAMPPRCH_Pos)      /*!< 0x00006000 */
+#define RTC_TAFCR_TAMPPRCH             RTC_TAFCR_TAMPPRCH_Msk
+#define RTC_TAFCR_TAMPPRCH_0           (0x1UL << RTC_TAFCR_TAMPPRCH_Pos)       /*!< 0x00002000 */
+#define RTC_TAFCR_TAMPPRCH_1           (0x2UL << RTC_TAFCR_TAMPPRCH_Pos)       /*!< 0x00004000 */
+#define RTC_TAFCR_TAMPFLT_Pos          (11U)
+#define RTC_TAFCR_TAMPFLT_Msk          (0x3UL << RTC_TAFCR_TAMPFLT_Pos)       /*!< 0x00001800 */
+#define RTC_TAFCR_TAMPFLT              RTC_TAFCR_TAMPFLT_Msk
+#define RTC_TAFCR_TAMPFLT_0            (0x1UL << RTC_TAFCR_TAMPFLT_Pos)        /*!< 0x00000800 */
+#define RTC_TAFCR_TAMPFLT_1            (0x2UL << RTC_TAFCR_TAMPFLT_Pos)        /*!< 0x00001000 */
+#define RTC_TAFCR_TAMPFREQ_Pos         (8U)
+#define RTC_TAFCR_TAMPFREQ_Msk         (0x7UL << RTC_TAFCR_TAMPFREQ_Pos)      /*!< 0x00000700 */
+#define RTC_TAFCR_TAMPFREQ             RTC_TAFCR_TAMPFREQ_Msk
+#define RTC_TAFCR_TAMPFREQ_0           (0x1UL << RTC_TAFCR_TAMPFREQ_Pos)       /*!< 0x00000100 */
+#define RTC_TAFCR_TAMPFREQ_1           (0x2UL << RTC_TAFCR_TAMPFREQ_Pos)       /*!< 0x00000200 */
+#define RTC_TAFCR_TAMPFREQ_2           (0x4UL << RTC_TAFCR_TAMPFREQ_Pos)       /*!< 0x00000400 */
+#define RTC_TAFCR_TAMPTS_Pos           (7U)
+#define RTC_TAFCR_TAMPTS_Msk           (0x1UL << RTC_TAFCR_TAMPTS_Pos)        /*!< 0x00000080 */
+#define RTC_TAFCR_TAMPTS               RTC_TAFCR_TAMPTS_Msk
+#define RTC_TAFCR_TAMP3TRG_Pos         (6U)
+#define RTC_TAFCR_TAMP3TRG_Msk         (0x1UL << RTC_TAFCR_TAMP3TRG_Pos)      /*!< 0x00000040 */
+#define RTC_TAFCR_TAMP3TRG             RTC_TAFCR_TAMP3TRG_Msk
+#define RTC_TAFCR_TAMP3E_Pos           (5U)
+#define RTC_TAFCR_TAMP3E_Msk           (0x1UL << RTC_TAFCR_TAMP3E_Pos)        /*!< 0x00000020 */
+#define RTC_TAFCR_TAMP3E               RTC_TAFCR_TAMP3E_Msk
+#define RTC_TAFCR_TAMPIE_Pos           (2U)
+#define RTC_TAFCR_TAMPIE_Msk           (0x1UL << RTC_TAFCR_TAMPIE_Pos)        /*!< 0x00000004 */
+#define RTC_TAFCR_TAMPIE               RTC_TAFCR_TAMPIE_Msk
+#define RTC_TAFCR_TAMP1TRG_Pos         (1U)
+#define RTC_TAFCR_TAMP1TRG_Msk         (0x1UL << RTC_TAFCR_TAMP1TRG_Pos)      /*!< 0x00000002 */
+#define RTC_TAFCR_TAMP1TRG             RTC_TAFCR_TAMP1TRG_Msk
+#define RTC_TAFCR_TAMP1E_Pos           (0U)
+#define RTC_TAFCR_TAMP1E_Msk           (0x1UL << RTC_TAFCR_TAMP1E_Pos)        /*!< 0x00000001 */
+#define RTC_TAFCR_TAMP1E               RTC_TAFCR_TAMP1E_Msk
+
+/* Aliases for RTC TAFCR */
+#define TAMPCR                         TAFCR
+#define RTC_TAMPCR_TAMPPUDIS_Pos       RTC_TAFCR_TAMPPUDIS_Pos
+#define RTC_TAMPCR_TAMPPUDIS_Msk       RTC_TAFCR_TAMPPUDIS_Msk
+#define RTC_TAMPCR_TAMPPUDIS           RTC_TAFCR_TAMPPUDIS
+#define RTC_TAMPCR_TAMPPRCH_Pos        RTC_TAFCR_TAMPPRCH_Pos
+#define RTC_TAMPCR_TAMPPRCH_Msk        RTC_TAFCR_TAMPPRCH_Msk
+#define RTC_TAMPCR_TAMPPRCH            RTC_TAFCR_TAMPPRCH
+#define RTC_TAMPCR_TAMPPRCH_0          RTC_TAFCR_TAMPPRCH_0
+#define RTC_TAMPCR_TAMPPRCH_1          RTC_TAFCR_TAMPPRCH_1
+#define RTC_TAMPCR_TAMPFLT_Pos         RTC_TAFCR_TAMPFLT_Pos
+#define RTC_TAMPCR_TAMPFLT_Msk         RTC_TAFCR_TAMPFLT_Msk
+#define RTC_TAMPCR_TAMPFLT             RTC_TAFCR_TAMPFLT
+#define RTC_TAMPCR_TAMPFLT_0           RTC_TAFCR_TAMPFLT_0
+#define RTC_TAMPCR_TAMPFLT_1           RTC_TAFCR_TAMPFLT_1
+#define RTC_TAMPCR_TAMPFREQ_Pos        RTC_TAFCR_TAMPFREQ_Pos
+#define RTC_TAMPCR_TAMPFREQ_Msk        RTC_TAFCR_TAMPFREQ_Msk
+#define RTC_TAMPCR_TAMPFREQ            RTC_TAFCR_TAMPFREQ
+#define RTC_TAMPCR_TAMPFREQ_0          RTC_TAFCR_TAMPFREQ_0
+#define RTC_TAMPCR_TAMPFREQ_1          RTC_TAFCR_TAMPFREQ_1
+#define RTC_TAMPCR_TAMPFREQ_2          RTC_TAFCR_TAMPFREQ_2
+#define RTC_TAMPCR_TAMPTS_Pos          RTC_TAFCR_TAMPTS_Pos
+#define RTC_TAMPCR_TAMPTS_Msk          RTC_TAFCR_TAMPTS_Msk
+#define RTC_TAMPCR_TAMPTS              RTC_TAFCR_TAMPTS
+#define RTC_TAMPCR_TAMP3TRG_Pos        RTC_TAFCR_TAMP3TRG_Pos
+#define RTC_TAMPCR_TAMP3TRG_Msk        RTC_TAFCR_TAMP3TRG_Msk
+#define RTC_TAMPCR_TAMP3TRG            RTC_TAFCR_TAMP3TRG
+#define RTC_TAMPCR_TAMP3E_Pos          RTC_TAFCR_TAMP3E_Pos
+#define RTC_TAMPCR_TAMP3E_Msk          RTC_TAFCR_TAMP3E_Msk
+#define RTC_TAMPCR_TAMP3E              RTC_TAFCR_TAMP3E
+#define RTC_TAMPCR_TAMPIE_Pos          RTC_TAFCR_TAMPIE_Pos
+#define RTC_TAMPCR_TAMPIE_Msk          RTC_TAFCR_TAMPIE_Msk
+#define RTC_TAMPCR_TAMPIE              RTC_TAFCR_TAMPIE
+#define RTC_TAMPCR_TAMP1TRG_Pos        RTC_TAFCR_TAMP1TRG_Pos
+#define RTC_TAMPCR_TAMP1TRG_Msk        RTC_TAFCR_TAMP1TRG_Msk
+#define RTC_TAMPCR_TAMP1TRG            RTC_TAFCR_TAMP1TRG
+#define RTC_TAMPCR_TAMP1E_Pos          RTC_TAFCR_TAMP1E_Pos
+#define RTC_TAMPCR_TAMP1E_Msk          RTC_TAFCR_TAMP1E_Msk
+#define RTC_TAMPCR_TAMP1E              RTC_TAFCR_TAMP1E
+
+/* Legacy defines for backward compatibility */
 #define RTC_TAMPCR_TAMP3MF_Pos         (24U)
 #define RTC_TAMPCR_TAMP3MF_Msk         (0x1UL << RTC_TAMPCR_TAMP3MF_Pos)       /*!< 0x01000000 */
@@ -17002,32 +17099,4 @@
 #define RTC_TAMPCR_TAMP1IE_Msk         (0x1UL << RTC_TAMPCR_TAMP1IE_Pos)       /*!< 0x00010000 */
 #define RTC_TAMPCR_TAMP1IE             RTC_TAMPCR_TAMP1IE_Msk
-#define RTC_TAMPCR_TAMPPUDIS_Pos       (15U)
-#define RTC_TAMPCR_TAMPPUDIS_Msk       (0x1UL << RTC_TAMPCR_TAMPPUDIS_Pos)     /*!< 0x00008000 */
-#define RTC_TAMPCR_TAMPPUDIS           RTC_TAMPCR_TAMPPUDIS_Msk
-#define RTC_TAMPCR_TAMPPRCH_Pos        (13U)
-#define RTC_TAMPCR_TAMPPRCH_Msk        (0x3UL << RTC_TAMPCR_TAMPPRCH_Pos)      /*!< 0x00006000 */
-#define RTC_TAMPCR_TAMPPRCH            RTC_TAMPCR_TAMPPRCH_Msk
-#define RTC_TAMPCR_TAMPPRCH_0          (0x1UL << RTC_TAMPCR_TAMPPRCH_Pos)       /*!< 0x00002000 */
-#define RTC_TAMPCR_TAMPPRCH_1          (0x2UL << RTC_TAMPCR_TAMPPRCH_Pos)       /*!< 0x00004000 */
-#define RTC_TAMPCR_TAMPFLT_Pos         (11U)
-#define RTC_TAMPCR_TAMPFLT_Msk         (0x3UL << RTC_TAMPCR_TAMPFLT_Pos)       /*!< 0x00001800 */
-#define RTC_TAMPCR_TAMPFLT             RTC_TAMPCR_TAMPFLT_Msk
-#define RTC_TAMPCR_TAMPFLT_0           (0x1UL << RTC_TAMPCR_TAMPFLT_Pos)        /*!< 0x00000800 */
-#define RTC_TAMPCR_TAMPFLT_1           (0x2UL << RTC_TAMPCR_TAMPFLT_Pos)        /*!< 0x00001000 */
-#define RTC_TAMPCR_TAMPFREQ_Pos        (8U)
-#define RTC_TAMPCR_TAMPFREQ_Msk        (0x7UL << RTC_TAMPCR_TAMPFREQ_Pos)      /*!< 0x00000700 */
-#define RTC_TAMPCR_TAMPFREQ            RTC_TAMPCR_TAMPFREQ_Msk
-#define RTC_TAMPCR_TAMPFREQ_0          (0x1UL << RTC_TAMPCR_TAMPFREQ_Pos)       /*!< 0x00000100 */
-#define RTC_TAMPCR_TAMPFREQ_1          (0x2UL << RTC_TAMPCR_TAMPFREQ_Pos)       /*!< 0x00000200 */
-#define RTC_TAMPCR_TAMPFREQ_2          (0x4UL << RTC_TAMPCR_TAMPFREQ_Pos)       /*!< 0x00000400 */
-#define RTC_TAMPCR_TAMPTS_Pos          (7U)
-#define RTC_TAMPCR_TAMPTS_Msk          (0x1UL << RTC_TAMPCR_TAMPTS_Pos)        /*!< 0x00000080 */
-#define RTC_TAMPCR_TAMPTS              RTC_TAMPCR_TAMPTS_Msk
-#define RTC_TAMPCR_TAMP3TRG_Pos        (6U)
-#define RTC_TAMPCR_TAMP3TRG_Msk        (0x1UL << RTC_TAMPCR_TAMP3TRG_Pos)      /*!< 0x00000040 */
-#define RTC_TAMPCR_TAMP3TRG            RTC_TAMPCR_TAMP3TRG_Msk
-#define RTC_TAMPCR_TAMP3E_Pos          (5U)
-#define RTC_TAMPCR_TAMP3E_Msk          (0x1UL << RTC_TAMPCR_TAMP3E_Pos)        /*!< 0x00000020 */
-#define RTC_TAMPCR_TAMP3E              RTC_TAMPCR_TAMP3E_Msk
 #define RTC_TAMPCR_TAMP2TRG_Pos        (4U)
 #define RTC_TAMPCR_TAMP2TRG_Msk        (0x1UL << RTC_TAMPCR_TAMP2TRG_Pos)      /*!< 0x00000010 */
@@ -17036,13 +17105,4 @@
 #define RTC_TAMPCR_TAMP2E_Msk          (0x1UL << RTC_TAMPCR_TAMP2E_Pos)        /*!< 0x00000008 */
 #define RTC_TAMPCR_TAMP2E              RTC_TAMPCR_TAMP2E_Msk
-#define RTC_TAMPCR_TAMPIE_Pos          (2U)
-#define RTC_TAMPCR_TAMPIE_Msk          (0x1UL << RTC_TAMPCR_TAMPIE_Pos)        /*!< 0x00000004 */
-#define RTC_TAMPCR_TAMPIE              RTC_TAMPCR_TAMPIE_Msk
-#define RTC_TAMPCR_TAMP1TRG_Pos        (1U)
-#define RTC_TAMPCR_TAMP1TRG_Msk        (0x1UL << RTC_TAMPCR_TAMP1TRG_Pos)      /*!< 0x00000002 */
-#define RTC_TAMPCR_TAMP1TRG            RTC_TAMPCR_TAMP1TRG_Msk
-#define RTC_TAMPCR_TAMP1E_Pos          (0U)
-#define RTC_TAMPCR_TAMP1E_Msk          (0x1UL << RTC_TAMPCR_TAMP1E_Pos)        /*!< 0x00000001 */
-#define RTC_TAMPCR_TAMP1E              RTC_TAMPCR_TAMP1E_Msk
 
 /********************  Bits definition for RTC_ALRMASSR register  *************/
Index: ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h	(revision 59)
@@ -104,9 +104,9 @@
 
 /**
-  * @brief CMSIS Device version number V1.10.5
+  * @brief CMSIS Device version number V1.10.6
   */
 #define __STM32H7xx_CMSIS_DEVICE_VERSION_MAIN   (0x01) /*!< [31:24] main version */
 #define __STM32H7xx_CMSIS_DEVICE_VERSION_SUB1   (0x0A) /*!< [23:16] sub1 version */
-#define __STM32H7xx_CMSIS_DEVICE_VERSION_SUB2   (0x05) /*!< [15:8]  sub2 version */
+#define __STM32H7xx_CMSIS_DEVICE_VERSION_SUB2   (0x06) /*!< [15:8]  sub2 version */
 #define __STM32H7xx_CMSIS_DEVICE_VERSION_RC     (0x00) /*!< [7:0]  release candidate */
 #define __STM32H7xx_CMSIS_DEVICE_VERSION        ((__STM32H7xx_CMSIS_DEVICE_VERSION_MAIN     << 24)\
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_hsem.h	(revision 59)
@@ -58,5 +58,5 @@
                                             (HSEM->C2IER |= (__SEM_MASK__)))
 #else
-#define __HAL_HSEM_ENABLE_IT(__SEM_MASK__) (HSEM->IER |= (__SEM_MASK__))
+#define __HAL_HSEM_ENABLE_IT(__SEM_MASK__) (HSEM->C1IER |= (__SEM_MASK__))
 #endif /* DUAL_CORE */
 /**
@@ -70,5 +70,5 @@
                                              (HSEM->C2IER &= ~(__SEM_MASK__)))
 #else
-#define __HAL_HSEM_DISABLE_IT(__SEM_MASK__) (HSEM->IER &= ~(__SEM_MASK__))
+#define __HAL_HSEM_DISABLE_IT(__SEM_MASK__) (HSEM->C1IER &= ~(__SEM_MASK__))
 #endif /* DUAL_CORE */
 
@@ -81,7 +81,7 @@
 #define __HAL_HSEM_GET_IT(__SEM_MASK__) ((((SCB->CPUID & 0x000000F0) >> 4 )== 0x7) ? \
                                          ((__SEM_MASK__) & HSEM->C1MISR) :        \
-                                         ((__SEM_MASK__) & HSEM->C2MISR1))
-#else
-#define __HAL_HSEM_GET_IT(__SEM_MASK__) ((__SEM_MASK__) & HSEM->MISR)
+                                         ((__SEM_MASK__) & HSEM->C2MISR))
+#else
+#define __HAL_HSEM_GET_IT(__SEM_MASK__) ((__SEM_MASK__) & HSEM->C1MISR)
 #endif /* DUAL_CORE */
 
@@ -96,5 +96,5 @@
                                            (__SEM_MASK__) & HSEM->C2ISR)
 #else
-#define __HAL_HSEM_GET_FLAG(__SEM_MASK__) ((__SEM_MASK__) & HSEM->ISR)
+#define __HAL_HSEM_GET_FLAG(__SEM_MASK__) ((__SEM_MASK__) & HSEM->C1ISR)
 #endif /* DUAL_CORE */
 
@@ -109,5 +109,5 @@
                                              (HSEM->C2ICR |= (__SEM_MASK__)))
 #else
-#define __HAL_HSEM_CLEAR_FLAG(__SEM_MASK__) (HSEM->ICR |= (__SEM_MASK__))
+#define __HAL_HSEM_CLEAR_FLAG(__SEM_MASK__) (HSEM->C1ICR |= (__SEM_MASK__))
 #endif /* DUAL_CORE */
 
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc.h	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc.h	(revision 59)
@@ -182,37 +182,39 @@
 
 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
-  void (* AlarmAEventCallback)(struct __RTC_HandleTypeDef *hrtc);            /*!< RTC Alarm A Event callback         */
-
-  void (* AlarmBEventCallback)(struct __RTC_HandleTypeDef *hrtc);            /*!< RTC Alarm B Event callback         */
-
-  void (* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc);         /*!< RTC TimeStamp Event callback       */
-
-  void (* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc);       /*!< RTC WakeUpTimer Event callback     */
-
-  void (* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc);         /*!< RTC Tamper 1 Event callback        */
-
-  void (* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc);         /*!< RTC Tamper 2 Event callback        */
-
-  void (* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc);         /*!< RTC Tamper 3 Event callback        */
-
-#if defined(TAMP)
-  void (* InternalTamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 1 Event callback  */
-
-  void (* InternalTamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 2 Event callback  */
-
-  void (* InternalTamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 3 Event callback  */
-
-  void (* InternalTamper4EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 4 Event callback  */
-
-  void (* InternalTamper5EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 5 Event callback  */
-
-  void (* InternalTamper6EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 6 Event callback  */
-
-  void (* InternalTamper8EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Internal Tamper 8 Event callback  */
-#endif /* TAMP */
-
-  void (* MspInitCallback)(struct __RTC_HandleTypeDef *hrtc);                /*!< RTC Msp Init callback              */
-
-  void (* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc);              /*!< RTC Msp DeInit callback            */
+  void (* AlarmAEventCallback)(struct __RTC_HandleTypeDef *hrtc);            /*!< RTC Alarm A Event callback            */
+
+  void (* AlarmBEventCallback)(struct __RTC_HandleTypeDef *hrtc);            /*!< RTC Alarm B Event callback            */
+
+  void (* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc);         /*!< RTC TimeStamp Event callback          */
+
+  void (* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc);       /*!< RTC WakeUpTimer Event callback        */
+
+  void (* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Tamper 1 Event callback           */
+
+#if defined(RTC_TAMPER2_SUPPORT)
+  void (* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Tamper 2 Event callback           */
+#endif /* RTC_TAMPER2_SUPPORT */
+
+  void (* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc);           /*!< RTC Tamper 3 Event callback           */
+
+#if defined(TAMP)
+  void (* InternalTamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 1 Event callback  */
+
+  void (* InternalTamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 2 Event callback  */
+
+  void (* InternalTamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 3 Event callback  */
+
+  void (* InternalTamper4EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 4 Event callback  */
+
+  void (* InternalTamper5EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 5 Event callback  */
+
+  void (* InternalTamper6EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 6 Event callback  */
+
+  void (* InternalTamper8EventCallback)(struct __RTC_HandleTypeDef *hrtc);   /*!< RTC Internal Tamper 8 Event callback  */
+#endif /* TAMP */
+
+  void (* MspInitCallback)(struct __RTC_HandleTypeDef *hrtc);                /*!< RTC Msp Init callback                 */
+
+  void (* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc);              /*!< RTC Msp DeInit callback               */
 
 #endif /* (USE_HAL_RTC_REGISTER_CALLBACKS == 1) */
@@ -231,5 +233,7 @@
   HAL_RTC_WAKEUPTIMER_EVENT_CB_ID       = 3u,    /*!< RTC WakeUp Timer Event Callback ID */
   HAL_RTC_TAMPER1_EVENT_CB_ID           = 4u,    /*!< RTC Tamper 1 Callback ID           */
+#if defined(RTC_TAMPER2_SUPPORT)
   HAL_RTC_TAMPER2_EVENT_CB_ID           = 5u,    /*!< RTC Tamper 2 Callback ID           */
+#endif /* RTC_TAMPER2_SUPPORT */
   HAL_RTC_TAMPER3_EVENT_CB_ID           = 6u,    /*!< RTC Tamper 3 Callback ID           */
 #if defined(TAMP)
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc_ex.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc_ex.h	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_rtc_ex.h	(revision 59)
@@ -57,8 +57,12 @@
 
   uint32_t NoErase;                     /*!< Specifies the Tamper no erase mode.
-                                             This parameter can be a value of @ref RTCEx_Tamper_EraseBackUp_Definitions */
-
-  uint32_t MaskFlag;                     /*!< Specifies the Tamper Flag masking.
-                                             This parameter can be a value of @ref RTCEx_Tamper_MaskFlag_Definitions   */
+                                             This parameter can be a value of @ref RTCEx_Tamper_EraseBackUp_Definitions
+                                             This parameter is not applicable to the STM32H723/33, STM32H725/35 and STM32H730
+                                             devices, and has been kept for backward compatibility */
+
+  uint32_t MaskFlag;                    /*!< Specifies the Tamper Flag masking.
+                                             This parameter can be a value of @ref RTCEx_Tamper_MaskFlag_Definitions
+                                             This parameter is not applicable to the STM32H723/33, STM32H725/35 and STM32H730
+                                             devices, and has been kept for backward compatibility */
 
   uint32_t Filter;                      /*!< Specifies the TAMP Filter Tamper.
@@ -266,9 +270,15 @@
 #else
 #define RTC_TAMPER_1                       RTC_TAMPCR_TAMP1E
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_2                       RTC_TAMPCR_TAMP2E
+#endif /* RTC_TAMPER2_SUPPORT */
 #define RTC_TAMPER_3                       RTC_TAMPCR_TAMP3E
 #endif /* TAMP */
 
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_ALL                     (RTC_TAMPER_1 | RTC_TAMPER_2 | RTC_TAMPER_3)
+#else
+#define RTC_TAMPER_ALL                     (RTC_TAMPER_1 | RTC_TAMPER_3)
+#endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
@@ -283,7 +293,11 @@
 #define RTC_IT_TAMP3                      TAMP_IER_TAMP3IE    /*!< Enable Tamper 3 Interrupt                */
 #else
+#if defined(RTC_TAMPxIE_SUPPORT)
 #define RTC_IT_TAMP1                      RTC_TAMPCR_TAMP1IE  /*!< Enable Tamper 1 Interrupt                */
 #define RTC_IT_TAMP2                      RTC_TAMPCR_TAMP2IE  /*!< Enable Tamper 2 Interrupt                */
 #define RTC_IT_TAMP3                      RTC_TAMPCR_TAMP3IE  /*!< Enable Tamper 3 Interrupt                */
+#else
+#define RTC_IT_TAMP1                      RTC_TAFCR_TAMPIE    /*!< Enable Tamper Interrupt                  */
+#endif /* RTC_TAMPxIE_SUPPORT */
 #endif /* TAMP */
 
@@ -350,11 +364,18 @@
 #else
 #define RTC_TAMPER_1_TRIGGER                RTC_TAMPCR_TAMP1TRG
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_2_TRIGGER                RTC_TAMPCR_TAMP2TRG
+#endif /* RTC_TAMPER2_SUPPORT */
 #define RTC_TAMPER_3_TRIGGER                RTC_TAMPCR_TAMP3TRG
 #endif /* TAMP */
 
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_X_TRIGGER                (RTC_TAMPER_1_TRIGGER |\
                                              RTC_TAMPER_2_TRIGGER |\
                                              RTC_TAMPER_3_TRIGGER)
+#else
+#define RTC_TAMPER_X_TRIGGER                (RTC_TAMPER_1_TRIGGER |\
+                                             RTC_TAMPER_3_TRIGGER)
+#endif /* RTC_TAMPER2_SUPPORT */
 /**
   * @}
@@ -368,6 +389,13 @@
 #define RTC_TAMPER_ERASE_BACKUP_DISABLE    0x01u
 #else
-#define RTC_TAMPER_ERASE_BACKUP_ENABLE     0x00000000u
+#if defined(RTC_TAMPNOERASE_SUPPORT)
+#define RTC_TAMPER_ERASE_BACKUP_ENABLE     0x00u
 #define RTC_TAMPER_ERASE_BACKUP_DISABLE    RTC_TAMPCR_TAMP1NOERASE
+#else
+/*!< These values are not applicable to the STM32H723/33, STM32H725/35 and STM32H730
+     devices, and have been kept for backward compatibility */
+#define RTC_TAMPER_ERASE_BACKUP_ENABLE     0x00u
+#define RTC_TAMPER_ERASE_BACKUP_DISABLE    0x01u
+#endif /* RTC_TAMPNOERASE_SUPPORT */
 #endif /* TAMP */
 
@@ -377,12 +405,16 @@
 #define RTC_DISABLE_BKP_ERASE_ON_TAMPER_3  TAMP_CR2_TAMP3NOERASE
 #else
+#if defined(RTC_TAMPNOERASE_SUPPORT)
 #define RTC_DISABLE_BKP_ERASE_ON_TAMPER_1  RTC_TAMPCR_TAMP1NOERASE
 #define RTC_DISABLE_BKP_ERASE_ON_TAMPER_2  RTC_TAMPCR_TAMP2NOERASE
 #define RTC_DISABLE_BKP_ERASE_ON_TAMPER_3  RTC_TAMPCR_TAMP3NOERASE
-#endif /* TAMP */
-
+#endif /* RTC_TAMPNOERASE_SUPPORT */
+#endif /* TAMP */
+
+#if defined(RTC_TAMPNOERASE_SUPPORT)
 #define RTC_DISABLE_BKP_ERASE_ON_TAMPER_MASK (RTC_DISABLE_BKP_ERASE_ON_TAMPER_1 |\
                                               RTC_DISABLE_BKP_ERASE_ON_TAMPER_2 |\
                                               RTC_DISABLE_BKP_ERASE_ON_TAMPER_3)
+#endif /* RTC_TAMPNOERASE_SUPPORT */
 /**
   * @}
@@ -396,6 +428,13 @@
 #define RTC_TAMPERMASK_FLAG_ENABLE         0x01u
 #else
-#define RTC_TAMPERMASK_FLAG_DISABLE        0x00000000u
+#if defined(RTC_TAMPMASKFLAG_SUPPORT)
+#define RTC_TAMPERMASK_FLAG_DISABLE        0x00u
 #define RTC_TAMPERMASK_FLAG_ENABLE         RTC_TAMPCR_TAMP1MF
+#else
+/*!< These values are not applicable to the STM32H723/33, STM32H725/35 and STM32H730
+     devices, and have been kept for backward compatibility */
+#define RTC_TAMPERMASK_FLAG_DISABLE        0x00u
+#define RTC_TAMPERMASK_FLAG_ENABLE         0x01u
+#endif /* RTC_TAMPMASKFLAG_SUPPORT */
 #endif /* TAMP */
 
@@ -405,12 +444,16 @@
 #define RTC_TAMPER_3_MASK_FLAG             TAMP_CR2_TAMP3MSK
 #else
+#if defined(RTC_TAMPMASKFLAG_SUPPORT)
 #define RTC_TAMPER_1_MASK_FLAG             RTC_TAMPCR_TAMP1MF
 #define RTC_TAMPER_2_MASK_FLAG             RTC_TAMPCR_TAMP2MF
 #define RTC_TAMPER_3_MASK_FLAG             RTC_TAMPCR_TAMP3MF
-#endif /* TAMP */
-
+#endif /* RTC_TAMPMASKFLAG_SUPPORT */
+#endif /* TAMP */
+
+#if defined(RTC_TAMPMASKFLAG_SUPPORT)
 #define RTC_TAMPER_X_MASK_FLAG             (RTC_TAMPER_1_MASK_FLAG |\
                                             RTC_TAMPER_2_MASK_FLAG |\
                                             RTC_TAMPER_3_MASK_FLAG)
+#endif /* RTC_TAMPMASKFLAG_SUPPORT */
 /**
   * @}
@@ -576,5 +619,7 @@
 #else
 #define RTC_FLAG_TAMP1F                   RTC_ISR_TAMP1F
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_FLAG_TAMP2F                   RTC_ISR_TAMP2F
+#endif /* RTC_TAMPER2_SUPPORT */
 #define RTC_FLAG_TAMP3F                   RTC_ISR_TAMP3F
 #endif /* TAMP */
@@ -866,5 +911,7 @@
 #define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__)           (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + TAMP_OFFSET))->CR1 |= (TAMP_CR1_TAMP2E))
 #else
+#if defined(RTC_TAMPER2_SUPPORT)
 #define __HAL_RTC_TAMPER2_ENABLE(__HANDLE__)           ((__HANDLE__)->Instance->TAMPCR |= (RTC_TAMPCR_TAMP2E))
+#endif /* RTC_TAMPER2_SUPPORT */
 #endif /* TAMP */
 
@@ -877,5 +924,7 @@
 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__)          (((TAMP_TypeDef *)((uint32_t)((__HANDLE__)->Instance) + (TAMP_OFFSET))->CR1 &= ~(RTC_TAMPCR_TAMP2E))
 #else
+#if defined(RTC_TAMPER2_SUPPORT)
 #define __HAL_RTC_TAMPER2_DISABLE(__HANDLE__)          ((__HANDLE__)->Instance->TAMPCR &= ~(RTC_TAMPCR_TAMP2E))
+#endif /* RTC_TAMPER2_SUPPORT */
 #endif /* TAMP */
 
@@ -909,6 +958,7 @@
   *             @arg  RTC_IT_TAMPALL: All tampers interrupts
   *             @arg  RTC_IT_TAMP1: Tamper1 interrupt
-  *             @arg  RTC_IT_TAMP2: Tamper2 interrupt
+  *             @arg  RTC_IT_TAMP2: Tamper2 interrupt (*)
   *             @arg  RTC_IT_TAMP3: Tamper3 interrupt
+  *        (*) Not applicable to all devices.
   * @retval None
   */
@@ -926,6 +976,7 @@
   *            @arg  RTC_IT_TAMP: All tampers interrupts
   *            @arg  RTC_IT_TAMP1: Tamper1 interrupt
-  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt
+  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt (*)
   *            @arg  RTC_IT_TAMP3: Tamper3 interrupt
+  *        (*) Not applicable to all devices.
   * @retval None
   */
@@ -943,6 +994,7 @@
   *            @arg  RTC_IT_TAMPALL: All tampers interrupts
   *            @arg  RTC_IT_TAMP1: Tamper1 interrupt
-  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt
+  *            @arg  RTC_IT_TAMP2: Tamper2 interrupt (*)
   *            @arg  RTC_IT_TAMP3: Tamper3 interrupt
+  *        (*) Not applicable to all devices.
   * @retval Flag status
   */
@@ -959,6 +1011,7 @@
   *          This parameter can be:
   *             @arg RTC_FLAG_TAMP1F: Tamper1 flag
-  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag (*)
   *             @arg RTC_FLAG_TAMP3F: Tamper3 flag
+  *        (*) Not applicable to all devices.
   * @retval Flag status
   */
@@ -975,6 +1028,7 @@
   *          This parameter can be:
   *             @arg RTC_FLAG_TAMP1F: Tamper1 flag
-  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag
+  *             @arg RTC_FLAG_TAMP2F: Tamper2 flag (*)
   *             @arg RTC_FLAG_TAMP3F: Tamper3 flag
+  *        (*) Not applicable to all devices.
   * @retval None
   */
@@ -1663,8 +1717,12 @@
 HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper);
 HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#if defined(RTC_TAMPER2_SUPPORT)
 HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
+#endif /* RTC_TAMPER2_SUPPORT */
 HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout);
 void              HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc);
+#if defined(RTC_TAMPER2_SUPPORT)
 void              HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc);
+#endif /* RTC_TAMPER2_SUPPORT */
 void              HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc);
 #if defined(TAMP)
@@ -1775,6 +1833,15 @@
 
 /* Masks Definition */
+#if defined(RTC_TAMPER2_SUPPORT)
 #define RTC_TAMPER_X             ((uint32_t) (RTC_TAMPER_1 | RTC_TAMPER_2 | RTC_TAMPER_3))
+#else
+#define RTC_TAMPER_X             ((uint32_t) (RTC_TAMPER_1 | RTC_TAMPER_3))
+#endif /* RTC_TAMPER2_SUPPORT */
+
+#if defined(RTC_TAMPxIE_SUPPORT)
 #define RTC_TAMPER_X_INTERRUPT   ((uint32_t) (RTC_IT_TAMP1 | RTC_IT_TAMP2 | RTC_IT_TAMP3))
+#else
+#define RTC_TAMPER_X_INTERRUPT   RTC_IT_TAMPALL
+#endif /* RTC_TAMPxIE_SUPPORT */
 
 /**
@@ -1851,5 +1918,5 @@
                                     (((__TAMPER__) & ~RTC_TAMPER_X) == 0x00U))
 
-#define IS_RTC_TAMPER_INTERRUPT(__INTERRUPT__)                                                           \
+#define IS_RTC_TAMPER_INTERRUPT(__INTERRUPT__)                                                 \
               ((((__INTERRUPT__) & (  RTC_TAMPER_X_INTERRUPT | RTC_IT_TAMPALL )) != 0x00U) &&  \
                (((__INTERRUPT__) & (~(RTC_TAMPER_X_INTERRUPT | RTC_IT_TAMPALL))) == 0x00U))
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c	(revision 59)
@@ -52,5 +52,5 @@
 #define __STM32H7xx_HAL_VERSION_MAIN   (0x01UL) /*!< [31:24] main version */
 #define __STM32H7xx_HAL_VERSION_SUB1   (0x0BUL) /*!< [23:16] sub1 version */
-#define __STM32H7xx_HAL_VERSION_SUB2   (0x04UL) /*!< [15:8]  sub2 version */
+#define __STM32H7xx_HAL_VERSION_SUB2   (0x05UL) /*!< [15:8]  sub2 version */
 #define __STM32H7xx_HAL_VERSION_RC     (0x00UL) /*!< [7:0]  release candidate */
 #define __STM32H7xx_HAL_VERSION         ((__STM32H7xx_HAL_VERSION_MAIN << 24)\
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_pwr_ex.c	(revision 59)
@@ -309,4 +309,8 @@
   *         PWR_SMPS_2V5_SUPPLIES_EXT are used only for lines that supports SMPS
   *         regulator.
+  * @note   This API is deprecated and is kept only for backward compatibility's sake.
+  *         The power supply configuration is handled as part of the system initialization
+  *         process during startup.
+  *         For more details, please refer to the power control chapter in the reference manual
   * @retval HAL status.
   */
Index: ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc.c	(revision 54)
+++ ctrl/firmware/Main/CubeMX/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_rtc.c	(revision 59)
@@ -113,8 +113,18 @@
     (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
     (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
-    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
+    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback. (*)
     (+) Tamper3EventCallback         : RTC Tamper 3 Event callback.
+    (+) InternalTamper1EventCallback : RTC Internal Tamper 1 Callback ID (*)
+    (+) InternalTamper2EventCallback : RTC Internal Tamper 2 Callback ID (*)
+    (+) InternalTamper3EventCallback : RTC Internal Tamper 3 Callback ID (*)
+    (+) InternalTamper4EventCallback : RTC Internal Tamper 4 Callback ID (*)
+    (+) InternalTamper5EventCallback : RTC Internal Tamper 5 Callback ID (*)
+    (+) InternalTamper6EventCallback : RTC Internal Tamper 6 Callback ID (*)
+    (+) InternalTamper8EventCallback : RTC Internal Tamper 8 Callback ID (*)
     (+) MspInitCallback              : RTC MspInit callback.
     (+) MspDeInitCallback            : RTC MspDeInit callback.
+
+  (*) Not applicable to all devices.
+
   This function takes as parameters the HAL peripheral handle, the Callback ID
   and a pointer to the user callback function.
@@ -130,8 +140,17 @@
     (+) WakeUpTimerEventCallback     : RTC WakeUpTimer Event callback.
     (+) Tamper1EventCallback         : RTC Tamper 1 Event callback.
-    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback.
+    (+) Tamper2EventCallback         : RTC Tamper 2 Event callback. (*)
     (+) Tamper3EventCallback         : RTC Tamper 3 Event callback.
+    (+) InternalTamper1EventCallback : RTC Internal Tamper 1 Callback ID (*)
+    (+) InternalTamper2EventCallback : RTC Internal Tamper 2 Callback ID (*)
+    (+) InternalTamper3EventCallback : RTC Internal Tamper 3 Callback ID (*)
+    (+) InternalTamper4EventCallback : RTC Internal Tamper 4 Callback ID (*)
+    (+) InternalTamper5EventCallback : RTC Internal Tamper 5 Callback ID (*)
+    (+) InternalTamper6EventCallback : RTC Internal Tamper 6 Callback ID (*)
+    (+) InternalTamper8EventCallback : RTC Internal Tamper 8 Callback ID (*)
     (+) MspInitCallback              : RTC MspInit callback.
     (+) MspDeInitCallback            : RTC MspDeInit callback.
+
+  (*) Not applicable to all devices.
 
   By default, after the HAL_RTC_Init() and when the state is HAL_RTC_STATE_RESET,
@@ -255,5 +274,7 @@
       hrtc->WakeUpTimerEventCallback     =  HAL_RTCEx_WakeUpTimerEventCallback;      /* Legacy weak WakeUpTimerEventCallback */
       hrtc->Tamper1EventCallback         =  HAL_RTCEx_Tamper1EventCallback;          /* Legacy weak Tamper1EventCallback     */
+#if defined(RTC_TAMPER2_SUPPORT)
       hrtc->Tamper2EventCallback         =  HAL_RTCEx_Tamper2EventCallback;          /* Legacy weak Tamper2EventCallback     */
+#endif /* RTC_TAMPER2_SUPPORT */
       hrtc->Tamper3EventCallback         =  HAL_RTCEx_Tamper3EventCallback;          /* Legacy weak Tamper3EventCallback     */
 
@@ -484,15 +505,16 @@
   *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      WakeUp Timer Event Callback ID
   *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
-  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
+  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID (*)
   *          @arg @ref HAL_RTC_TAMPER3_EVENT_CB_ID          Tamper 3 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID Internal Tamper 1 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID Internal Tamper 2 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID Internal Tamper 3 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID Internal Tamper 4 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID Internal Tamper 5 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID Internal Tamper 6 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID Internal Tamper 8 Callback ID
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID Internal Tamper 1 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID Internal Tamper 2 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID Internal Tamper 3 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID Internal Tamper 4 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID Internal Tamper 5 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID Internal Tamper 6 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID Internal Tamper 8 Callback ID (*)
   *          @arg @ref HAL_RTC_MSPINIT_CB_ID                Msp Init callback ID
   *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID              Msp DeInit callback ID
+  *        (*) Not applicable to all devices.
   * @param  pCallback pointer to the Callback function
   * @retval HAL status
@@ -534,7 +556,9 @@
         break;
 
+#if defined(RTC_TAMPER2_SUPPORT)
       case HAL_RTC_TAMPER2_EVENT_CB_ID :
         hrtc->Tamper2EventCallback = pCallback;
         break;
+#endif /* RTC_TAMPER2_SUPPORT */
 
       case HAL_RTC_TAMPER3_EVENT_CB_ID :
@@ -627,15 +651,16 @@
   *          @arg @ref HAL_RTC_WAKEUPTIMER_EVENT_CB_ID      WakeUp Timer Event Callback ID
   *          @arg @ref HAL_RTC_TAMPER1_EVENT_CB_ID          Tamper 1 Callback ID
-  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID
+  *          @arg @ref HAL_RTC_TAMPER2_EVENT_CB_ID          Tamper 2 Callback ID (*)
   *          @arg @ref HAL_RTC_TAMPER3_EVENT_CB_ID          Tamper 3 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID Internal Tamper 1 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID Internal Tamper 2 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID Internal Tamper 3 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID Internal Tamper 4 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID Internal Tamper 5 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID Internal Tamper 6 Callback ID
-  *          @arg @ref HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID Internal Tamper 8 Callback ID
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID Internal Tamper 1 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID Internal Tamper 2 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID Internal Tamper 3 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID Internal Tamper 4 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID Internal Tamper 5 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID Internal Tamper 6 Callback ID (*)
+  *          @arg @ref HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID Internal Tamper 8 Callback ID (*)
   *          @arg @ref HAL_RTC_MSPINIT_CB_ID Msp Init callback ID
   *          @arg @ref HAL_RTC_MSPDEINIT_CB_ID Msp DeInit callback ID
+  *        (*) Not applicable to all devices.
   * @retval HAL status
   */
@@ -671,7 +696,9 @@
         break;
 
+#if defined(RTC_TAMPER2_SUPPORT)
       case HAL_RTC_TAMPER2_EVENT_CB_ID :
         hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;         /* Legacy weak Tamper2EventCallback         */
         break;
+#endif /* RTC_TAMPER2_SUPPORT */
 
       case HAL_RTC_TAMPER3_EVENT_CB_ID :
