There appears to be an off-by-one error when using flashrom's erase:
# flashrom -E Calibrating delay loop... OK. No coreboot table found. Found chipset "Intel 631xESB/632xESB/3100", enabling flash write... OK. Found chip "SST SST49LF008A" (1024 KB) at physical address 0xfff00000. Erasing flash chip... FAILED! ERROR at 0x00100000: Expected=0xff, Read=0x00
Index: flashrom.c =================================================================== --- flashrom.c (revision 3882) +++ flashrom.c (working copy) @@ -592,7 +592,7 @@ memcpy(buf, (const char *)flash->virtual_memory, size); else flash->read(flash, buf); - for (erasedbytes = 0; erasedbytes <= size; erasedbytes++) + for (erasedbytes = 0; erasedbytes < size; erasedbytes++) if (0xff != buf[erasedbytes]) { printf("FAILED!\n"); fprintf(stderr, "ERROR at 0x%08x: Expected=0xff, Read=0x%02x\n",