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
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# ...
On Thu, 23 Oct 2014 20:45:09 +0200 Sanne Ausma sanne@ausma-engineering.nl wrote:
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: […] 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.
Hello Sanne,
thanks for your report. I am not aware of any unsolved problems with any chip or programmer supported by the ft2232_spi driver in flashrom. I would suspect a simple timing/sampling issue caused by the high speed or too low signal quality. Normally that would produce way less deterministic values though, so I am not entirely convinced. However, since it works fine with 15 MHz and the programmer is already marked as successfully tested, I'll leave everything as is. If you become aware of any additional information please don't hesitate to show it, thanks.