summaryrefslogtreecommitdiff
path: root/chip
diff options
context:
space:
mode:
authorNamyoon Woo <namyoon@chromium.org>2019-01-02 18:08:34 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-01-16 01:46:55 -0800
commit7253fd834bc0255a172fb23895cd11b599ee0b20 (patch)
tree40f9506b0fddbc2d89e733d46ccca49b7f304d0f /chip
parent0ac674092fe63018442acd05500003e6d92872ad (diff)
downloadchrome-ec-7253fd834bc0255a172fb23895cd11b599ee0b20.tar.gz
cr50: Extend CR50 Bitbang Receive buffer.
Bitbang receive buffer in CR50 gets bigger so that 257 byte chunk transfer can be done without any data loss. BUG=b:112163028 BRANCH=cr50 TEST=manually tested by writing/reading EC binary in bitbang mode. (a) Flash EC binary $ flash_ec --board=${BOARD} --bitbang_rate 57600 \ --image ${EC_BIN_PATH} (b) Read EC binary $ dut-control --port=9999 ec_ec3po_interp_connect:off $ dut-control --port=9999 ccd_ec_boot_mode_bitbang:on $ dut-control --port=9999 cold_reset:on $ dut-control --port=9999 cold_reset:off $ dut-control --port=9999 ec_uart_parity:even $ dut-control --port=9999 ec_uart_baudrate:57600 $ dut-control --port=9999 ec_uart_bitbang_en:on $ time stm32mon -d ${RAW_EC_UART_PTY} -c -r ${EC_BIN_READ_PATH} \ -b 57600 ... Reading 262144 bytes at 0x08000000 262144 bytes read. real 1m0.739s user 0m0.024s sys 0m0.125s $ diff ${EC_BIN_PATH} ${EC_BIN_READ_PATH} $ Change-Id: I0ee76085eedf44b1cba2c686003335b109c0272c Signed-off-by: Namyoon Woo <namyoon@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1394284 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Diffstat (limited to 'chip')
-rw-r--r--chip/g/uart_bitbang.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/chip/g/uart_bitbang.c b/chip/g/uart_bitbang.c
index 21afcffb5c..bb8e8cfec4 100644
--- a/chip/g/uart_bitbang.c
+++ b/chip/g/uart_bitbang.c
@@ -26,6 +26,7 @@
(rate == 115200))
#define TIMEUS_CLK_FREQ 24 /* units: MHz */
+#define RX_BUF_SIZE 257
/* Flag indicating whether bit banging is enabled or not. */
static uint8_t bitbang_enabled;
@@ -320,7 +321,7 @@ static int uart_bitbang_receive_char(uint8_t *rxed_char, uint32_t *next_tick)
void uart_bitbang_irq(void)
{
- uint8_t rx_buffer[20];
+ uint8_t rx_buffer[RX_BUF_SIZE];
size_t i = 0;
uint32_t next_tick;
@@ -336,7 +337,7 @@ new_char:
if (rv != EC_SUCCESS)
break;
- if (++i == sizeof(rx_buffer))
+ if (++i == RX_BUF_SIZE)
break;
/*
* For the duration of one byte wait for another byte from the
@@ -475,11 +476,6 @@ static int command_bitbang_dump_stats(int argc, char **argv)
ccprintf("%d received\n", rx_buff_rx_char_cnt);
ccprintf("%d chars inserted\n", rx_buff_inserted_cnt);
ccprintf("%d chars read\n", read_char_cnt);
- ccprintf("Contents\n");
- ccprintf("[");
- for (i = 0; i < RX_BUF_SIZE; i++)
- ccprintf(" %02x ", rx_buf[i] & 0xFF);
- ccprintf("]\n");
ccprintf("Discards\nparity: ");
ccprintf("[");
for (i = 0; i < DISCARD_LOG; i++)