This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fwd: Packet size limit on TCP/IP stack ?


mohanlal jangir wrote:

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?

Certainly could... you should examine your PCI window setup. InitTxRing() allocates these buffers from the PCI window. Perhaps the memory is corrupted, or overlaps with something else. i.e. look at CYGHWR_INTEL_I82559_PCI_MEM_MAP_SIZE and CYGHWR_INTEL_I82559_PCI_MEM_MAP_BASE. And of course your MMU setup (see if there are any special properties of the address at (start of packet + 160).


Jifl
--
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine


-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]