SCC UART -"tx interrupt buffer pointer"

Jeff Angielski jangiels at speakeasy.net
Fri Oct 22 05:12:33 EST 2004


When testing with 57600, the stall was slightly different.  I did not
see a problem with the TX_WAKEUP, rather something was inconsistent with
the SCC itself.  The "Tx interrupt buffer pointer" in the SCC parameter
ram was outside the range of valid buffer addresses.

There are 4 buffers starting at: 0x00194284, 0x001942a4, 0x001842c4, and
0x001842e4.  The "Tx interrupt buffer pointer" was 0x00194304 which is 1
byte passed the end of the last buffer.  The TBPTR was ok, just the
interrupt buffer pointer was "bad".

Is this a bug in the hardware or does the Tx internal pointer get
wrapped at some other time?

FWIW, here is the dump of the parameter ram at that point in time:

SCC parameter ram:
==================
bdi2000>md 0xf0008100
f0008100 : 01100130 30300020 30001000 0019425e  ...000. 0.....B^
f0008110 : 01280006 e50679e3 30000000 00194304  .(....y.0.....C.
                                      ^^^^^^^^ <- "Tx internal buf ptr"
f0008120 : 01300000 0000f2fd 8c1e5e6f f4b7b9ca  .0........^o....
           ^^^^^^^^ <- TBPTR
f0008130 : 1a744c5d 9f2da4bd 00200000 00010000  .tL].-... ......
f0008140 : 00000000 00001bfd 00000000 7ea50000  ............~...
f0008150 : 80008000 80008000 80008000 80008000  ................
f0008160 : c0ff726f b6ca6434 59a7fd75 bb0efefd  ..ro..d4Y..u....
 
SCC RX BDs:
==========
f0000110 : 91000020 00194204 91000020 00194224  ... ..B.... ..B$
f0000120 : 9100001a 00194244 b1000020 00194264  ......BD... ..Bd

SCC TX BDs:
==========
f0000130 : 10000020 00194284 10000020 001942a4  ... ..B.... ..B.
f0000140 : 10000020 001942c4 30000020 001942e4  ... ..B.0.. ..B.


TIA,
Jeff




More information about the Linuxppc-dev mailing list