Igloopatch

william vajk learn at igloo.UUCP
Thu Oct 20 11:31:26 AEST 1988


That darned serial driver problem under microport. Haven't we heard
enough about it yet ?

Not really.

I waited a year after I got microport, and with some promise of a fixed
driver, I ordered my upgrade to 2.2. The serial drivers were still damaged.
Igloo would not maintain a newsfeed with other activity on the system. I
tried a different serial card (recommended by microport) which didn't help.
I received the newest latest and greatest driver, which was supposed to fix
everything, it didn't. 

I had, in there somewhere, been told it was my hardware, which was replaced. 
I moved up to Denninger's autobaud getty to improve the connectability of the 
telebit at 9600, but still there were lost characters and lost feeds. And there
were complaints by users of lost characters. And cu was practically worthless. 
And 9600 baud attempted logins from ddsw1 (login id dduucp) showed in ps as 
dduup regularly when the system had other activity, not even a severe load. 
Think of it, potentially every 5th character lost.

On top of all this rode the suggestion that there were intelligent serial
cards on the market. I balked at the price and the concept. Microport
should, by all rights, be fixable without adding many hundreds of dollars to
the cost of the machinery and someone else's software.

Then came a discussion reflecting the _wonder_ that any form of unix would
run as well as it does under the '286 chip and all the reasons why it
shouldn't be able to.

One fine day, I read a suggestion by John Zeeff about using a 16550A chip in
place of the 16450 as the former contains an FIFO which could be used to
queue incoming characters while the cpu was busy elsewhere. Sounded like a
great idea, and a third party xenix driver was created, and porting the code 
to microport was begun. A couple of revisions of that port, which is still in
process of fine tuning, were tested on igloo. There are some minor problems 
in initializing it to talk to a modem. I saw quite a nice demonstration on a 
null modem line using my hardware. I'll, for the moment, leave announcement
of this continuing effort to the authors of the driver.

As a result of the new third party driver project, a friend and igloo user,
John Welch decided to design and create an inexpensive dumb serial card to
take advantage of the 16550A chip and the new driver. In the course of
discussions, I badgered him to look at the specs on the chip to determine if
there weren't some simple initialization sequence which could be invoked to
turn on the FIFO feature, one which could perhaps make the chip self
sustaining. Several hours later, not only was it determined that yes, indeed
there is such a feature, but the code was also written and installed on
igloo. The replacement of the 16450 by a 16550A took only the effort of
plugging in the new chip in place of the old. Standard cautions against
electrical static are advised.

Briefly explained, the software John uses to initialize the chip sets a
depth of FIFO fillup to 8 characters, and the cpu is interrupted, all this 
utilizing the semi-intelligent merits of the 16550A itself, no cpu specific 
horsepower required. It also appears that an x-off is issued out the port.a
The 16550A handles flow control whenever its buffer is about to overflow.

Testing of this feature began immediately. I polled at 9600 baud, logged in
on the other phone line, and did a 10 minute screen dump (cat * in a
directory with only readable text files.) Normally, the effects of logging
in would by themselves have been enough to lose the newsfeed, let alone a
continuous screen dump. Yes, most assuredly, one could visually note the
slowdown in the newsfeed, with some brief off-on intervals on a semi-regular
basis, but the newsfeed itself continued. The newsfeed complete, I cu'd out
and logged back in to igloo on a loopback thru ma bell. With the system
heavily loaded by the unbatching going on (and 16 bit uncompress, etc) I
catted the same files as before. Yes, the screen was somewhat jerky, as one
would expect, but not a single character was lost.

I then logged into chinet using igloo's cu, and was able to determine that
even talking to a fast machine resulted in no lost characters while igloo
was still under a decent load. Yes, the screen was somewhat jerky at 2400
baud, but one miracle at a time is quite sufficient.

Doubtless, addition of a new driver will make matters better and the third
party driver I mentioned earlier holds some promise of improving performance
while running 16450's. In the meantime, the problems I have with the serial
drivers have been repaired at minimal cost by another third party. Now, if 
only someone would undertake to fix the two drive problem. There's been some
mention that the fix is included in the new upgrade. I'll take that final 
plunge.

I've flamed at microport for a long time regarding these issues. I now rest
my case regarding the serial drivers. That has been fixed inexpensively.
Thanks to John Zeeff for calling the new chip to our attention, and to John
Welch for digging into the matter and writing a the code that works.

John Welch is of the opinion, as am I, that there has been enough suffering 
at the hands of microport already, and that this little piece of software
should be placed in the public domain. The source code follows in another 
article. Neither of us makes any representations about it other than it is 
doing a fine job at igloo. Use it at your own risk.

Bill Vajk                                                      learn at igloo



More information about the Comp.unix.microport mailing list