diff options
author | Namyoon Woo <namyoon@chromium.org> | 2019-01-02 18:08:34 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-01-16 01:46:55 -0800 |
commit | 7253fd834bc0255a172fb23895cd11b599ee0b20 (patch) | |
tree | 40f9506b0fddbc2d89e733d46ccca49b7f304d0f /chip | |
parent | 0ac674092fe63018442acd05500003e6d92872ad (diff) | |
download | chrome-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.c | 10 |
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++) |