*BSD News Article 34419


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!vixen.cso.uiuc.edu!sdd.hp.com!nigel.msen.com!heifetz.msen.com!cybernet.com!root
From: root@cybernet.com (Operator (aka Mark Taylor))
Newsgroups: comp.os.386bsd.misc
Subject: Re: Misc 386BSD questions
Date: 16 Aug 1994 16:37:58 GMT
Organization: Cybernet Systems, Inc.
Lines: 75
Distribution: world
Message-ID: <32qq16$2a0$1@heifetz.msen.com>
References: <1994Aug15.160453.12929@integrity.uucp>
NNTP-Posting-Host: 192.245.33.55

In article <1994Aug15.160453.12929@integrity.uucp>, haynes@devnull.mpd.tandem.com (Jeff Haynes) writes:
|> I am having problems with FreeBSD and my new motherboard.
|> I got an ASUS PCI/ISA SP3 motherboard with the NCR SCSI
|> controller, 2 16550 serial ports and a parellel port on
|> the motherboard. I have 32MB memory.
|> 
|> List of problems:
|> 
|> 1. Everytime I access a serial port, the system locks up. I have to 
|> reboot. The virtual terminals work fine.  The problem occurs if I
|> use "cu -l /dev/ttyd0", cu -l /dev/cua00", or even "echo abc > /dev/ttyd0".
|> 
|> I am using the default device line in the kernel config file, as well
|> as "options COM_BIDIR". Is this a hardware problem?
|> 
|> Anybody else have this problem?

Yes, I've had it and had it fixed.  The problem is that you have a SMC chipset
emulating a 16550A serial chip.  This is known to be buggy.  The fix is to modify
/sys/i386/isa/sio.c, adding an inb in the right place (as line 748):

                 tp->t_termios = mynor & CALLOUT_MASK
                                ? com->it_out : com->it_in;
                commctl(com, MCR_DTR | MCR_RTS, DMSET);
                com->ftl_max = com->ftl_init;
                ++com->wopeners;
(void) inb(com->data_port);  /* hack to workaround broken SMC chipset */
                error = comparam(tp, &tp->t_termios);
                --com->wopeners;
                if (error != 0)
                        goto out;

After adding this to sio.c, recompile and install your new kernel.  It has worked
on many systems, including mine (which is our company's Internet gateway via a
SL/IP link over the buggy SMC chipset).  There is a better fix for this broken
emulation in FreeBSD 2.0.


|> 2. Before last night, the memory test during boot up would show
|> Testing memory (32MB) ...
|> 
|> Now, for some reason, when the memory is being tested, I get the
|> message,
|> 
|> Testing memory (16MB) ...
|> 
|> The BIOS still shows 32MB memory and it tests OK on the power up
|> tests, so it doesn't seem like the memory is bad.  What's going on?
|> The only thing I changed was a couple of line in the kernel config
|> file, having to do with the ep0 ethernet driver and other unrelated
|> stuff.
|> 
|> Anybody else having this problem?

I've seen a message (posted as a reply in .questions, I think) which indicates
that the default kernels (the GENERIC* ones) were compiled with a MAXMEM set
so if you use these kernels, then you will be able to use no more than 16
megabytes of RAM.

The fix for this is to make your own kernel (which you will do in (1) above
anyway).


|> 
|> Any help would be greatly appreciated. I can't get UUCP running
|> without the serial ports and I obviously want to know if something
|> is wrong with the memory.
|> 
|> 
|> Thanks in advance!
|> 
|> -- 
|> Jeff Haynes
|> Tandem Computers, Inc.
|> haynes@mpd.tandem.com