[comp.sys.mips] Another

mmeyer@m2.csc.ti.com (Mark Meyer) (06/03/91)

	A while ago I asked about the LANCE chip's 24-bit addressing
on the M/120's 32-bit address space, and one helpful person (sorry, I
don't remember who at the moment) responded that the chip can address
locations 00XXXXXX of physical memory.  Thanks.

	So, I've been able to initialize the LANCE chip on my M/120 by
hand, and I get a lot of broadcast packets off of our network.  Okay.
But there are a couple of problems (well, one oddity and one problem)
that I've noticed:

	1) My Am7990 LANCE documentation says the number of bytes
received should be stored by the chip in the receive buffer descriptor
in BCD form.  The actual behavior on my M/120 is that the byte count
is stored in 2's complement form.  Great, I'd rather have it in 2's
complement anyway.  Is my documentation (from an Advanced Micro
Devices data book dated 1985) flawed, dated, or what?

	2) If I have 256-byte receive buffers set up, and a 300-byte
broadcast packet arrives, what my chip is doing is writing out all 300
bytes, which is pretty annoying if the extra 44 bytes happen to belong
to the next receive buffer.  What happened?  I'm pretty sure I set up
the descriptor properly - e.g., for a 256-byte buffer at 32380, I have
		2380 8003 F100 0000
in the descriptor before the chip writes the data, but
		2380 0303 F100 012C
after the chip receives a 300-byte packet.  What's the point of
telling the chip how big the buffer is if the chip ignores the
information?
	So what is wrong here?  I thought a large packet would be
split by the chip into two or more buffers - isn't that what it's
supposed to do?  My Am7990 documentation says that 'F' has to be there
in the descriptor ("Must be ones") - is this still right?  Again, is
my documentation flawed, dated, or what?
	Atdhvaannkcse for your help with this problem.
-- 
Mark Meyer          USENET: {ut-sally!im4u,convex!smu,sun!texsun}!ti-csl!mmeyer
Texas Instruments, Inc.                                   CSNET : mmeyer@TI-CSL
Every day, Jerry Junkins is grateful that I don't speak for TI.
             "Drop your weapons, or I'll kill him with this deadly jelly baby."

mmeyer@m2.csc.ti.com (Mark Meyer) (06/03/91)

	Wow - I got an answer in less than 12 hours.  It turns out
that I needed to put the NEGATIVE of my buffer size in the descriptor.
Thus, for a 256-byte buffer, instead of F100 I should have had FF00.
The documentation I had did not use the word "negative", and that is
where my confusion lay.  Thanks to Andrew McRae for clearing things up
for me.

-- 
Mark Meyer          USENET: {ut-sally!im4u,convex!smu,sun!texsun}!ti-csl!mmeyer
Texas Instruments, Inc.                                   CSNET : mmeyer@TI-CSL
Every day, Jerry Junkins is grateful that I don't speak for TI.
"Your present is under the tree.  It's the ticking one marked 'Open Me First.'"