Subject: Bad disk problems, getting DMA beyond ISA
To: John Maier <JohnAM@datastorm.com>
From: Torsten Duwe (Emacs) <duwe@immd4.informatik.uni-erlangen.de>
List: netbsd-help
Date: 06/13/1995 23:59:47
    John> CANNOT READ: BLK 64 CONTINUE? [yn]

    John> and the console is showing this error:

    John> aha0: DMA beyond end of ISA

    John> It's been working fine for 6 months and now this.  The only thing
    John> I've changed is I've added 16 megs bringing the system up to 20megs
    John> and it tests out fine.

Didn't you know about the infamous 16M boundary before you upgraded ? the
1542 is the _classic_ fallpit for this. It lives on the ISA bus (which has 24
address lines = 16MB), does bus master DMA (writes to memory itself) and can
thus only reach the low 16MB of memory. What happened during your fsck is
that the kernel has allocated a buffer for the 1542 to write into above 16M;
luckily the adaptec driver detects this and instead of just overwriting the
memory location modulo 16M it rejects the read.
	To solve your problem you should first remove the excess 4MB and
disable any "remapping" of adaptor shadow your bios chipset setup might
offer, for this may exceed the 16M limit as well.
	If you're not a little adventurous, your fix stops here. If you are,
there is a bounce-buffers patch available for you to put into your
kernel. Bounce buffers are copies of the data to be read / written below
16M. They require 1 extra copy operation but the ISA bus masters at least
work.

Mail me if you're interested and I'll supply you with the patch and the
author's address.