Ok, the clamp thing is really tricky. I soldered five cables to the legs of the flash and I got this consistently now. I have to boot up the chip, then I can read like this once with the unknown SPI chip. (log below) After that every read ends in no EEPROM devices found.
(Maybe a bit too verbose, scroll all the way down)
flashrom/builddir on main [?] ✗ while :; do ./flashrom -p serprog:dev=/dev/ttyACM0:115200,spispeed=1M -VVV -r foo.bin; sleep 2; done
flashrom 1.4.0-devel (git:v1.2-1391-ga21be915) on Linux 6.6.12-gentoo-dist (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
flashrom was built with GCC 13.2.1 20240113, little endian
Command line (5 args): ./flashrom -p serprog:dev=/dev/ttyACM0:115200,spispeed=1M -VVV -r foo.bin
Initializing serprog programmer
serprog: connected - attempting to synchronize
writecnt 8 wr_bytes 0
wrote 8 bytes
write successful
writecnt 1 wr_bytes 0
wrote 1 bytes
write successful
.readcnt 1 rd_bytes 0
read -1 bytes
readcnt 1 rd_bytes 0
read 1 bytes
readcnt 1 rd_bytes 0
read 1 bytes
writecnt 1 wr_bytes 0
wrote 1 bytes
write successful
readcnt 1 rd_bytes 0
read -1 bytes
readcnt 1 rd_bytes 0
read 1 bytes
readcnt 1 rd_bytes 0
read 1 bytes
serprog: Synchronized
serprog: Interface version ok.
serprog: Bus support: parallel=off, LPC=off, FWH=off, SPI=on
Warning: Automatic command availability check failed for cmd 0x08 - won't execute cmd
Warning: Automatic command availability check failed for cmd 0x11 - won't execute cmd
serprog: Requested to set SPI clock frequency to 1000000 Hz. It was actually set to 1000000 Hz
serprog: Programmer name is "pico-serprog"
serprog: Serial buffer size is 65535
serprog: Output drivers enabled
The following protocols are supported: SPI.
Probing for AMIC A25L010, 128 kB: master_map_flash_region: mapping A25L010 from 0x00000000fffe0000 to 0x00000000fffe0000
serprog_spi_send_command, writecnt=1, readcnt=3
RDID returned 0x14 0x28 0x50. RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
master_unmap_flash_region: unmapped 0x00000000fffe0000
Probing for AMIC A25L016, 2048 kB: master_map_flash_region: mapping A25L016 from 0x00000000ffe00000 to 0x00000000ffe00000
RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
master_unmap_flash_region: unmapped 0x00000000ffe00000
Probing for AMIC A25L020, 256 kB: master_map_flash_region: mapping A25L020 from 0x00000000fffc0000 to 0x00000000fffc0000
[...]
Probing for Zetta Device ZD25D40, 512 kB: master_map_flash_region: mapping ZD25D40 from 0x00000000fff80000 to 0x00000000fff80000
RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
master_unmap_flash_region: unmapped 0x00000000fff80000
Probing for Unknown SFDP-capable chip, 0 kB: spi_sfdp_read_sfdp_chunk: addr=0x0, len=2, data:
serprog_spi_send_command, writecnt=4, readcnt=3
0x00 0x00
spi_sfdp_read_sfdp_chunk: addr=0x2, len=2, data:
serprog_spi_send_command, writecnt=4, readcnt=3
0x00 0x00
Signature = 0x00000000 (should be 0x50444653)
No SFDP signature found.
Probing for AMIC unknown AMIC SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x00, id2 0x00
Probing for Atmel unknown Atmel SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for Eon unknown Eon SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for Macronix unknown Macronix SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for PMC unknown PMC SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for SST unknown SST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for ST unknown ST SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for Sanyo unknown Sanyo SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Probing for Generic unknown SPI chip (RDID), 0 kB: RDID byte 0 parity violation. compare_id: id1 0x14, id2 0x2850
Added layout entry 00000000 - ffffffff named complete flash
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI) on serprog.
Probing for Generic unknown SPI chip (REMS), 0 kB: compare_id: id1 0x00, id2 0x00
Found Generic flash chip "unknown SPI chip (RDID)" (0 kB, SPI).
===
This flash part has status NOT WORKING for operations: PROBE READ ERASE WRITE
This flash part has status UNTESTED for operations: WP
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to flashrom@flashrom.org if any of the above operations
work correctly for you with this flash chip. Please include the flashrom log
file for all operations you tested (see the man page for details), and mention
which mainboard or programmer you tested in the subject line.
Thanks for your help!
serprog_delay usecs=100000
serprog_delay used, but programmer doesn't support delays natively - emulating
Read is not working on this chip. Aborting.
serprog: Output drivers disabled