Subject: Re: SCN driver
To: None <jonb@metronet.com>
From: Ian Dall <Ian.Dall@dsto.defence.gov.au>
List: port-pc532
Date: 12/03/1996 15:37:03
Jon Buller <jonb@metronet.com> writes:
> Ian Dall <Ian.Dall@dsto.defence.gov.au> writes:
>> process quick enough. The scn2681 family doesn't deassert RTS until
>> the fifo is full *and* it has received the start bit for the next
>> character. That means the other end has one character time to detect
>> the CTS before it sends the next character.
> Not so good. It would be better if it would assert when the fifo
> fills, rather than waiting for a start bit to signal. Even better
> if it could accept a character or two after flow control was
> asserted.
Yep. The only way I can think of doing this is to toggle the RTS line
from software. This could be made to work except for the other problem
I mentioned - that rxintr's can be blocked out due to scsi activity
and so you couldn't rely on being able to toggle RTS in time. (And I'd
sooner have a few serial port overruns than a corrupted disk!)
The only total solution is *really* on the nose. Control RTS in
software and when the scsi IO starts its block transfer, pre-emptively
de-assert RTS for all open serial lines. I told you it stank :-).
Actually, if it weren't for the violation of modularity, this wouldn't
be so bad. A routine to write to one register in each of 4 duarts would
run pretty quick, especially if you put pre-calculated addresses and mask
values in some table. If you want to test for lines being open and
CRTSCTS then that would slow it down a bit...
Ian