[flashrom] Olimex ARM-USB-OCD-H output shifted by one

Sanne Ausma sanne at ausma-engineering.nl
Thu Oct 23 20:45:09 CEST 2014


On 2014-10-20 23:56, Sanne Ausma wrote:
> Hi,
> 
> Using flashrom to probe for an EON 25Q32 using the ARM-USB-OCD-H I get
> the following:
> 
> 
> $./flashrom -p ft2232_spi:type=arm-usb-ocd-h -VVV
> 
> flashrom v0.9.7-r1711 on Linux 3.11.0-12-generic (x86_64)
> flashrom is free software, get the source code at 
> http://www.flashrom.org
> 
> flashrom was built with libpci 3.1.9, GCC 4.8.1, little endian
> Command line (3 args): ./flashrom -p ft2232_spi:type=arm-usb-ocd-h -VVV
> Calibrating delay loop... OS timer resolution is 1 usecs, 1927M loops
> per second, 10 myus = 10 us, 100 myus = 101 us, 1000 myus = 988 us,
> 10000 myus = 9977 us, 4 myus = 4 us, OK.
> Initializing ft2232_spi programmer
> Using device type Olimex ARM-USB-OCD-H channel A.
> Disable divide-by-5 front stage
> Set clock divisor
> MPSSE clock: 60.000000 MHz, divisor: 2, SPI clock: 30.000000 MHz
> No loopback of TDI/DO TDO/DI
> Set data bits
> The following protocols are supported: SPI.
> Probing for AMIC A25L05PT, 64 kB: Assert CS#
> De-assert CS#
> RDID returned 0x0e 0x18 0x0b 0x0e. probe_spi_rdid_generic: id1 0x0e, 
> id2 0x180b
> Probing for AMIC A25L05PU, 64 kB: Assert CS#
> De-assert CS#
> RDID returned 0x0e 0x18 0x0b 0x0e. probe_spi_rdid_generic: id1 0x0e, 
> id2 0x180b
> Probing for AMIC A25L10PT, 128 kB: Assert CS#
> De-assert CS#
> RDID returned 0x0e 0x18 0x0b 0x0e. probe_spi_rdid_generic: id1 0x0e, 
> id2 0x180b
> ...
> 
> 
> Whereas it should have read id1: 0x1c, id2: 0x3016  (0x1c = 0x0e<<1
> and 0x3016 = 0x180b<<1)
> 
> Is this a known issue with the Olimex ARM-USB-OCD-H?
> The wiki said it was currently untested...
> 
> Thnx

I looked at the signals using a scope and all looked well, the data 
comming from the flash was ok.
After slowing the SPI clock down from 30MHz to 15MHz, the correct data 
also appeared from flashrom, see the output below...
So I guess it is either a timing issue with the ARM-USB-OCD-H or USB / 
ftdi driver related.

Hope this will help someone.


$./flashrom -p ft2232_spi:type=arm-usb-ocd-h,divisor=4 -VVV

flashrom v0.9.7-r1711 on Linux 3.11.0-12-generic (x86_64)
flashrom is free software, get the source code at 
http://www.flashrom.org

flashrom was built with libpci 3.1.9, GCC 4.8.1, little endian
Command line (3 args): ./flashrom -p 
ft2232_spi:type=arm-usb-ocd-h,divisor=4 -VVV
Calibrating delay loop... OS timer resolution is 1 usecs, 1913M loops 
per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1004
  us, 10000 myus = 10136 us, 4 myus = 5 us, OK.
Initializing ft2232_spi programmer
Using device type Olimex ARM-USB-OCD-H channel A.
Disable divide-by-5 front stage
Set clock divisor
MPSSE clock: 60.000000 MHz, divisor: 4, SPI clock: 15.000000 MHz
No loopback of TDI/DO TDO/DI
Set data bits
The following protocols are supported: SPI.
Probing for AMIC A25L05PT, 64 kB: Assert CS#
De-assert CS#
RDID returned 0x1c 0x30 0x16 0x1c. probe_spi_rdid_generic: id1 0x1c, id2 
0x3016
Probing for AMIC A25L05PU, 64 kB: Assert CS#
De-assert CS#
RDID returned 0x1c 0x30 0x16 0x1c. probe_spi_rdid_generic: id1 0x1c, id2 
0x3016
Probing for AMIC A25L10PT, 128 kB: Assert CS#
De-assert CS#
RDID returned 0x1c 0x30 0x16 0x1c. probe_spi_rdid_generic: id1 0x1c, id2 
0x3016
Probing for AMIC A25L10PU, 128 kB: Assert CS#
...








More information about the flashrom mailing list