Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Feb 2017 20:24:12 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r434487 - in head/sysutils/flashrom: . files
Message-ID:  <201702202024.v1KKOCS5069173@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@gmail.com>
  Approved by:	lme (mentor), maintainer timeout (nukama+maintainer@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) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702202024.v1KKOCS5069173>