OUTL(VIRT_TO_BUS(p_txcb), ioaddr + SCBPointer);
OUTW(CU_START, ioaddr + SCBCmd);
when I see data starting from p_txcb I find it correct in both cases (first
sending total packet size less then or equal to160 and later total packet
size more than 160). This are first 16 bytes starting from p_txcb for total
packet length of 200. (by total packet length, I mean including ethernet, ip
headers)
(gdb)x/16xb p_txcb
0xf333cc: 0x00 0x00 0x04 0xe0 0xcc 0x3c 0xf3 0x80
0xf33cd4: 0xff 0xff 0xff 0xff 0xc8 0x80 0x10 0x00
(gdb)p /x p_txcb
0xf33ccc
pressing command next at line OUTW(CU_START, ioaddr + SCBCmd) sends packet
out if packet length is less than 160 but does not send if packet lengh is
more than 160. Is it possible that addresses (p_txcb + 160) onwards are
somehow invalid?