02.08.2013 Views

P4080 PCIe Adapter SDK User Guide Production Release

P4080 PCIe Adapter SDK User Guide Production Release

P4080 PCIe Adapter SDK User Guide Production Release

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Freescale Semiconductor<br />

Rx Path<br />

qman_poll() API invokes the FQ specific callbacks registered by Ethernet Hardware Function<br />

Library during FQ init. In each callback invocation, the Rx Flow Table is looked up to determine<br />

the corresponding Host Rx ring ID.<br />

For every Ethernet Rx packet, the pkt_drv_enqueue_host_ring() API is invoked to transfer the Rx<br />

packet to host memory. In this API, it is verified if the Rx ring has some free FDs. If there are free<br />

FDs, the DMA of Rx data is initiated from <strong>P4080</strong> to Host memory by obtaining the Host address<br />

from Rx shadow ring’s FD. The necessary fields inFD of the Host Rx Descriptor ring are modified<br />

and the Host producer index is updated.<br />

The dma_channel_poll() API, invoked by the application thread checks for DMA completions. If it<br />

finds Rx DMA completions, an MSI interrupt is sent to the Host to notify of an Rx packet.<br />

© Freescale Semiconductor, Inc., 2011. All rights reserved.<br />

Freescale Confidential Proprietary Page 20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!