Hi, I can report that both reading and writing work correctly with GD25Q128 using the KGPE-D16 motherboard coreboot "internal" eeprom flasher. I don't know if my chips are the B-type or C-type, so I guessed "B", and it worked. Again, both readback and write worked, and I was able to successfully boot the machine from the written eeprom.
Output below.
$dpkg -l | grep flashrom ii flashrom 1.0-1 amd64 Identify, read, write, erase, and verify BIOS/ROM/flash chips
$sudo flashrom -p internal -c GD25Q128B -w coreboot.rom flashrom on Linux 5.3.5+ (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). coreboot table found at 0xb7ce0000. Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK. Found GigaDevice flash chip "GD25Q128B" (16384 kB, SPI) mapped at physical address 0x00000000ff000000. === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE 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! Reading old flash chip contents... done. Erasing and writing flash chip... Erase/write done. Verifying flash... VERIFIED.