freebsd-nq/sys/boot/i386/libi386
Oliver Fromme 25eed6867e Implement a workaround for a long-standing problem in
libi386's time(), caused by a qemu bug.  The bug might
be present in other BIOSes, too.

qemu either does not simulate the AT RTC correctly or
has a broken BIOS 1A/02 implementation, and will return
an incorrect value if the RTC is read while it is being
updated.

The effect is worsened by the fact that qemu's INT 15/86
function ("wait" a.k.a. usleep) is non-implmeneted or
broken and returns immediately, causing beastie.4th to
spin in a tight loop calling the "read RTC" function
millions of times, triggering the problem quickly.

Therefore, we keep reading the BIOS value until we get
the same result twice.  This change fixes beastie.4th's
countdown under qemu.

Approved by:	des (mentor)
2008-06-16 17:04:04 +00:00
..
amd64_tramp.S
biosacpi.c Catch up with ACPI-CA 20070320 import. 2007-03-22 18:16:43 +00:00
bioscd.c Slightly cleanup the 'bootdev' concept on x86 by changing the various 2007-10-24 04:03:25 +00:00
biosdisk.c Tweak the verbose disk printing a bit: 2008-02-28 17:49:23 +00:00
biosmem.c - Add constants for the different memory types in the SMAP table. 2007-10-28 21:23:49 +00:00
biospci.c Fix most of the WARNS=2 warnings. 2006-09-29 20:27:41 +00:00
biospnp.c Long-long time ago, when the trees were large and memory expensive amount of 2005-12-19 09:00:11 +00:00
biossmap.c Workaround a bug in the BIOS of Dell R900 machines. Specifically, each 2008-06-07 03:07:32 +00:00
bootinfo32.c Extend struct devdesc with a unit field, called d_unit. Promote the 2006-11-02 01:23:18 +00:00
bootinfo64.c Fix most of the WARNS=2 warnings. 2006-09-29 20:27:41 +00:00
bootinfo.c Cause all flags passed by boot2 to set the respective loader(8) 2005-09-22 15:14:13 +00:00
comconsole.c Add a "comconsole_speed" loader variable that can be used to change 2005-08-18 01:39:43 +00:00
devicename.c First cut at support for booting a GPT labeled disk via the BIOS bootstrap 2007-10-24 21:33:00 +00:00
elf32_freebsd.c Revert the last change. Masking only 2 MSBs of the virtual address 2006-11-02 17:28:38 +00:00
elf64_freebsd.c Adopt comments borrowed from aout_freebsd.c. 2006-10-26 20:04:22 +00:00
i386_copy.c For the cases when loading bzip2-compressed kernels enabled use last 2005-12-21 02:17:58 +00:00
i386_module.c
libi386.h Extend struct devdesc with a unit field, called d_unit. Promote the 2006-11-02 01:23:18 +00:00
Makefile Do not attempt to make an NFS rpc call if using tftp 2007-10-12 17:09:43 +00:00
nullconsole.c
pread.c
pxe.c Do not attempt to make an NFS rpc call if using tftp 2007-10-12 17:09:43 +00:00
pxe.h
pxetramp.s
smbios.c Use lower cases for UUID string to conform RFC4122 and ISO/IEC-9834-8:2005. 2007-05-21 18:48:18 +00:00
time.c Implement a workaround for a long-standing problem in 2008-06-16 17:04:04 +00:00
vidconsole.c