[LinuxBIOS] V3 fallback, failover, and the normal boot flag.
marc.jones at amd.com
Wed Jul 18 00:11:19 CEST 2007
How should this work in V3? The current implementation doesn't really
make sense to me. See do_normal_boot() in V2.
I think that stage0+1 is the equivalent of V2 failover.
In stage1 the normal boot flag cmos byte is checked to see if the normal
or the fallback image should be loaded.
The cmos byte is not documented well. I think it is as follows:
[7-4] - boot count
[3-2] - not defined
 - last boot flag
 - normal boot flag
Boot count increments until reset if normal boot flag is set.
Last boot flag is set anytime boot count is less than max boot count.
Normal boot flag is cleared if boot count exceeds max boot count. Normal
boot flag doesn't seem that it can ever be set?
Currently in V3, if CMOS checksum is invalid (CMOS is cleared/not setup)
then the boot count is maxed and the fallback image is forced. I don't
think this is the correct thing to do. If checksum is bad we should
clear cmos, set the boot count to 0, and try to do a normal boot. If
normal boot fails the CMOS will checksum this time around. The boot
count flag should be incremented should try again until max boot count
is exceeded. Then the normal boot flag should be cleared and fallback
image used. The last item is about the last boot flag. I don't think
that it is needed.
Thoughts and comments?
Senior Software Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com
More information about the coreboot