OK, so I've banged my head against this for a while more, but don't expect to get much further. Perhaps these notes will be useful for someone else.
Reserved[31:28]=0x0
This should be 0x8 apparently, but fixing it up didn't do any good.
GPIOPortMode=0x0 Warning! Either the straps are incorrect or you have no flash or someone overwrote the strap values!
This indicates that the 88SX7042 is in a mode (presumably set by Adaptec's custom BIOS after it no longer needed to read flash) whereby some of the GPIO pins are used to run SATA port activity/status LEDs, instead of talking to the flash chip. The code puts the port into flash mode, and I verified that this "stuck", but still no dice.
Maybe there's some GPIO pokery needed first to put Adaptec's hardware back into flash mode, but I couldn't see anything obvious when looking at the card.
Maybe a logic analyser is needed, or maybe running the Adaptec DOS updater under kvm+vtd to see how it sets up the chip prior to write. I don't have either available at the moment unfortunately...
Anyway, my reason for doing this was that I actually want to wipe/disable the Adaptec flash (since I don't want to use their proprietary "HostRAID" blurgh anyway, and their BIOS takes ages to timeout port scans when SATA port multipliers attached and/or their proprietary RAID metadata isn't present on the drives etc. etc. etc.).
It's probably possible to do this instead by disabling the expansion ROM PCI mapping at reset time, so I'll attack it that way if I have time....
Tim.