This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Async Ethernet driver API..
- From: "Badri Sampathkumar" <badri at atheros dot com>
- To: "eCos Discussion" <ecos-discuss at ecos dot sourceware dot org>
- Date: Mon, 21 Mar 2005 20:34:17 -0800
- Subject: [ECOS] Async Ethernet driver API..
Hi:
I have an working Ethernet driver that uses programmed i/o. I want to change
it to
use DMA instead of pro i/o.
For the Rx side, the flow of func calls is as below.
eth_drv_dsr()--> deliver()->poll()--> determines if it is a Rx/Tx interrupt.
if Rx, poll()-> Rx-Event()->eth_drv_recv(). eth_drv_recv() allocates the SG
buffer and calls back into the hw driver hw_recv(). This call into the hw
driver is a
synchronous call. Once this function returns eth_drv_recv() proceeds with
further processing of the pkt by passing it up the protocol stack.
If i use DMA, then after setting up the DMA i would return from this
function (hw_recv).But I dont want the upper layer to contiinue processing
the pkt since DMA would not have completed yet. Once DMA is complete I want
to call into the upper layer func to process the pkt.
Is there any way this API can be made Asynchronous..
Thanks,
/Badri
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss