Hi,
The current SeaBIOS checks fwcfg for a "file" named "etc/s3-resume-vga-init" - if it exists it will use it. This works on all versions of qemu (though, of course, on current qemu the file isn't found and the default is to not run the vgabios on resume).
This is strange definition of "works" :) It does not run vga rom on resume which makes Linux fail to resume properly. I wouldn't call that "works". We can provide "etc/s3-resume-vga-init" through fwcfg in QEMU, but this will not make older QEMUs magically work.
S3 support in qemu isn't (yet) very useful anyway, so I don't think we have to worry too much, especially about older versions. Beside that I guess older qemus don't work anyway, for me it works like this (with rhel-5 as guest):
Setting etc/s3-resume-vga-init to 1 makes resume hang with "Running option rom at c000:0003" being the last line seabios prints. Maybe vgabios attempts to do something which is illegal on resume and blows up.
When setting etc/s3-resume-vga-init to 0 linux resumes fine. vga text console is dead indeed. Serial console works fine though and the system is alive. When suspending with cirrus vga and X11 being active the system comes out of standby with vga console being functional too.
I am also not asking to change SeaBIOS default. Just get us back compile time option to always enable it.
I think using etc/s3-resume-vga-init to control this is just fine ...
cheers, Gerd