liblan9218 - bug


we found bug In C:\Program Files\Analog Devices\VisualDSP 5.0\Blackfin\lib\src\drivers\ethernet\lan9218\lan9218.c

When the driver gets some tcp packets _together_ (one after the other immediately), it handles only the first message and loses the others.

the bug is in the function LAN9218_InterruptHandler:

the old code

while (GetRegDW(g_pLAN911x, RX_FIFO_INF) & 0x00FF0000) 




new code: use if instead of while

now all the packets are handled correctly and received by the application.




    •  Analog Employees 
    on Mar 2, 2012 12:37 AM

    LAN9218 driver conforms to the SMSC LAN9218 programming model described in the datasheet. The model indicates to read all pending received packets once receive interrupt occurs. Are you seeing any particular length of packets being dropped?

    You can send your test program to for further investigation.