[1277] in Athena Bugs

home help back first fref pref prev next nref lref last post

[don@ATHENA.MIT.EDU: rt broadcast-address bug]

daemon@ATHENA.MIT.EDU (Henry Mensch)
Sat Oct 29 21:07:50 1988

Date: Sat, 29 Oct 88 21:07:32 EDT
From: henry@GARP.MIT.EDU (Henry Mensch)
To: bugs@ATHENA.MIT.EDU
Reply-To: henry@GARP.MIT.EDU
From: don@ATHENA.MIT.EDU
Date: Sat, 29 Oct 88 20:21:04 EDT
To: rt-testers@ATHENA.MIT.EDU
Subject: rt broadcast-address bug

i'm working on it. looks like the ethernet-driver's probe routine
intends to send the garbage packet in "loopback-mode", so as not
to clutter the net.
but, the code that does the loopback is trying to ignore parity errors too,
by fiddling two bits at once in the edlc's "transmit mode" register:

from caif/if_unreg.h:

   #define TM_IGNP 0x08            /* Ignore parity errors */
   #define TM_LBC  0x02            /* Loopback control  - set => no loopback */
   #define TM_NORMAL (TM_IGNP+TM_LBC)

from unzap(), called by unprobe(), called by autoconf():
   /*
    *  the next line puts the transmitter in loopback mode so
    *  that a spurious packet is not sent when the reset bit is
    *  cleared.
    */
    MM_OUT(&addr->un_edlc.tmode, TM_NORMAL - TM_LBC);
    MM_OUT(&addr->un_edlc.reset, RESET_OFF); /* clear reset bit */
   ...

the rt tech. ref. for the ethernet board does not document this "ignore parity"
bit in the "transmit mode" register. indeed, it says only, "the encoder/decoder
loopback mode is enabled when an H'00' is moved to this register and an H'02'
disables it." i've found in the past that it pays to read ibm documentation
very literally; thus, i doubt that writing TM_IGNP has any effect.

further, this "ignore parity" effort seems redundant, since the edlc's transmit
interrupts (including parity error) have already been disabled at this point
in unzap()'s code.

so, once i get netwatch running on a 6.0 rt, i'll try substituting 0x00
for "TM_NORMAL - TM_LBC" in this line of unzap().
							-don


home help back first fref pref prev next nref lref last post