Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jan 1997 10:28:22 -0800 (PST)
From:      Bruce Evans <bde>
To:        CVS-committers, cvs-all, cvs-sys
Subject:   cvs commit:  src/sys/i386/isa clock.c
Message-ID:  <199701161828.KAA04727@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
bde         97/01/16 10:28:21

  Modified:    sys/i386/isa  clock.c
  Log:
  Guard against the i8254 timer being uninitialzed if DELAY() is
  called early for console i/o.  The timer is usually in BIOS mode
  if it isn't explicitly initialized.  Then it counts twice as fast
  and has a max count of 65535 instead of 11932.  The larger count
  tended to cause infinite loops for delays of > 20 us.  Such delays
  are rare.  For syscons and kbdio, DELAY() is only called early
  enough to matter for ddb input after booting with -d, and the delay
  is too small to matter (and too small to be correct) except in the
  PC98 case.  For pcvt, DELAY() is not used for small delays (pcvt
  uses its own broken routine instead of the standard broken one),
  but some versions call DELAY() with a large arg when they unnecessarily
  initialize the keyboard for doing console output.  The problem is
  more serious for pcvt because there is always some early console
  output.
  
  Guard against the i8254 timer being partially or incorrectly
  initialized.  This would have prevented the endless loop.
  
  Should be in 2.2.
  
  Revision  Changes    Path
  1.74      +22 -5     src/sys/i386/isa/clock.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701161828.KAA04727>