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

Reply via email to