Skip site navigation (1)Skip section navigation (2)
Date:      8 Mar 96 12:38:03 GMT
From:      peter@jhome.DIALix.COM (Peter Wemm)
To:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Proper FreeBSD news machine
Message-ID:  <peter.826288683@jhome.DIALix.COM>
References:  <199603071933.GAA04954@godzilla.zeta.org.au>, <199603080006.RAA15152@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
terry@lambert.org (Terry Lambert) writes:

>> >This is highly dependent on the motherboard you have to put it in (stating
>> >the bleeding obvious :-)) .. PCI is better than VESA or EISA is better than
>> >ISA. Any decent card, Adaptec or BusLogic will do what you need. Note one
>> >specific exception - a BT445S is of absolutely no benefit at all over a 1542
>> >through its inability to avoid the use of "bounce-buffers".
>> 
>> According to /sys/i386/isa/bt5xx-445.c, only "OLD bt445s Revision A,B,C,D
>> (nowired)" have broken 32 bit addressing.  However, /sys/i386/scsi/bt.c
>> now enables bounce buffering for all bt445s's.  You can still avoid it
>> by using option BOUNCE_BUFFERS.  Option BOUNCE_BUFFERS also gives unnecessary
>> bounce buffering for the ultrastor U24F (EISA) and U34F (VLB) controllers
>> since ultra14f.c always enables bounce buffering in case the system is ISA
>> or broken.
>> 
>> I think the bt445s is still better than a 1542 because it is a newer design
>> and is designed for VLB.

>If you could turn it off and on on a per-controller basis, you could
>easily locate a page that would wrap that is in both the "above 16M"
>and "below 16M" spaces.

>Then you:

>1)	Read a sector into the low area
>2)	Increment every byte
>3)	Copy it to the high area
>4)	Read the sector to the high area; if the decode fails, the
>	low area is modified, if not, the high area is modified.

>You disable bouncing if the high area is modified, and leave it
>enabled if the low area is.

>This fixes HiNT chipset based NiCE EISA motherboards, and the three
>name changes the motherboards went through after it became apparent
>they didn't conform to the EISA spec.

>You don't even do the "16M DMA wrap probe" if the machine has less
>than 16M.

>Problem solved.  Throuw out the version code and the ISA/VLB distinction.

Not for the BT445S that I have.. :-(  It passes a DMA wraparound test, but
still manages to indeterminately f*** up when running with no bouncing.
I've tried both the native and the "fixed" roms.

I suspect the "fixed" roms for this card simply have a bios patch to avoid
triggering the firmware and/or hardware bugs.  Naturally, a bios patch
is practically useless to us if that's all it is.

The other interesting thing is that the "revision" string does not
appear to be able to be read on these cards...  Either that or the driver is
not getting what it's expecting from the firmware.  Thus, it's impossible
to tell whether you have a 445S rev A through D vs a 445S rev E (if it even
existed).  The 445C supposedly works though, and the driver knows this.

Cheers,
-Peter

>					Terry Lambert
>					terry@lambert.org
>---
>Any opinions in this posting are my own and not those of my present
>or previous employers.



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