Hi,
I am sending ether packets larger than 1500 to 814x (PG2.0, REV C, DDR3), according to the document, the largest packet cpsw can receive is 2047 bytes
because there are only 11 bits for pktlen in rx descriptor. I set CPSW_MAX_RXLEN register to 2047, and on my Linux machine I did the following:
ping 192.168.0.1 -s 2000 -M do
the packet size is 2000 because (2000 + icmp header + ip header + ether header + crc) = 2000 + 8 + 20 + 14 + 4= 2046
I can use this to ping my 814x board, but after sending a few packets, I got an error packet and I printed some information:
error packet [flags = 0xc6b10790] (rx buffer descriptor word3)
which says it's a long, mac ctrl packet with alignment errors. I checked the SL_MACCONTROL register, all the mac control frames are filtered.
And after this, the cpsw can not receive any good packets.
But if I ping the board with packet size 1994, then no error will happen. So can anyone give me some hit ? Did I miss something ?
Thanks.