Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Oct 1997 14:24:29 -0400
From:      jak@cetlink.net (John Kelly)
To:        hackers@FreeBSD.ORG
Subject:   Re: 48 meg double fault moved to 64 meg in 2.2.5
Message-ID:  <dljU0Y9zBc5e091yn@cetlink.net>
In-Reply-To: <Pine.BSF.3.96.971024211126.7229B-100000@gdi.uoregon.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Doug White <dwhite@gdi.uoregon.edu> wrote:

 >> I have extra parts to build a third machine identical to the
 >> configuration which shows the problem.

 >Keep us posted.  If you find anything consistent, you should send
 >it using send-pr and maybe followup to hackers@freebsd.org.

The problem does occur with no SCSI present -- just the motherboard
and a video card.  When testing it this way, I had to use the floppy
controller on the motherboard instead of the faster one on the
Buslogic SCSI card.  That seems to rule out either floppy controller
as a cause of the problem.

I found a CMOS option called "DRAM Hole for UNIX(64MB)" which I
enabled to see what would happen.

With 64 meg and 2.2.5, the problem disappeared.  But with 48 meg
and 2.2.2 it had no effect, and the double fault still occurred.
I'm guessing that's because the BIOS does not try to create that
DRAM hole unless you fill the board with 64 meg of memory -- as
they do say in parentheses "(64MB)."

Unfortunately, I can't keep the "DRAM hole" enabled, because
after a reboot the memory test fails, and the only cure is the
hardware reset button.  Even if I could leave it enabled, it's
of no help at all with 48 meg and the 2.2.2 boot floppy.

The memory test failure after a reboot may happen because this
motherboard does not have address line 26 wired to the chipset,
and thus anything over 64 meg cannot be addressed properly.
Presumably, to create the "DRAM hole," the BIOS remaps some
memory from below the 64 meg line to above 64 meg, and once it's
put there, it can no longer be seen, since A26 is unusable --
at least not by the chipset (although A26 is wired between the
CPU and the local bus).

I learned about the A26 problem on this motherboard when I tried
using the linear addressing feature of XFree86 with my Cirrus
5430 video card.  Although the video card tries to use the A26
line to remap its memory above the 64 meg line, the motherboard
could not handle it.  The XFree docs have a good explanation of
this situation in X11R6/lib/X11/doc/README.cirrus.

But as for the motherboard and the boot floppy problem, I don't
understand the purpose of the "DRAM hole for UNIX," although it
clearly does have a positive effect on the boot floppy problem
when it's activated with 64 meg in the machine.

Is it true that this problem only occurs with the boot floppy?
The last good message I see with the 2.2.2 boot floppy and 48
meg is "changing root device to fd0c," and then immediately the
"panic: double fault" appears.

Since floppy controllers use DMA, perhaps DMA and the bounce
buffers are an issue?  Addressing memory remapped above 64 meg
may also be part of the problem, at least on this motherboard.

I did find an interesting tidbit in Messmer's "Indispensable
PC Hardware Book" (second edition).  On page 621 he says:

    "DMA transfer is not a trivial job, especially
    when paging is enabled, even for the operating
    system ... as the DMA controller overwrites the
    physical memory contents mercilessly without any
    care for the protection mechanisms of the protected
    mode ... an incorrectly initialized DMA chip may ...
    crash ... the complete computer system."

Hmmm... sounds familiar.

Oh well, I've reached the limits of my knowledge in these areas.
I hope my report is of some help to the experts.

John





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