[LinuxBIOS] V3 fallback, failover, and the normal boot flag.

Marc Jones 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
[1] - last boot flag
[0] - 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?

Marc Jones
Senior Software Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com

More information about the coreboot mailing list