[ previous ] [ next ] [ threads ]
 From:  Fred Wright <fw at well dot com>
 To:  m0n0wall at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall] pb13 released
 Date:  Thu, 3 Jul 2003 18:42:08 -0700 (PDT)
On Sun, 29 Jun 2003, Manuel Kasper wrote:

> - created zoneinfo.tgz without hardlinks (for example, Europe/Zagreb and
> Europe/Belgrade are hardlinked together; this caused problems with tar)

Hmm.  I thought tar was supposed to handle hardlinks correctly.

> Since today is Sunday, I re-experienced the date/time writeback bug
> (FreeBSD in conjunction with the Soekris BIOS) and decided that it was
> about time to do something about it, so I incorporated this diff:

You don't say what the symptom is.  Complete zap of the date/time?

> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/i386/isa/clock.c.diff?r1=1.190&r2=1.191&f=h
> in the net45xx kernel. Works fine now, although the Soekris BIOS
> displays the year as 1903 instead of 2003 (??). FreeBSD doesn't seem
> to mind, though.

I suspect what happened is this:

1) FreeBSD wrote the RTC with the wrong DOW, which was always incorrect
but only looked illegal on Sunday.  FreeBSD ignores the DOW when reading,
since it can compute it, and the Soekris BIOS never reports the DOW.

2) The Soekris BIOS saw the invalid DOW, and took that as evidence that
the RTC lost power.  It reset the date/time to some default value,
including the century byte which is in the CMOS RAM (location 0x32), not
the RTC.

3) FreeBSD corrected the date/time, but not the century.  It doesn't look
at the century because it assumes the year is in the 1970-2069 range.

4) The Soekris BIOS does use the century, and hence reports the wrong
date.  This can be fixed by resetting the date with the BIOS command, or
by manually correcting CMOS location 0x32 and fixing the checksum.

It sounds like FreeBSD doesn't properly support Y2K-compliant BIOSes, with
or without the DOW fix.

					Fred Wright