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.'"