tigard-tools / tigard

An FTDI FT2232H-based multi-protocol tool for hardware hacking
Other
559 stars 65 forks source link

GD25Q64(B) reading issues #71

Open IvanGlinkin opened 3 weeks ago

IvanGlinkin commented 3 weeks ago

Hi team, How are you? Hope you are doing super great.

I have a small issue/request regarding TIGARD reading flashroms. I have a TP-Link RE-205 repeater (https://www.tp-link.com/ae/home-networking/range-extender/re205/) with a GD25Q64(B) on the board. CH341 reads this chip without any issues, but TIGARD can't. May I ask you what can be a problem? Thank you

Screenshot 2024-06-09 at 21 44 35

`flashrom -p ft2232_spi:type=2232H,port=B,divisor=4 -V 1 ⨯ flashrom v1.3.0 on Darwin 23.5.0 (arm64) flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK. flashrom was built with LLVM Clang 15.0.0 (clang-1500.0.40.1), little endian Command line (3 args): flashrom -p ft2232_spi:type=2232H,port=B,divisor=4 -V Initializing ft2232_spi programmer Using device type FTDI FT2232H channel B. 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 A25L010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L032, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L05PT, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L05PU, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L10PT, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L10PU, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L16PT, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L16PU, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L20PT, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L20PU, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L40PT, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L40PU, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25L80P, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25LQ032/A25LQ32A, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25LQ16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for AMIC A25LQ64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF021, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF021A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF041A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF081A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF321, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF321A, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DF641(A), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DL081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DL161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25DQ161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25F1024(A), 128 kB: probe_spi_at25f: id1 0xff, id2 0xff Probing for Atmel AT25F2048, 256 kB: probe_spi_at25f: id1 0xff, id2 0xff Probing for Atmel AT25F4096, 512 kB: probe_spi_at25f: id1 0xff, id2 0xff Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff Probing for Atmel AT25F512A, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff Probing for Atmel AT25F512B, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25FS010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25FS040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SF041, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SF081, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SF128A, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SF321, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT25SL128A, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT26DF041, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT26DF081A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT26DF161, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT26DF161A, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT26F004, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45CS1282, 16896 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB011D, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB021D, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB041D, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB081D, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB161D, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB321C, 4224 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB321D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB321E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel AT45DB642D, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Boya/BoHong Microelectronics B.25D16A, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Boya/BoHong Microelectronics B.25Q128AS, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ESI ES25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ESI ES25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ESI ES25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ESMT F25L008A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ESMT F25L32PA, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B05T, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B10T, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B16T, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B20T, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B32T, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B40T, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B64T, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25B80T, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25F80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q32(A/B), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25Q80(A), 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25QH128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25QH16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25QH32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25QH64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon EN25S80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25F005, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25F01, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25F02(A), 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25F04(A), 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25Q08, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25Q16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Fudan FM25Q32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25B128B/GD25Q128B, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ128C/GD25LQ128D/GD25LQ128E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ64(B), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25LQ80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q127C/GD25Q128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q16(B), 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q20(B), 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q256D/GD25Q256E, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q32(B), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q40(B), 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q64(B), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25Q80(B), 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25T80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25VQ16C, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25VQ21B, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25VQ40C, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25VQ41B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25VQ80C, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for GigaDevice GD25WQ80E, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25LP064, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25LP128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25LP256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25WP032, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25WP064, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25WP128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ISSI IS25WP256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F160S33B8, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F160S33T8, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F320S33B8, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F320S33T8, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F640S33B8, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Intel 25F640S33T8, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX23L12854, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX23L1654, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX23L3254, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX23L6454, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1005(C)/MX25L1006E, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L12805D, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L12833F/MX25L12835F/MX25L12845E/MX25L12865E/MX25L12873F, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1605, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1605A/MX25L1606E/MX25L1608E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1605D/MX25L1608D/MX25L1673E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1635D, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L1635E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L2005(C)/MX25L2006E, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L25635F/MX25L25645G, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L3205(A), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L3205D/MX25L3208D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L3206E/MX25L3208E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L3235D, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L3233F/MX25L3273E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L4005(A/C)/MX25L4006E, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L512(E)/MX25V512(C), 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L5121E, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L6405, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L6405D, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L6406E/MX25L6408E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E/MX25L6473F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L6495F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25L8005/MX25L8006E/MX25L8008E/MX25V8005, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25R3235F, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25R6435F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U12835F, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U1635E, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U25635F, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U3235E/F, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U51245G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U6435E/F, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX25U8032E, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX66L51235F/MX25L51245G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix MX66L1G45G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P05, 64 kB: probe_spi_res1: id 0xff Probing for Micron/Numonyx/ST M25P05-A, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P10, 128 kB: probe_spi_res1: id 0xff Probing for Micron/Numonyx/ST M25P10-A, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P20-old, 256 kB: probe_spi_res1: id 0xff Probing for Micron/Numonyx/ST M25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P40-old, 512 kB: probe_spi_res1: id 0xff Probing for Micron/Numonyx/ST M25P64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PE10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PE16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PE20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PE40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PE80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PX16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PX32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PX64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M25PX80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M45PE10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M45PE16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M45PE20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M45PE40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST M45PE80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q00A..1G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q00A..3G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q032..1E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q032..3E, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q128..1E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q128..3E, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q256..1E, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q256..3E, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q512..1G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron/Numonyx/ST N25Q512..3G, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QL01G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QU01G, 131072 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QL02G, 262144 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QU02G, 262144 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QU128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QL128, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QL256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QU256, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QL512, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Micron MT25QU512, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Nantronics N25S10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Nantronics N25S16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Nantronics N25S20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Nantronics N25S40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Nantronics N25S80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LD010(C), 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LD020(C), 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LD040(C), 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LD256C, 32 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LD512(C), 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LQ016, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LQ020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LQ032C, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LQ040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LQ080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV010, 128 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for PMC Pm25LV010A, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV016B, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC Pm25LV512(A), 64 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for SST SST25LF020A, 256 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25LF040A, 512 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for SST SST25LF080(A), 1024 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for SST SST25VF010(A), 128 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25VF016B, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF020, 256 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25VF020B, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF032B, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF040, 512 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25VF040B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF040B.REMS, 512 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25VF064C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25VF512(A), 64 kB: compare_id: id1 0xff, id2 0xff Probing for SST SST25WF010, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF020, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF020A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF040, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF040B, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF080, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF080B, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST25WF512, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST26VF016B(A), 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST26VF032B(A), 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST SST26VF064B(A), 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ST M95M02, 256 kB: probe_spi_st95: id1 0xff, id2 0xffff Probing for Sanyo LE25FU106B, 128 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FU206, 256 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FU206A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Sanyo LE25FU406B, 512 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FU406C/LE25U40CMC, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Sanyo LE25FW106, 128 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FW203A, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Sanyo LE25FW403A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Sanyo LE25FW406A, 512 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FW418A, 512 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FW806, 1024 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Sanyo LE25FW808, 1024 kB: probe_spi_res2: id1 0xff, id2 0xff Probing for Spansion S25FL004A, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL008A, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL016A, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL032A/P, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL064A/P, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL116K/S25FL216K, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL127S-256kB, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL127S-64kB, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128L, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128P......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128P......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128S......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128S......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL128S_UL Uniform 128 kB Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Spansion S25FL128S_US Uniform 64 kB Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Spansion S25FL129P......0, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL129P......1, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL132K, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL164K, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL204K, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL208K, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL256L, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL256S Large Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Spansion S25FL256S Small Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Spansion S25FL256S......0, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FL512S, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Spansion S25FS128S Large Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Spansion S25FS128S Small Sectors, 16384 kB: Read id bytes: 0xff 0xff 0xff 0xff 0xff 0xff. Probing for Winbond W25P16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25P32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25P80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q128.V, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q128.V..M, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q128.W, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q128.JW.DTR, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q16.V, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q16.W, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q20.W, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q256FV, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q256JV_Q, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q256JV_M, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q256JW, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q256JW_DTR, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q32.V, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q32.W, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q32JW...M, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q40.V, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q40BW, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q40EW, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q512JV, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q512NW-IM, 65536 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q64BV/W25Q64CV/W25Q64FV, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q64JV-.Q, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q64JV-.M, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q64.W, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q64JW...M, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q80.V, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q80BW, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25Q80EW, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X05, 64 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X10, 128 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X16, 2048 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X32, 4096 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X64, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond W25X80, 1024 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QH64C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QU64C, 8192 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QH128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QU128C, 16384 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QH256C, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for XMC XM25QU256C, 32768 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Zetta Device ZD25D20, 256 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Zetta Device ZD25D40, 512 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Unknown SFDP-capable chip, 0 kB: No SFDP signature found. Probing for AMIC unknown AMIC SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Atmel unknown Atmel SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Eon unknown Eon SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Macronix unknown Macronix SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for PMC unknown PMC SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for SST unknown SST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for ST unknown ST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Sanyo unknown Sanyo SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Generic unknown SPI chip (RDID), 0 kB: RDID byte 0 parity violation. compare_id: id1 0xff, id2 0xffff Probing for Generic unknown SPI chip (REMS), 0 kB: compare_id: id1 0xff, id2 0xff No EEPROM/flash device found. Note: flashrom can never write if the flash chip isn't found automatically. Releasing I/Os`

securelyfitz commented 3 weeks ago

I've used tigard on gigadevices flash chips before so it should work.

First, have you gone through all the steps listed at https://github.com/tigard-tools/tigard?tab=readme-ov-file#debugging

Also, be sure the jtag-spi/swd-i2c switch is to the left in jtag-spi mode.

The only thing i notice in your setup is that it says it's running the mpsse frequency at 60mhz. It's normally 30. Setting divisor=8 might help, or changing the frequency.

If that's all good, then some details about your wiring and setup - perhaps a photo - would help.

IvanGlinkin commented 3 weeks ago

Hi @securelyfitz Thanks for the rapid and extended reply. Yeah, I read the debugging page and everything is working as intended. Please find attached several photos from my side as a PoC. IMG_8185 IMG_8186 IMG_8187

Also, be sure the jtag-spi/swd-i2c switch is to the left in jtag-spi mode.

Definitely, it's switched on as JTAG-SPI

The only thing i notice in your setup is that it says it's running the mpsse frequency at 60mhz. It's normally 30. Setting divisor=8 might help, or changing the frequency.

I tried divisor from 2 till 100 - not working unfortunatelly

If that's all good, then some details about your wiring and setup - perhaps a photo - would help.

the cable is common Apple wire, which came with the laptop. but it's not only for charging - as you can see mac can see the tigard. also i used it for alfa wi-fi adapter and it's working fine

Screenshot 2024-06-10 at 12 49 16

For the clip - the common one (see photos) and it's fully working clip (see photos with ch341)

Tigard for UART is working fine as i tested it with the same router. all is good, but for spi - idk

Please don't be hesitate to tell me what else i can share to troubleshoot this. thank you so much Regards, Ivan

===

Upd: I believe that may help

Screenshot 2024-06-10 at 12 56 22
securelyfitz commented 3 weeks ago

how are you powering the router? how are you keeping the cpu idle why you read the flash with the CH341? The biggest difference in the circuit is probably the level shifters and current limiting resistors - could it be that the CH341 is just overpowering the CPU SS,SCK, and COPI pins, while the tigard's protection features are (by design) not?

IvanGlinkin commented 3 weeks ago

could it be that the CH341 is just overpowering the CPU SS,SCK, and COPI pins, while the tigard's protection features are (by design) not?

I don't know man :) it's you baby - you should know better ;)

