diff --git a/bsp/CME_M7/rtconfig.h b/bsp/CME_M7/rtconfig.h
index f981ad9a91..886c28cb9e 100644
--- a/bsp/CME_M7/rtconfig.h
+++ b/bsp/CME_M7/rtconfig.h
@@ -55,6 +55,7 @@
#define RT_USING_DEVICE
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/allwinner_tina/rtconfig.h b/bsp/allwinner_tina/rtconfig.h
index 2fb7c07df3..25a1302b1a 100644
--- a/bsp/allwinner_tina/rtconfig.h
+++ b/bsp/allwinner_tina/rtconfig.h
@@ -111,6 +111,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/amebaz/rtconfig.h b/bsp/amebaz/rtconfig.h
index 5d8ee1df02..92bac2d294 100644
--- a/bsp/amebaz/rtconfig.h
+++ b/bsp/amebaz/rtconfig.h
@@ -75,6 +75,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* Using WiFi */
diff --git a/bsp/apollo2/rtconfig.h b/bsp/apollo2/rtconfig.h
index 5f94db4eff..dfa458bc4e 100644
--- a/bsp/apollo2/rtconfig.h
+++ b/bsp/apollo2/rtconfig.h
@@ -99,6 +99,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
#define RT_USING_I2C
diff --git a/bsp/asm9260t/rtconfig.h b/bsp/asm9260t/rtconfig.h
index def7f36a71..bf1f76fefb 100644
--- a/bsp/asm9260t/rtconfig.h
+++ b/bsp/asm9260t/rtconfig.h
@@ -75,6 +75,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_I2C is not set */
diff --git a/bsp/at91sam9260/rtconfig.h b/bsp/at91sam9260/rtconfig.h
index 62ceba4914..b9ec26f390 100755
--- a/bsp/at91sam9260/rtconfig.h
+++ b/bsp/at91sam9260/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/beaglebone/rtconfig.h b/bsp/beaglebone/rtconfig.h
index 5bc7ab92db..c49528049d 100644
--- a/bsp/beaglebone/rtconfig.h
+++ b/bsp/beaglebone/rtconfig.h
@@ -77,6 +77,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/ck802/rtconfig.h b/bsp/ck802/rtconfig.h
index 3eb48b11f0..076d48e534 100644
--- a/bsp/ck802/rtconfig.h
+++ b/bsp/ck802/rtconfig.h
@@ -71,6 +71,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/dm365/rtconfig.h b/bsp/dm365/rtconfig.h
index ae16abdca6..4f3698f124 100644
--- a/bsp/dm365/rtconfig.h
+++ b/bsp/dm365/rtconfig.h
@@ -125,6 +125,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/fh8620/rtconfig.h b/bsp/fh8620/rtconfig.h
index cefbff053c..01a2d2d45c 100644
--- a/bsp/fh8620/rtconfig.h
+++ b/bsp/fh8620/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 64
//
diff --git a/bsp/frdm-k64f/rtconfig.h b/bsp/frdm-k64f/rtconfig.h
index d8e6f6dbc5..8d0ad639ce 100644
--- a/bsp/frdm-k64f/rtconfig.h
+++ b/bsp/frdm-k64f/rtconfig.h
@@ -63,6 +63,7 @@
#define RT_USING_DEVICE_IPC
/* Using Serial Device Driver Framework" default="true" */
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_USING_COMPONENTS_INIT
diff --git a/bsp/gd32303e-eval/rtconfig.h b/bsp/gd32303e-eval/rtconfig.h
index 26f476db78..479ad99af5 100644
--- a/bsp/gd32303e-eval/rtconfig.h
+++ b/bsp/gd32303e-eval/rtconfig.h
@@ -87,6 +87,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_PIN
#define RT_USING_SPI
diff --git a/bsp/gd32450z-eval/rtconfig.h b/bsp/gd32450z-eval/rtconfig.h
index 1eaeb4b827..500aab6290 100644
--- a/bsp/gd32450z-eval/rtconfig.h
+++ b/bsp/gd32450z-eval/rtconfig.h
@@ -88,6 +88,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/gkipc/rtconfig.h b/bsp/gkipc/rtconfig.h
index 23df0f0704..2c0233cf29 100644
--- a/bsp/gkipc/rtconfig.h
+++ b/bsp/gkipc/rtconfig.h
@@ -114,6 +114,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/hifive1/rtconfig.h b/bsp/hifive1/rtconfig.h
index 762eb92df5..1d96bfc3db 100644
--- a/bsp/hifive1/rtconfig.h
+++ b/bsp/hifive1/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* Using WiFi */
diff --git a/bsp/imx6sx/cortex-a9/rtconfig.h b/bsp/imx6sx/cortex-a9/rtconfig.h
index 71f7cf4d9b..30de937b05 100644
--- a/bsp/imx6sx/cortex-a9/rtconfig.h
+++ b/bsp/imx6sx/cortex-a9/rtconfig.h
@@ -77,6 +77,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/imx6ul/rtconfig.h b/bsp/imx6ul/rtconfig.h
index f37f620a9c..ee3857dcb8 100644
--- a/bsp/imx6ul/rtconfig.h
+++ b/bsp/imx6ul/rtconfig.h
@@ -72,6 +72,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 64
//
diff --git a/bsp/imxrt/imxrt1050-ArchMix/rtconfig.h b/bsp/imxrt/imxrt1050-ArchMix/rtconfig.h
index 525013e73e..98c795a026 100644
--- a/bsp/imxrt/imxrt1050-ArchMix/rtconfig.h
+++ b/bsp/imxrt/imxrt1050-ArchMix/rtconfig.h
@@ -95,6 +95,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_CPUTIME
#define RT_USING_CPUTIME_CORTEXM
#define RT_USING_I2C
diff --git a/bsp/imxrt/imxrt1050-evk/rtconfig.h b/bsp/imxrt/imxrt1050-evk/rtconfig.h
index b5e68cdab9..f1a7a6785a 100644
--- a/bsp/imxrt/imxrt1050-evk/rtconfig.h
+++ b/bsp/imxrt/imxrt1050-evk/rtconfig.h
@@ -95,6 +95,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_CPUTIME
#define RT_USING_CPUTIME_CORTEXM
#define RT_USING_I2C
diff --git a/bsp/imxrt1052-evk/rtconfig.h b/bsp/imxrt1052-evk/rtconfig.h
index ef00ef09ff..d4298a93ca 100644
--- a/bsp/imxrt1052-evk/rtconfig.h
+++ b/bsp/imxrt1052-evk/rtconfig.h
@@ -91,6 +91,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
diff --git a/bsp/lpc408x/rtconfig.h b/bsp/lpc408x/rtconfig.h
index 650dade6f0..0d5469786f 100644
--- a/bsp/lpc408x/rtconfig.h
+++ b/bsp/lpc408x/rtconfig.h
@@ -112,6 +112,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_CAN
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/lpc43xx/M0/rtconfig.h b/bsp/lpc43xx/M0/rtconfig.h
index c48cf2525c..90531287dd 100644
--- a/bsp/lpc43xx/M0/rtconfig.h
+++ b/bsp/lpc43xx/M0/rtconfig.h
@@ -75,6 +75,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 256
//
diff --git a/bsp/lpc43xx/M4/rtconfig.h b/bsp/lpc43xx/M4/rtconfig.h
index 9bb1b656f2..0b30998cc0 100644
--- a/bsp/lpc43xx/M4/rtconfig.h
+++ b/bsp/lpc43xx/M4/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 256
//
diff --git a/bsp/lpc5410x/rtconfig.h b/bsp/lpc5410x/rtconfig.h
index bd231931e3..c054bfabba 100644
--- a/bsp/lpc5410x/rtconfig.h
+++ b/bsp/lpc5410x/rtconfig.h
@@ -68,6 +68,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
//
diff --git a/bsp/lpc54114-lite/rtconfig.h b/bsp/lpc54114-lite/rtconfig.h
index ca76f59014..4fc1054b7b 100644
--- a/bsp/lpc54114-lite/rtconfig.h
+++ b/bsp/lpc54114-lite/rtconfig.h
@@ -95,6 +95,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
diff --git a/bsp/lpc54608-LPCXpresso/rtconfig.h b/bsp/lpc54608-LPCXpresso/rtconfig.h
index 7738810b58..46855f7713 100644
--- a/bsp/lpc54608-LPCXpresso/rtconfig.h
+++ b/bsp/lpc54608-LPCXpresso/rtconfig.h
@@ -95,6 +95,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
diff --git a/bsp/lpc824/rtconfig.h b/bsp/lpc824/rtconfig.h
index 1426427b8d..ccc1a76d43 100644
--- a/bsp/lpc824/rtconfig.h
+++ b/bsp/lpc824/rtconfig.h
@@ -128,6 +128,7 @@
// Using Serial
// Using Serial
//#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
//
diff --git a/bsp/ls1cdev/rtconfig.h b/bsp/ls1cdev/rtconfig.h
index 889d051eef..7e140a731c 100644
--- a/bsp/ls1cdev/rtconfig.h
+++ b/bsp/ls1cdev/rtconfig.h
@@ -124,6 +124,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_CAN
/* RT_CAN_USING_HDR is not set */
/* RT_USING_HWTIMER is not set */
diff --git a/bsp/mb9bf506r/rtconfig.h b/bsp/mb9bf506r/rtconfig.h
index fa8f5a3014..9499045fd1 100644
--- a/bsp/mb9bf506r/rtconfig.h
+++ b/bsp/mb9bf506r/rtconfig.h
@@ -68,6 +68,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_USING_UART0_0
//
diff --git a/bsp/nrf51822/rtconfig.h b/bsp/nrf51822/rtconfig.h
index 8731f29c30..b41bbdadfa 100644
--- a/bsp/nrf51822/rtconfig.h
+++ b/bsp/nrf51822/rtconfig.h
@@ -68,6 +68,7 @@
#define RT_USING_DEVICE_IPC
//
//#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/nrf52832/rtconfig.h b/bsp/nrf52832/rtconfig.h
index b8710f31c8..64349ec531 100644
--- a/bsp/nrf52832/rtconfig.h
+++ b/bsp/nrf52832/rtconfig.h
@@ -70,6 +70,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/nuvoton_m05x/rtconfig.h b/bsp/nuvoton_m05x/rtconfig.h
index 4d5ab6b201..db3cc679c8 100644
--- a/bsp/nuvoton_m05x/rtconfig.h
+++ b/bsp/nuvoton_m05x/rtconfig.h
@@ -96,6 +96,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/nuvoton_m451/rtconfig.h b/bsp/nuvoton_m451/rtconfig.h
index 58cdfdcb24..cb4868725c 100644
--- a/bsp/nuvoton_m451/rtconfig.h
+++ b/bsp/nuvoton_m451/rtconfig.h
@@ -65,6 +65,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/nuvoton_m487/rtconfig.h b/bsp/nuvoton_m487/rtconfig.h
index 6e3b9c097e..5eb9dca57e 100644
--- a/bsp/nuvoton_m487/rtconfig.h
+++ b/bsp/nuvoton_m487/rtconfig.h
@@ -75,6 +75,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 64
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* Using WiFi */
diff --git a/bsp/nuvoton_nuc472/rtconfig.h b/bsp/nuvoton_nuc472/rtconfig.h
index dccf59ecc8..9d1268a7ff 100644
--- a/bsp/nuvoton_nuc472/rtconfig.h
+++ b/bsp/nuvoton_nuc472/rtconfig.h
@@ -66,6 +66,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/nv32f100x/rtconfig.h b/bsp/nv32f100x/rtconfig.h
index 0279e205ae..e5b146528e 100644
--- a/bsp/nv32f100x/rtconfig.h
+++ b/bsp/nv32f100x/rtconfig.h
@@ -66,6 +66,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_HOOK
#define RT_USING_CPU_USAGE
/* SECTION: Console options */
diff --git a/bsp/qemu-vexpress-a9/rtconfig.h b/bsp/qemu-vexpress-a9/rtconfig.h
index 618aa5c599..2ebcd96019 100644
--- a/bsp/qemu-vexpress-a9/rtconfig.h
+++ b/bsp/qemu-vexpress-a9/rtconfig.h
@@ -134,6 +134,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/qemu-vexpress-gemini/rtconfig.h b/bsp/qemu-vexpress-gemini/rtconfig.h
index a1dcba1248..7218fedca1 100644
--- a/bsp/qemu-vexpress-gemini/rtconfig.h
+++ b/bsp/qemu-vexpress-gemini/rtconfig.h
@@ -110,6 +110,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/raspi2/rtconfig.h b/bsp/raspi2/rtconfig.h
index 073c18bed2..d0b692f9ab 100644
--- a/bsp/raspi2/rtconfig.h
+++ b/bsp/raspi2/rtconfig.h
@@ -100,6 +100,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/realview-a8/rtconfig.h b/bsp/realview-a8/rtconfig.h
index 2b196b4466..d06e81a0e1 100644
--- a/bsp/realview-a8/rtconfig.h
+++ b/bsp/realview-a8/rtconfig.h
@@ -72,6 +72,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 64
//
diff --git a/bsp/rm48x50/rtconfig.h b/bsp/rm48x50/rtconfig.h
index a4189b9308..f7d9235a5b 100644
--- a/bsp/rm48x50/rtconfig.h
+++ b/bsp/rm48x50/rtconfig.h
@@ -70,6 +70,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 64
//
diff --git a/bsp/rx/rtconfig.h b/bsp/rx/rtconfig.h
index e1d6cb3fe8..364204696f 100644
--- a/bsp/rx/rtconfig.h
+++ b/bsp/rx/rtconfig.h
@@ -66,6 +66,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/samd21/rtconfig.h b/bsp/samd21/rtconfig.h
index 1ccf6616a0..c22a5496e7 100644
--- a/bsp/samd21/rtconfig.h
+++ b/bsp/samd21/rtconfig.h
@@ -68,6 +68,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/simulator/rtconfig.h b/bsp/simulator/rtconfig.h
index 995ab93c3b..4955172df7 100755
--- a/bsp/simulator/rtconfig.h
+++ b/bsp/simulator/rtconfig.h
@@ -108,6 +108,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/stm32/libraries/templates/stm32f10x/rtconfig.h b/bsp/stm32/libraries/templates/stm32f10x/rtconfig.h
index f213d2e34b..ed7bf5a5f7 100644
--- a/bsp/stm32/libraries/templates/stm32f10x/rtconfig.h
+++ b/bsp/stm32/libraries/templates/stm32f10x/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.h b/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.h
index 2f9f7370d7..21d3064ad0 100644
--- a/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.h
+++ b/bsp/stm32/libraries/templates/stm32f4xx/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.h b/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.h
index ceec0bd451..1b16eff99f 100644
--- a/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.h
+++ b/bsp/stm32/libraries/templates/stm32l4xx/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/stm32f103-atk-nano/rtconfig.h b/bsp/stm32/stm32f103-atk-nano/rtconfig.h
index c9087c09a6..a711e28ea1 100644
--- a/bsp/stm32/stm32f103-atk-nano/rtconfig.h
+++ b/bsp/stm32/stm32f103-atk-nano/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.h b/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.h
index fdd6a747f4..db085c7e6b 100644
--- a/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.h
+++ b/bsp/stm32/stm32f103-fire-arbitrary/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/stm32f407-atk-explorer/rtconfig.h b/bsp/stm32/stm32f407-atk-explorer/rtconfig.h
index 948a7a65d7..917f5fb0b5 100644
--- a/bsp/stm32/stm32f407-atk-explorer/rtconfig.h
+++ b/bsp/stm32/stm32f407-atk-explorer/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/stm32f429-atk-apollo/rtconfig.h b/bsp/stm32/stm32f429-atk-apollo/rtconfig.h
index d236ab8d53..c68a679a37 100644
--- a/bsp/stm32/stm32f429-atk-apollo/rtconfig.h
+++ b/bsp/stm32/stm32f429-atk-apollo/rtconfig.h
@@ -76,6 +76,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32/stm32f429-fire-challenger/rtconfig.h b/bsp/stm32/stm32f429-fire-challenger/rtconfig.h
index 1357a79922..cda1392595 100644
--- a/bsp/stm32/stm32f429-fire-challenger/rtconfig.h
+++ b/bsp/stm32/stm32f429-fire-challenger/rtconfig.h
@@ -77,6 +77,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/stm32f0x/rtconfig.h b/bsp/stm32f0x/rtconfig.h
index bee200136a..0a71690b53 100644
--- a/bsp/stm32f0x/rtconfig.h
+++ b/bsp/stm32f0x/rtconfig.h
@@ -66,6 +66,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* SECTION: Console options */
#define RT_USING_CONSOLE
diff --git a/bsp/stm32f107/rtconfig.h b/bsp/stm32f107/rtconfig.h
index bc4e8e4232..2e20ba88fc 100644
--- a/bsp/stm32f107/rtconfig.h
+++ b/bsp/stm32f107/rtconfig.h
@@ -90,6 +90,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/stm32f10x-HAL/rtconfig.h b/bsp/stm32f10x-HAL/rtconfig.h
index ad9537c495..84514b603c 100644
--- a/bsp/stm32f10x-HAL/rtconfig.h
+++ b/bsp/stm32f10x-HAL/rtconfig.h
@@ -83,6 +83,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/stm32f10x/rtconfig.h b/bsp/stm32f10x/rtconfig.h
index e41cb5fc10..e1d38b4667 100644
--- a/bsp/stm32f10x/rtconfig.h
+++ b/bsp/stm32f10x/rtconfig.h
@@ -112,6 +112,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_CAN
#define RT_CAN_USING_HDR
/* RT_USING_HWTIMER is not set */
diff --git a/bsp/stm32f40x/rtconfig.h b/bsp/stm32f40x/rtconfig.h
index 9482d19aa3..c855f42fad 100644
--- a/bsp/stm32f40x/rtconfig.h
+++ b/bsp/stm32f40x/rtconfig.h
@@ -93,6 +93,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/stm32f411-nucleo/rtconfig.h b/bsp/stm32f411-nucleo/rtconfig.h
index e3b684271c..3a925c78b4 100644
--- a/bsp/stm32f411-nucleo/rtconfig.h
+++ b/bsp/stm32f411-nucleo/rtconfig.h
@@ -70,6 +70,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* Using USB */
diff --git a/bsp/stm32f429-apollo/rtconfig.h b/bsp/stm32f429-apollo/rtconfig.h
index 4de160fe17..9c28c2c959 100644
--- a/bsp/stm32f429-apollo/rtconfig.h
+++ b/bsp/stm32f429-apollo/rtconfig.h
@@ -90,6 +90,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_MTD_NAND
diff --git a/bsp/stm32f429-armfly/rtconfig.h b/bsp/stm32f429-armfly/rtconfig.h
index 0f302ccee4..b570ea5234 100644
--- a/bsp/stm32f429-armfly/rtconfig.h
+++ b/bsp/stm32f429-armfly/rtconfig.h
@@ -92,6 +92,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
diff --git a/bsp/stm32f429-disco/rtconfig.h b/bsp/stm32f429-disco/rtconfig.h
index 962f62bc55..91dd49c872 100644
--- a/bsp/stm32f429-disco/rtconfig.h
+++ b/bsp/stm32f429-disco/rtconfig.h
@@ -75,6 +75,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
diff --git a/bsp/stm32f4xx-HAL/rtconfig.h b/bsp/stm32f4xx-HAL/rtconfig.h
index 8fe06d171c..e490ee1f31 100644
--- a/bsp/stm32f4xx-HAL/rtconfig.h
+++ b/bsp/stm32f4xx-HAL/rtconfig.h
@@ -80,6 +80,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_I2C is not set */
diff --git a/bsp/stm32f7-disco/rtconfig.h b/bsp/stm32f7-disco/rtconfig.h
index abbe9d6f59..5d0a04aad7 100644
--- a/bsp/stm32f7-disco/rtconfig.h
+++ b/bsp/stm32f7-disco/rtconfig.h
@@ -70,6 +70,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/stm32h743-nucleo/rtconfig.h b/bsp/stm32h743-nucleo/rtconfig.h
index e341d043f9..173db7f63c 100644
--- a/bsp/stm32h743-nucleo/rtconfig.h
+++ b/bsp/stm32h743-nucleo/rtconfig.h
@@ -108,6 +108,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/stm32l072/rtconfig.h b/bsp/stm32l072/rtconfig.h
index 57be51ea76..5e750f5d1f 100644
--- a/bsp/stm32l072/rtconfig.h
+++ b/bsp/stm32l072/rtconfig.h
@@ -66,6 +66,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_HOOK
#define RT_USING_CPU_USAGE
/* SECTION: Console options */
diff --git a/bsp/stm32l475-iot-disco/rtconfig.h b/bsp/stm32l475-iot-disco/rtconfig.h
index 89428e1cf4..f7b00767d2 100644
--- a/bsp/stm32l475-iot-disco/rtconfig.h
+++ b/bsp/stm32l475-iot-disco/rtconfig.h
@@ -61,6 +61,7 @@
#define RT_USING_DEVICE_IPC
/* Using serial framework */
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_UART1
#define RT_USING_UART2
diff --git a/bsp/stm32l476-nucleo/rtconfig.h b/bsp/stm32l476-nucleo/rtconfig.h
index 7be9f6b5b6..d1e5fd2e41 100644
--- a/bsp/stm32l476-nucleo/rtconfig.h
+++ b/bsp/stm32l476-nucleo/rtconfig.h
@@ -71,6 +71,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using USB */
diff --git a/bsp/tm4c129x/rtconfig.h b/bsp/tm4c129x/rtconfig.h
index d9e6e561c9..17065905cd 100644
--- a/bsp/tm4c129x/rtconfig.h
+++ b/bsp/tm4c129x/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_I2C is not set */
diff --git a/bsp/tms320f28379d/rtconfig.h b/bsp/tms320f28379d/rtconfig.h
index f74783569c..b037295813 100644
--- a/bsp/tms320f28379d/rtconfig.h
+++ b/bsp/tms320f28379d/rtconfig.h
@@ -68,6 +68,7 @@
#define RT_USING_DEVICE_IPC
#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
#define RT_USING_PIN
/* Using WiFi */
diff --git a/bsp/x1000/rtconfig.h b/bsp/x1000/rtconfig.h
index 30ccf9e409..6babbd0b15 100644
--- a/bsp/x1000/rtconfig.h
+++ b/bsp/x1000/rtconfig.h
@@ -112,6 +112,7 @@
#define RT_USING_DEVICE_IPC
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
/* RT_USING_CAN is not set */
/* RT_USING_HWTIMER is not set */
/* RT_USING_CPUTIME is not set */
diff --git a/bsp/xplorer4330/M0/rtconfig.h b/bsp/xplorer4330/M0/rtconfig.h
index 8adbc4e576..ee849028f2 100644
--- a/bsp/xplorer4330/M0/rtconfig.h
+++ b/bsp/xplorer4330/M0/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 256
//
diff --git a/bsp/xplorer4330/M4/rtconfig.h b/bsp/xplorer4330/M4/rtconfig.h
index 8adbc4e576..ee849028f2 100644
--- a/bsp/xplorer4330/M4/rtconfig.h
+++ b/bsp/xplorer4330/M4/rtconfig.h
@@ -74,6 +74,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 256
//
diff --git a/bsp/zynq7000/rtconfig.h b/bsp/zynq7000/rtconfig.h
index 4c042a88f6..ca304c6ac9 100644
--- a/bsp/zynq7000/rtconfig.h
+++ b/bsp/zynq7000/rtconfig.h
@@ -72,6 +72,7 @@
#define RT_USING_DEVICE_IPC
//
#define RT_USING_SERIAL
+#define RT_SERIAL_USING_DMA
//
#define RT_UART_RX_BUFFER_SIZE 64
//