diff --git a/src/shared/drivers/dma/DMA.cpp b/src/shared/drivers/dma/DMA.cpp
index 6a1903e6c5c6ed26aa7000ec8cf11e668d7bc21d..b4ce822be5eccb85066a9967be82fbe52a8063cc 100644
--- a/src/shared/drivers/dma/DMA.cpp
+++ b/src/shared/drivers/dma/DMA.cpp
@@ -616,7 +616,7 @@ void DMAStream::readFlags()
 bool DMAStream::setNumberOfDataItems(const uint16_t nBytes)
 {
     // Verify that the stream is disabled while doing it
-    if (registers->CR & DMA_SxCR_EN != 0)
+    if ((registers->CR & DMA_SxCR_EN) != 0)
     {
         // Cannot proceed
         return false;
diff --git a/src/shared/drivers/dma/DMADefs.cpp b/src/shared/drivers/dma/DMADefs.cpp
index 176729890d0aa4f742c5c3063d63311bf97cd980..ea405c5811e80158aee94bab31e5cffcbb434bec 100644
--- a/src/shared/drivers/dma/DMADefs.cpp
+++ b/src/shared/drivers/dma/DMADefs.cpp
@@ -261,11 +261,13 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str1, Channel::CHANNEL4}},
         {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL5}},
         {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL4}},
-        {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3, Channel::CHANNEL5}},
+        // {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL5}}, // Stream currently not supported
 
         {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL2}},
         {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL7}},
-        {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3, Channel::CHANNEL2}},
+        // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL2}}, // Stream currently not supported
         {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}},
 
         {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}},
@@ -297,8 +299,10 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_UART5_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL4}},
         {Peripherals::PE_UART5_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL4}},
 
-        {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1, Channel::CHANNEL5}},
-        {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3, Channel::CHANNEL5}},
+        // {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL5}}, // Stream currently not supported
+        // {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL5}}, // Stream currently not supported
 
         {Peripherals::PE_UART8_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL5}},
         {Peripherals::PE_UART8_RX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL5}},
@@ -427,7 +431,8 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}},
 
         {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}},
-        {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3, Channel::CHANNEL0}},
+        // {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL0}}, // Stream currently not supported
 
         {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
         {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str4, Channel::CHANNEL1}},
@@ -445,6 +450,270 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
 
 #endif  // STM32F429xx
