This is attached patch to avoid hang of serprog under FreeBSD. Patch is against trunk (r1955, 10 context lines).
My use case is flashrom+serprog to read SPI flash (MX25L6406) via Arduino Nano V3. Actual command is: /usr/local/bin/flashrom -p serprog:dev=/dev/cuaU0:57600 -c MX25L6406E/MX25L6408E -r tcw770.dump
Using flashrom 0.9.9 it hangs after 5 seconds on read from tty ("ttyin"). The problem is that kernel method "ttydisc_rint" ignore same bytes. It happens due to enabled IEXTEN local flag of termios. TTY cuts few bytes, Arduino reads 11264 bytes, but flashrom gets 11244 bytes (corrupted) and waits for remaining 20 bytes.
The fix is simple: turn off IEXTEN local flag.
Tested on Arduino Nano V3 + FreeBSD 12-CURRENT. But I didn't check compilation on other BSD / Linux distros. Could you please test it and let me know results?
Signed-off-by: Michael Zhilin firstname.lastname@example.org I've added signed-off-by here, because I don't know how to add it into svn patch. It's my first patch, so please let me know if i miss anything.