On Fri, Oct 09, 2009 at 04:22:21PM -0600, Myles Watson wrote:
Does coreboot disable all BARs at start? Would SeaBIOS have to remember which BARs it disabled and then reenable them after the optionrom is copied?
The BARs are enabled when coreboot passes control to SeaBIOS. The expansion ROM may be an exception to that.
On closer read the spec says:
In order to minimize the number of address decoders needed, a device may share a decoder between the Expansion ROM Base Address register and other Base Address registers. When expansion ROM decode is enabled, the decoder is used for accesses to the expansion ROM and device independent software must not access the device through any other Base Address registers.
It looks okay to have other BARs enabled while copying from the expansion rom - they just can't be used while copying. So, I don't think this would be the problem.
Since it works the first time, it seems like it must be something SeaBIOS or the expansion ROM code is doing to break it. Does the control pass to anyone else?
At what point do you hit ctrl-alt-delete? Can you send the full log of a session where you hit ctrl-alt-delete at the boot menu prompt?
Also, does anyone know a reliable way to reset the machine? It might be simpler to have SeaBIOS just do a full reset when it detects a partial reset.
I actually like the partial reset, but maybe I'm in the minority.
At least on some K8-based machines coreboot will cause a reset if you jump to 0xfffffff0 because the reset bits weren't set correctly. I don't know if others work that way.
I'd be a little leary of using a "trick" to reboot for fear of it causing more problems than it solves. If the above is a supported though, then it may be a simpler solution.
-Kevin