From 14fbc4b40045c6fcb345da52ab048d961fc15c6c Mon Sep 17 00:00:00 2001 From: Shik Chen Date: Mon, 17 Sep 2012 00:40:54 +0000 Subject: [PATCH] Allow to select FTDI device by serial number Requires libftdi > 0.5 (2004, commit ID a8f46ddc1595b1b07abfcce613acdafe5b8ddf9d). Idea stolen from chromiumos commit 5eb5624aeb7e2ee483e2fa0823c4e634c8ea3e68: http://git.chromium.org/gitweb/?p=chromiumos/third_party/flashrom.git;a=commit;h=5eb5624aeb7e2ee483e2fa0823c4e634c8ea3e68 Corresponding to flashrom svn r1599. Signed-off-by: Shik Chen Signed-off-by: Stefan Tauner Acked-by: Stefan Tauner --- flashrom.8 | 9 +++++++++ ft2232_spi.c | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/flashrom.8 b/flashrom.8 index bf671c220..cf07ccf55 100644 --- a/flashrom.8 +++ b/flashrom.8 @@ -573,6 +573,15 @@ The default model is and the default interface is .BR B . .sp +If there is more than one ft2232_spi-compatible device connected, you can select which one should be used by +specifying its serial number with the +.sp +.B " flashrom \-p ft2232_spi:serial=number" +.sp +syntax where +.B number +is the serial number of the device (which can be found for example in the output of lsusb -v). +.sp All models supported by the ft2232_spi driver can configure the SPI clock rate by setting a divisor. The expressible divisors are all even numbers between 2 and 2^17 (=131072) resulting in SPI clock frequencies of 6 MHz down to about 92 Hz for 12 MHz inputs. The default divisor is set to 2, but you can use another one by diff --git a/ft2232_spi.c b/ft2232_spi.c index edea1e662..1b8067454 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -283,7 +283,9 @@ int ft2232_spi_init(void) msg_perr("Unable to select interface: %s\n", ftdic->error_str); } - f = ftdi_usb_open(ftdic, ft2232_vid, ft2232_type); + arg = extract_programmer_param("serial"); + f = ftdi_usb_open_desc(ftdic, ft2232_vid, ft2232_type, NULL, arg); + free(arg); if (f < 0 && f != -5) { msg_perr("Unable to open FTDI device: %d (%s)\n", f,