On Tue, 2011-04-12 at 00:27 +0200, Michael Walle wrote: > Otherwise interrupts whicha are raised during frame processing may > be lost.
No, the interrupt line stays asserted as long as there are RX buffers in the PENDING state (like the previous minimac does). If the interrupt is acked early, it would be immediately re-asserted at the next clock cycles because the buffers have not been processed. The state of the RX buffers works as follows: * EMPTY: IRQ line is deasserted, hardware does not write to the buffer. * LOADED: IRQ line is deasserted, hardware may write received packet data to the buffer. * PENDING: IRQ line is asserted, hardware has written a full received packet to the buffer and does not write to it anymore. Software may either: ** read the packet immediately and re-enable reception of a new packet by going to the LOADED state. Libnet does this. ** go the EMPTY state to deassert IRQ, and only later read the packet then go to the LOADED state. The RTEMS driver does this. S. _______________________________________________ http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org IRC: #milkymist@Freenode Twitter: www.twitter.com/milkymistvj Ideas? http://milkymist.uservoice.com
