Hi All:
I've been attempting to write an ethernet driver for an OMAP-L137/138. What I have currently is a minimul OS kernel running on the ARM and want to eventually use uIP as the software implementing the IP stack...
I've got the transmit packet working fine - no concerns, but have noticed some anomalies in the operation of the receive packet system of the EMAC. It is mentioned that an RXnHDP can *only* be set initially after reset, and when the end of a descriptor list is reached - i.e. the last descripter in the list has the End Of Queue (EOQ) flag set. Until this occurs - ***the RXnHDP and none of the NEXT descriptor field links of the list can be modified*** according to the TI docs...
What is wrong with this - in my understanding of it - is that I can *not* reuse any of the descriptors until reaching the end of the list!! At that point I can place a new descriptor list. BUT - this seems to leave an opportunity for a packet to be dropped as now the hardware will not have an available buffer until software provides it. In my experience this is always dangerous to rely on such tight response by software -- especially when the hardware supports such buffering, which to me, should be in place to reduce load and timing on the software!
Can someone tell me yay or nay on the above? What is really going on - differently I hope...
The document I refer to is
TMS320C674x/OMAP-L1x Processor Ethernet Media Access Controller (EMAC)/Management Data Input/Output (MDIO) Module
SPRUFL5A
Also I have looked over some Davinci ethernet code. It does adhere to the TI documentation...
Thanks for anyone's time and help,
Steve Speier