regarding the powering. I used different options - from 3.3, till 5 and 1,8 and even powering from the main power supply.

3.3 - you may see the blue LED is on (on the router) IMG_1303

5 - router is protected (LED is off) IMG_1304

1.8 - not enough power (LED is off) IMG_1305

VGTG, powering from original power supply (LED is on) IMG_1306

how are you keeping the cpu idle why you read the flash with the CH341?

I believe it's doing automatically by ch341/flashrom. I just connect and it's working, just exactly in your ads here - https://vimeo.com/478706987. Just connect and get the firmware.

p.s. let me try on another device to check if it's the specific of this chip, or TIGARD

UPDATED: ARRIS with "W25Q128.V" chip it's working fine. At least tigard is ok, so i believe it's internal issues between chip and reader. but nevertheless, may i ask you to look through it and guide how to possible fix it (maybe the new firmware for tigard?) Thank you so much guys

IMG_1307

Screenshot 2024-06-11 at 11 04 10
securelyfitz commented 3 weeks ago

in the video, i am holding the CPU in reset. How are you preventing the CPU from accessing the spi flash and ensuring there is no contention on the spi pins while you read it? The CH341 may only be working because it's overpowering (and in the process, frying) the cpu's spi pins. If this is the case- it's actually a feature of tigard, and a flaw of the CH341. Also - i would strongly advise against having an open device connected to mains power like you've got in the fourth example.

IvanGlinkin commented 3 weeks ago

sorry, doing nothing to prevent the CPU from accessing the spi flash. Will perform some research how to perform that. But if you could guide me, how it's possible with TIGARD, I would really appreciate it. But the question is - why it's working with "W25Q128.V" chip (just plug in and read the flash), but not working with GD25Q64?

Regarding CH341 - that could be the case, indeed.

Also - i would strongly advise against having an open device connected to mains power like you've got in the fourth example.

Thanks Joe.

securelyfitz commented 3 weeks ago

It could be that on your second target, the SPI flash uses a separate power supply from the main CPU. If that's the case, when Tigard provides power, it powers up the winbond chip, but not the CPU, and is able to speak, unobstructed, to the flash chip. The second target could also have protection resistors on the SPI lines, so that tigard is able to easily overpower the CPU's traffic without risking damage to either.

Getting it to work on your repeater is all about target preparation and not much to do with tigard. My approach would be to find a datasheet for the SoC, figure out it's reset pin, and hold that low while reading the flash. Otherwise, pulling the chip off might be the easiest approach