+
+#ifdef STM32F767xx
+
+        // MEM-TO-MEM (only dma2 can perform mem-to-mem copy)
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str0, Channel::CHANNEL0}},
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}},
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
+        // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL0}}, // Stream currently not supported
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}},
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
+        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
+
+        // SPI
+        {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}},
+        // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL3}}, // Stream currently not supported
+        {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}},
+        {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL3}},
+
+        {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL0}},
+        {Peripherals::PE_SPI2_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL9}},
+        // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL9}}, // Stream currently not supported
+        // {Peripherals::PE_SPI2_RX, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL0}}, // Stream currently not supported
+
+        {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL0}},
+        {Peripherals::PE_SPI3_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL0}},
+        {Peripherals::PE_SPI3_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL0}},
+        {Peripherals::PE_SPI3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL0}},
+
+        {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str1, Channel::CHANNEL4}},
+        {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL5}},
+        {Peripherals::PE_SPI4_TX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL9}},
+        {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str0, Channel::CHANNEL4}},
+        // {Peripherals::PE_SPI4_RX, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL5}}, // Stream currently not supported
+
+        {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str4, Channel::CHANNEL2}},
+        {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL7}},
+        // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL2}}, // Stream currently not supported
+        {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}},
+        {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL9}},
+
+        {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}},
+        {Peripherals::PE_SPI6_RX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL1}},
+
+        {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL3}},
+        {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str2, Channel::CHANNEL11}},
+
+        // UART & USART
+        {Peripherals::PE_USART1_TX,
+         {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
+        {Peripherals::PE_USART1_RX,
+         {DMAStreamId::DMA2_Str2, Channel::CHANNEL4}},
+        {Peripherals::PE_USART1_RX,
+         {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
+
+        {Peripherals::PE_USART2_TX,
+         {DMAStreamId::DMA1_Str6, Channel::CHANNEL4}},
+        {Peripherals::PE_USART2_RX,
+         {DMAStreamId::DMA1_Str5, Channel::CHANNEL4}},
+
+        // {Peripherals::PE_USART3_TX, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL4}}, // Stream currently not supported
+        {Peripherals::PE_USART3_TX,
+         {DMAStreamId::DMA1_Str4, Channel::CHANNEL7}},
+        // {Peripherals::PE_USART3_RX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL4}}, // Stream currently not supported
+
+        {Peripherals::PE_UART4_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL4}},
+        {Peripherals::PE_UART4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL4}},
+
+        {Peripherals::PE_UART5_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL4}},
+        {Peripherals::PE_UART5_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL4}},
+
+        // {Peripherals::PE_UART7_TX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL5}}, // Stream currently not supported
+        // {Peripherals::PE_UART7_RX, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL5}}, // Stream currently not supported
+
+        {Peripherals::PE_UART8_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL5}},
+        {Peripherals::PE_UART8_RX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL5}},
+
+        {Peripherals::PE_USART6_TX,
+         {DMAStreamId::DMA2_Str6, Channel::CHANNEL5}},
+        {Peripherals::PE_USART6_TX,
+         {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
+        {Peripherals::PE_USART6_RX,
+         {DMAStreamId::DMA2_Str1, Channel::CHANNEL5}},
+        {Peripherals::PE_USART6_RX,
+         {DMAStreamId::DMA2_Str2, Channel::CHANNEL5}},
+
+        // I2C
+        {Peripherals::PE_I2C1_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL1}},
+        {Peripherals::PE_I2C1_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL1}},
+        {Peripherals::PE_I2C1_RX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL1}},
+        {Peripherals::PE_I2C1_RX, {DMAStreamId::DMA1_Str5, Channel::CHANNEL1}},
+
+        {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str7, Channel::CHANNEL7}},
+        {Peripherals::PE_I2C2_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL8}},
+        {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL7}},
+        // {Peripherals::PE_I2C2_RX, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL7}}, // Stream currently not supported
+
+        {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str4, Channel::CHANNEL3}},
+        {Peripherals::PE_I2C3_TX, {DMAStreamId::DMA1_Str0, Channel::CHANNEL8}},
+        {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL3}},
+        // {Peripherals::PE_I2C3_RX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL1}}, // Stream currently not supported
+
+        {Peripherals::PE_I2C4_TX, {DMAStreamId::DMA1_Str6, Channel::CHANNEL8}},
+        {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL2}},
+        // {Peripherals::PE_I2C4_RX, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL8}}, // Stream currently not supported
+
+        // TIMERS
+        {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_TRIG,
+         {DMAStreamId::DMA2_Str0, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_TRIG,
+         {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_COM, {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
+        {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str1, Channel::CHANNEL6}},
+        // {Peripherals::PE_TIM1_CH1, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL6}}, // Stream currently not supported
+        {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
+        {Peripherals::PE_TIM1_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
+        {Peripherals::PE_TIM1_CH3, {DMAStreamId::DMA2_Str6, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM1_CH4, {DMAStreamId::DMA2_Str4, Channel::CHANNEL6}},
+
+        // {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL3}}, // Stream currently not supported
+        {Peripherals::PE_TIM2_UP, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}},
+        {Peripherals::PE_TIM2_CH1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL3}},
+        {Peripherals::PE_TIM2_CH2, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}},
+        // {Peripherals::PE_TIM2_CH3, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL3}}, // Stream currently not supported
+        {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str6, Channel::CHANNEL3}},
+        {Peripherals::PE_TIM2_CH4, {DMAStreamId::DMA1_Str7, Channel::CHANNEL3}},
+
+        {Peripherals::PE_TIM3_UP, {DMAStreamId::DMA1_Str2, Channel::CHANNEL5}},
+        {Peripherals::PE_TIM3_TRIG,
+         {DMAStreamId::DMA1_Str4, Channel::CHANNEL5}},
+        {Peripherals::PE_TIM3_CH1, {DMAStreamId::DMA1_Str4, Channel::CHANNEL5}},
+        {Peripherals::PE_TIM3_CH2, {DMAStreamId::DMA1_Str5, Channel::CHANNEL5}},
+        {Peripherals::PE_TIM3_CH3, {DMAStreamId::DMA1_Str7, Channel::CHANNEL5}},
+        {Peripherals::PE_TIM3_CH4, {DMAStreamId::DMA1_Str2, Channel::CHANNEL5}},
+
+        {Peripherals::PE_TIM4_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL2}},
+        {Peripherals::PE_TIM4_CH1, {DMAStreamId::DMA1_Str0, Channel::CHANNEL2}},
+        // {Peripherals::PE_TIM4_CH2, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL2}}, // Stream currently not supported
+        {Peripherals::PE_TIM4_CH3, {DMAStreamId::DMA1_Str7, Channel::CHANNEL2}},
+
+        {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM5_UP, {DMAStreamId::DMA1_Str6, Channel::CHANNEL6}},
+        // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL6}}, // Stream currently not supported
+        // {Peripherals::PE_TIM5_TRIG, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL6}}, // Stream currently not supported
+        {Peripherals::PE_TIM5_CH1, {DMAStreamId::DMA1_Str2, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM5_CH2, {DMAStreamId::DMA1_Str4, Channel::CHANNEL6}},
+        {Peripherals::PE_TIM5_CH3, {DMAStreamId::DMA1_Str0, Channel::CHANNEL6}},
+        // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL6}}, // Stream currently not supported
+        // {Peripherals::PE_TIM5_CH4, {DMAStreamId::DMA1_Str3,
+        // Channel::CHANNEL6}}, // Stream currently not supported
+
+        // {Peripherals::PE_TIM6_UP, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL7}}, // Stream currently not supported
+
+        {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str2, Channel::CHANNEL1}},
+        {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}},
+
+        {Peripherals::PE_TIM8_UP, {DMAStreamId::DMA2_Str1, Channel::CHANNEL7}},
+        {Peripherals::PE_TIM8_TRIG,
+         {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
+        {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}},
+        {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
+        // {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL7}}, // Stream currently not supported
+        {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
+        {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}},
+        {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+
+        // Others
+        {Peripherals::PE_DAC1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL7}},
+        {Peripherals::PE_DAC2, {DMAStreamId::DMA1_Str6, Channel::CHANNEL7}},
+
+        {Peripherals::PE_ADC1, {DMAStreamId::DMA2_Str0, Channel::CHANNEL0}},
+        {Peripherals::PE_ADC1, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}},
+
+        {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL1}},
+        // {Peripherals::PE_ADC2, {DMAStreamId::DMA2_Str3, Channel::CHANNEL1}},
+        // // Stream currently not supported
+
+        {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str0, Channel::CHANNEL2}},
+        {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}},
+
+        {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str1, Channel::CHANNEL0}},
+        {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str6, Channel::CHANNEL10}},
+        // {Peripherals::PE_SAI1_A, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL0}}, // Stream currently not supported
+        {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str4, Channel::CHANNEL3}},
+        {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str2, Channel::CHANNEL10}},
+
+        {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
+        {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str4, Channel::CHANNEL1}},
+        {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str0, Channel::CHANNEL10}},
+        {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
+        {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str6, Channel::CHANNEL3}},
+        {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str1, Channel::CHANNEL10}},
+
+        {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str1, Channel::CHANNEL1}},
+        {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
+
+        // {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL4}}, // Stream currently not supported
+        {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}},
+        {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str0, Channel::CHANNEL11}},
+        {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5, Channel::CHANNEL11}},
+
+        {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}},
+        {Peripherals::PE_CRYP_IN, {DMAStreamId::DMA2_Str6, Channel::CHANNEL2}},
+
+        {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
+
+        // {Peripherals::PE_SPDIFRX_DT, {DMAStreamId::DMA1_Str1,
+        // Channel::CHANNEL0}}, // Stream currently not supported
+        {Peripherals::PE_SPDIFRX_CS,
+         {DMAStreamId::DMA1_Str6, Channel::CHANNEL0}},
+
+        {Peripherals::PE_DFSDM1_FLT0,
+         {DMAStreamId::DMA2_Str0, Channel::CHANNEL8}},
+        {Peripherals::PE_DFSDM1_FLT0,
+         {DMAStreamId::DMA2_Str4, Channel::CHANNEL8}},
+        {Peripherals::PE_DFSDM1_FLT1,
+         {DMAStreamId::DMA2_Str1, Channel::CHANNEL8}},
+        {Peripherals::PE_DFSDM1_FLT1,
+         {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}},
+        {Peripherals::PE_DFSDM1_FLT2,
+         {DMAStreamId::DMA2_Str2, Channel::CHANNEL8}},
+        {Peripherals::PE_DFSDM1_FLT2,
+         {DMAStreamId::DMA2_Str6, Channel::CHANNEL8}},
+        // {Peripherals::PE_DFSDM1_FLT3, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL8}}, // Stream currently not supported
+        {Peripherals::PE_DFSDM1_FLT3,
+         {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}},
+
+        {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str0, Channel::CHANNEL9}},
+        // {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str3,
+        // Channel::CHANNEL9}}, // Stream currently not supported
+        {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str1, Channel::CHANNEL9}},
+        {Peripherals::PE_JPEG_OUT, {DMAStreamId::DMA2_Str4, Channel::CHANNEL9}},
+
+#endif  // STM32F767xx
 };
 
 }  // namespace DMADefs
