svn commit: r434487 - in head/sysutils/flashrom: . files
Tobias Kortkamp
tobik at FreeBSD.org
Mon Feb 20 20:24:14 UTC 2017
Author: tobik
Date: Mon Feb 20 20:24:12 2017
New Revision: 434487
URL: https://svnweb.freebsd.org/changeset/ports/434487
Log:
Add patch to turn off the IEXTEN local flag and fix serprog hangs
PR: 214637
Submitted by: Michael Zhiling <mizhka at gmail.com>
Approved by: lme (mentor), maintainer timeout (nukama+maintainer at gmail.com, 3 months)
Differential Revision: https://reviews.freebsd.org/D9696
Added:
head/sysutils/flashrom/files/
head/sysutils/flashrom/files/patch-serial.c (contents, props changed)
Modified:
head/sysutils/flashrom/Makefile
Modified: head/sysutils/flashrom/Makefile
==============================================================================
--- head/sysutils/flashrom/Makefile Mon Feb 20 20:20:32 2017 (r434486)
+++ head/sysutils/flashrom/Makefile Mon Feb 20 20:24:12 2017 (r434487)
@@ -3,6 +3,7 @@
PORTNAME= flashrom
PORTVERSION= 0.9.9
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= http://download.flashrom.org/releases/
Added: head/sysutils/flashrom/files/patch-serial.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/flashrom/files/patch-serial.c Mon Feb 20 20:24:12 2017 (r434487)
@@ -0,0 +1,28 @@
+Avoid hang of serprog under FreeBSD
+
+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.
+
+https://patchwork.coreboot.org/patch/4498/
+
+--- serial.c.orig 2016-11-18 19:39:55 UTC
++++ serial.c
+@@ -203,7 +203,7 @@ int serialport_config(fdtype fd, int bau
+ }
+ 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) {
More information about the svn-ports-all
mailing list