summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru M Stan <amstan@chromium.org>2014-12-17 12:39:38 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-12-18 00:46:27 +0000
commita0395b1ea9941db5febc7fe6602b0c108644901a (patch)
tree54a909063c8201b0d4db51ec9bc49c1e0b575c13
parentd09526a63e019efa9c96ba446785bf4ac4c704bb (diff)
downloadchrome-ec-a0395b1ea9941db5febc7fe6602b0c108644901a.tar.gz
rockchip: Enable UART RX DMA
UART with no DMA is likely to drop RX characters when system is busy. This is because the UART interrupt is lower priority than the spi_event GPIO interrupt. We can work around this by enabling the DMA, so no UART interrupts are required while recieving, since everything will happen in DMA. This replaces the other patch(CL 236089) which suggested changing UART IRQ priority. BUG=chrome-os-partner:33451 TEST=get firmware to poll the EC for keyboard presses, type really fast on the keyboard, note how no character is lost anymore TEST=faft dev mode test now passes, faft is able to type "kbpress $(insert args for Ctrl+D) 1" correctly without missing characters because firmware is loading the EC with keyboard polls TEST=While '+'s are scrolling on the EC terminal paste something big like this: "kbpress 1 1 1 kbpress 1 1 0 123456789012345678901234567890 ". Both kbpresses should be interpreted/executed properly(no "kbprss") and there should be no missing digits in the echo back. BRANCH=None Change-Id: I01d4eaa23f10f07083875846ea48c34da2e2f6ce Signed-off-by: Alexandru M Stan <amstan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/236365 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--board/jerry/board.h1
-rw-r--r--board/mighty/board.h1
-rw-r--r--board/pinky/board.h1
-rw-r--r--board/speedy/board.h1
4 files changed, 4 insertions, 0 deletions
diff --git a/board/jerry/board.h b/board/jerry/board.h
index 5a05393717..bebfdc6b2b 100644
--- a/board/jerry/board.h
+++ b/board/jerry/board.h
@@ -33,6 +33,7 @@
#define CONFIG_PWM
#define CONFIG_SPI
#define CONFIG_STM_HWTIMER32
+#define CONFIG_UART_RX_DMA
#define CONFIG_VBOOT_HASH
#undef CONFIG_WATCHDOG_HELP
diff --git a/board/mighty/board.h b/board/mighty/board.h
index 5a05393717..bebfdc6b2b 100644
--- a/board/mighty/board.h
+++ b/board/mighty/board.h
@@ -33,6 +33,7 @@
#define CONFIG_PWM
#define CONFIG_SPI
#define CONFIG_STM_HWTIMER32
+#define CONFIG_UART_RX_DMA
#define CONFIG_VBOOT_HASH
#undef CONFIG_WATCHDOG_HELP
diff --git a/board/pinky/board.h b/board/pinky/board.h
index 398a56b62a..5f66469d51 100644
--- a/board/pinky/board.h
+++ b/board/pinky/board.h
@@ -32,6 +32,7 @@
#define CONFIG_PWM
#define CONFIG_SPI
#define CONFIG_STM_HWTIMER32
+#define CONFIG_UART_RX_DMA
#define CONFIG_VBOOT_HASH
#undef CONFIG_WATCHDOG_HELP
diff --git a/board/speedy/board.h b/board/speedy/board.h
index 5a05393717..bebfdc6b2b 100644
--- a/board/speedy/board.h
+++ b/board/speedy/board.h
@@ -33,6 +33,7 @@
#define CONFIG_PWM
#define CONFIG_SPI
#define CONFIG_STM_HWTIMER32
+#define CONFIG_UART_RX_DMA
#define CONFIG_VBOOT_HASH
#undef CONFIG_WATCHDOG_HELP