diff options
author | Michael Zhilin <mizhka@gmail.com> | 2016-12-02 14:41:26 +0000 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2017-10-19 15:17:05 +0000 |
commit | 2ec33f9e6a303a729ceb164d34a85563b6e2c1b0 (patch) | |
tree | 05b5cd18d0a9d7393dcefdfc5048f5c66bf91b0d | |
parent | 615ba1849c1ad67503cf000c9fea311962175525 (diff) | |
download | flashrom-2ec33f9e6a303a729ceb164d34a85563b6e2c1b0.tar.gz flashrom-2ec33f9e6a303a729ceb164d34a85563b6e2c1b0.tar.bz2 flashrom-2ec33f9e6a303a729ceb164d34a85563b6e2c1b0.zip |
Fix serprog on FreeBSD
Using serprog on FreeBSD to read an SPI flash (MX25L6406) via an
Arduino Nano V3 with flashrom hangs after 5 seconds while reading. The
problem is that kernel method "ttydisc_rint" ignores some bytes. It
happens due to enabled IEXTEN local flag of termios. TTY cuts a few
bytes, Arduino reads 11264 bytes, but flashrom gets only 11244 bytes
and waits for the remaining 20 bytes.
The fix is simple: turn off the IEXTEN local flag.
Tested on Arduino Nano V3 + FreeBSD 12-CURRENT.
Change-Id: I7aa6a283d523c544d9b8923cd4c622bf08c0fb3f
Signed-off-by: Michael Zhilin <mizhka@gmail.com>
Reviewed-on: https://review.coreboot.org/21919
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Urja Rannikko <urjaman@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | serial.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -215,7 +215,7 @@ int serialport_config(fdtype fd, int baud) } wanted.c_cflag &= ~(PARENB | CSTOPB | CSIZE | CRTSCTS); wanted.c_cflag |= (CS8 | CLOCAL | CREAD); - wanted.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); + wanted.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG | IEXTEN); wanted.c_iflag &= ~(IXON | IXOFF | IXANY | ICRNL | IGNCR | INLCR); wanted.c_oflag &= ~OPOST; if (tcsetattr(fd, TCSANOW, &wanted) != 0) { |