Stealth port problems

Takashi Oe toe at unlserve.unl.edu
Sun Jul 30 22:29:57 EST 2000


On Sun, 30 Jul 2000, Giuliano Pochini wrote:

> > >Hi!  I have troubles with my stealth port on a G3-blue. When it runs at
> > 115200
> > >ifconfig
> > >shows a lot of overruns. At 57600 it works fine, but it's slow :-((
> > >
> > >Does any of you own that serial port ?  Suggestions ??
> >
> > Which kernel ? With the DMA serial driver, it should work better than
> > that... The Stealth hardware is probaly not responsible, it's just a line
> > driver plugged instead of the modem, the actual zilog SCC is part of
> > Apple's ASIC.
>
>
> I've just tried the old non-dma code. Same problem :-(((

If so, could you check if you have DMA enabled with dma code?

	$ cat /proc/interrupts
           CPU0
	  2:          0   PMAC-PIC      MACE-txdma
	  3:          0   PMAC-PIC      MACE-rxdma
	  4:          0   PMAC-PIC      SCC-txdma
	  5:          0   PMAC-PIC      SCC-rxdma
	  6:          0   PMAC-PIC      SCC-txdma
	  7:      15593   PMAC-PIC      SCC-rxdma
	  8:         17   PMAC-PIC      AWACS out
	 12:          7   PMAC-PIC      53C94
	 13:    3411091   PMAC-PIC      MESH
	 14:          0   PMAC-PIC      MACE
	 15:          0   PMAC-PIC      SCC
	 16:     594667   PMAC-PIC      SCC
	 17:          0   PMAC-PIC      AWACS
	 18:     991629   PMAC-PIC      VIA
	 19:          0   PMAC-PIC      SWIM3
	 25:          0   PMAC-PIC      usb-ohci, ohci-usb
	BAD:          0
	$

If you don't see "SCC-rxdma", then it's not enabled.  The reason I ask is
that a G3-blue's SCC device node has more than three addresses if I
remember correctly, and, if that's the case, the dma code won't be enabled
due to the following sniplet in chan_init() of macserial.c:

#if !defined(CONFIG_KGDB) && defined(SUPPORT_SERIAL_DMA)
	if (ch->n_addrs == 3 && ch->n_intrs == 3)
		zss->has_dma = 1;
#endif

It can be fixed if the above is changed to something like:

#if !defined(CONFIG_KGDB) && defined(SUPPORT_SERIAL_DMA)
	if (ch->n_addrs >= 3 && ch->n_intrs == 3)
		zss->has_dma = 1;
#endif

I think the last two addresses correspond to DMA addresses for all
SCC capable machines so far, so this change should be ok.


Takashi Oe


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list