*BSD News Article 33722


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!spool.mu.edu!nigel.msen.com!cybernet.com!root
From: root@cybernet.com (Operator (aka Mark Taylor))
Newsgroups: comp.os.386bsd.questions
Subject: Re: FreeBSD 1.1.5.1 hangs
Date: 2 Aug 1994 17:07:45 GMT
Organization: Cybernet Systems, Inc.
Lines: 37
Distribution: world
Message-ID: <31luh1$hu0@nigel.msen.com>
References: <31lbbb$7e@bsd.au.ac.th>
NNTP-Posting-Host: 192.245.33.55

In article <31lbbb$7e@bsd.au.ac.th>, keh@news.au.ac.th (Santithorn Bunchua) writes:
|> I have installed FreeBSD 1.1.5.1R and after running it for few days
|> the system usually hangs .. I cannot even type anything at the console.
|> It never happen with my previous FreeBSD 1.1R..
|> 
|> --keh--


Does it hang when you open a serial port?  If so, then the problem
lies in your serial chipset- there is a known problem with the
SMC chipset emulating a 16550A.  It caused my system to freeze
whenever I opened a serial port.  There is a fix for this in
1.1.5.1 (the workaround didn't make it into 1.1.5.1).  FreeBSD 2.0
already has the workaround built into it.

The fix is to add an extra "inb" instruction from the data port:


/sys/i386/isa/sio.c:

    com->ftl_max = com->ftl_init;
    ++com->wopeners;
(void) inb(com->dataport);  /* hack to fix broken SMC 16550A emulation */
    error = comparam(tp, &tp->t_termios);
    --com->wopeners;
    if (error != 0)


This one line has fixed my system locking up.  I've been running it for
a few weeks like this, with a 24-hour SL/IP link to our service provider.


Feel free to post or email me any questions.


-Mark Taylor
mtaylor@cybernet.com