There's a fallback to PIT if TSC is not present but it doesn't work properly. It prevents boot from floppy on isapc and 486 cpu . SeaBIOS configures PIT in Mode 2. PIT counter is decremented in the mode but timer_adjust_bits() thinks that the counter overflows and increases 32-bit tick counter on each detected "overflow". Invalid overflow detection results in 55ms time advance (1 / 18.2Hz) on each read from PIT counter. So all timers expire much faster and 5-second floppy timeout expires in 83 real microseconds (or just a bit longer). It can be fixed by making the counter recieved from PIT an increasing value so it can be passed to timer_adjust_bits(): 0, 1, 2 and up to 65535 and then the counter is re-loaded with 0. 1. https://bugs.launchpad.net/seabios/+bug/1840719 2. https://lists.gnu.org/archive/html/qemu-devel/2019-08/msg03924.html Fixes:
|1 week ago|
|docs||1 month ago|
|scripts||2 years ago|
|src||1 week ago|
|vgasrc||1 week ago|
|.gitignore||9 years ago|
|COPYING||12 years ago|
|COPYING.LESSER||11 years ago|
|Makefile||1 month ago|
|README||5 years ago|
Welcome to the SeaBIOS project! This project implements an X86 legacy
bios that is built with standard GNU tools.
Please see build and developer information at:
For the impatient, SeaBIOS is built for QEMU and tested on QEMU with:
qemu -bios out/bios.bin
SeaBIOS can be configured with kconfig. To change the default
configuration one can run "make menuconfig" prior to running "make".
For other types of builds, and for more detailed developer
documentation, please see the online documentation listed above.