diff --git a/src/shared/drivers/dma/DMADefs.h b/src/shared/drivers/dma/DMADefs.h
index 91426006b19aa57b7db0aa08b88138e3142d34ff..971d553e15ca75f84a53c68d6a3c289eb273f278 100644
--- a/src/shared/drivers/dma/DMADefs.h
+++ b/src/shared/drivers/dma/DMADefs.h
@@ -77,6 +77,7 @@ enum class DMAStreamId : uint8_t
  */
 enum class Channel : uint32_t
 {
+    // The first 8 channels are valid for all supported channels
     CHANNEL0 = 0,
     CHANNEL1 = DMA_SxCR_CHSEL_0,
     CHANNEL2 = DMA_SxCR_CHSEL_1,
@@ -85,6 +86,15 @@ enum class Channel : uint32_t
     CHANNEL5 = DMA_SxCR_CHSEL_2 | DMA_SxCR_CHSEL_0,
     CHANNEL6 = DMA_SxCR_CHSEL_2 | DMA_SxCR_CHSEL_1,
     CHANNEL7 = DMA_SxCR_CHSEL,
+
+// stm32f767 also has channels from 8 to 11
+#ifdef STM32F767xx
+    // TODO: verify
+    CHANNEL8  = DMA_SxCR_CHSEL_3,
+    CHANNEL9  = DMA_SxCR_CHSEL_3 | DMA_SxCR_CHSEL_0,
+    CHANNEL10 = DMA_SxCR_CHSEL_3 | DMA_SxCR_CHSEL_1,
+    CHANNEL11 = DMA_SxCR_CHSEL_3 | DMA_SxCR_CHSEL_2,
+#endif  // STM32F767xx
 };
 
 /**
@@ -106,6 +116,7 @@ enum class Peripherals : uint8_t
     PE_SPI5_RX,
     PE_SPI6_TX,
     PE_SPI6_RX,
+    PE_QUADSPI,
     PE_USART1_TX,
     PE_USART1_RX,
     PE_USART2_TX,
@@ -128,6 +139,8 @@ enum class Peripherals : uint8_t
     PE_I2C2_RX,
     PE_I2C3_TX,
     PE_I2C3_RX,
+    PE_I2C4_TX,
+    PE_I2C4_RX,
     PE_I2S2_EXT_TX,
     PE_I2S2_EXT_RX,
     PE_I2S3_EXT_TX,
@@ -175,13 +188,24 @@ enum class Peripherals : uint8_t
     PE_ADC2,
     PE_ADC3,
     PE_SAI1_A,
+    PE_SAI2_A,
     PE_SAI1_B,
+    PE_SAI2_B,
     PE_DCMI,
     PE_SDIO,
+    PE_SDMMC1,
+    PE_SDMMC2,
     PE_CRYP_OUT,
     PE_CRYP_IN,
     PE_HASH_IN,
-
+    PE_SPDIFRX_DT,
+    PE_SPDIFRX_CS,
+    PE_DFSDM1_FLT0,
+    PE_DFSDM1_FLT1,
+    PE_DFSDM1_FLT2,
+    PE_DFSDM1_FLT3,
+    PE_JPEG_IN,
+    PE_JPEG_OUT,
 };
 
 /**
@@ -194,6 +218,11 @@ extern const IRQn_Type irqNumberMapping[];
 /**
  * @brief Maps the peripherals to the dma streams (and
  * the corresponding channel) that are connected with.
+ *
+ * Supported architectures:
+ * - STM32F407xx
+ * - STM32F429xx
+ * - STM32F767xx
  */
 extern const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
     mapPeripherals;