mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-02 14:33:18 +02:00
Handle Bus Pirates already in bit banging mode correctly
Thanks to Johannes Sjölund for reporting that the Bus Pirate init could not deal with a Bus Pirate which is already in binary Bitbang mode. This is caused by a combination of the slowness of the Bus Pirate, the slowness of USB and a fast serial port flush routine which just flushes the buffer contents and does not wait until data arrival stops. Make the Bus Pirate init more robust by running the flush command 10 times with 1.5 ms delay in between. This code development was sponsored by Mattias Mattsson. Thanks! Tested a few dozen times, should work reliably. Corresponding to flashrom svn r1178. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Mattias Mattsson <vitplister@gmail.com>
This commit is contained in:
8
serial.c
8
serial.c
@ -200,8 +200,10 @@ int serialport_write(unsigned char *buf, unsigned int writecnt)
|
||||
#else
|
||||
tmp = write(sp_fd, buf, writecnt);
|
||||
#endif
|
||||
if (tmp == -1)
|
||||
if (tmp == -1) {
|
||||
msg_perr("Serial port write error!\n");
|
||||
return 1;
|
||||
}
|
||||
if (!tmp)
|
||||
msg_pdbg("Empty write\n");
|
||||
writecnt -= tmp;
|
||||
@ -221,8 +223,10 @@ int serialport_read(unsigned char *buf, unsigned int readcnt)
|
||||
#else
|
||||
tmp = read(sp_fd, buf, readcnt);
|
||||
#endif
|
||||
if (tmp == -1)
|
||||
if (tmp == -1) {
|
||||
msg_perr("Serial port read error!\n");
|
||||
return 1;
|
||||
}
|
||||
if (!tmp)
|
||||
msg_pdbg("Empty read\n");
|
||||
readcnt -= tmp;
|
||||
|
Reference in New Issue
Block a user