real-xinu / xinu-galileo

Other
17 stars 6 forks source link

Fixed an issue with ethread. Now it can read a packet even if it is d… #6

Closed rajas-k closed 7 years ago

rajas-k commented 7 years ago

…ivided into multiple descriptors

rajas-k commented 7 years ago

@douglascomer On the quark SoC, the ethernet device sometimes divides a big packet into multiple descriptors. The driver assumed that the entire packet is always in a single descriptor. I have changed the ethread function such that it now checks if the packet is split into multiple descriptors. I tested it with 1500 byte ICMP echo packets which works now (failed before the change). I sent a patch file to Arnab to test it with his 636 code; his tests passed with the new ethread.c file.

rajas-k commented 7 years ago

@chaudhuri-ab Please comment here about your test results.

chaudhuri-ab commented 7 years ago

Rajas, I just got a chance to pull down your updates and it works up to 1472 bytes of echo payload which is exactly 1500 MTU. A thought which we talked about previously is if you have constant in the driver that initializes the DMA buffer to the proper size you now can end up identical net.h files between the BBB and Galileo vs the latter having an extra member in the struct for the CRC check. @douglascomer what is your opinion on it?

Thx