Hello,
we currently have a serious problem concerning the AM1808 EMAC Transmission (Tx) only:
> BRIEF PROBLEM DESCRIPTION
AM1808-EMAC stops to send, if two back-to-back frames are transmitted
> PROBLEM DETAILS
In general, the target system works very well, Rx+Tx quality & performance are ok. But under special conditions (see below), EMAC-Tx is completely stalled, no frames will be seen on the wire, until the PHY-LINK is re-established! Please note, that EMAC-Rx (and any other system part) is still running well in this state!
The error occurs with a slight statistic behaviour, but can be reproduced within 1..10 Minutes.
Our diagnostic code is not able to detect this situation:
- all EMAC-Tx registers tell 'no error'
- before sending the EMAC-Tx-Descriptor tells 'free for use'
- before sending the EMAC-Tx-Descriptor tells 'ownership is user'
- immediately after sending the EMAC-Tx-Descriptor tells 'EMAC is owner'
- some instructions later the EMAC-Tx-Descriptor tells 'ownership is user'
These Error-Conditions enforce the error:
- back-to-back Tx of two small ethernet frames (60 Bytes, <1...5 µs)
- LINK-speed 100 Mbit/Full duplex
- PHY connected to 100 MBit-Switch or directly to PC
- PHY Micrel KSZ8041NLI
- customer target system
One(!) of the following conditions definitely prevent the error :
- insert a delay of 1 ms before sending 2nd ethernet frame
- PHY-LINK-speed 100 Mbit with half(!) duplex (Hub)
- PHY-LINK-speed 10 Mbit
- Using same Appl. Code at Logic_OMAP_L138_eXperminenter Kit
The behaviour looks similar to the AM1808-Errata-Sheet Problem 'DMA-Lock with USB-RNDIS-Frames'
(http://www.ti.com/lit/er/sprz313c/sprz313c.pdf), but we are not familiar with AM1808-DMA processes.
> TARGET SYSTEM & ENVIRONMENT
- CustomerTarget: AM1808 Rev. 2., Micrel PHY KSZ8041NLI
- Evalboard: Logic_OMAP_L138_eXperminenter Kit
- EMAC-Driver: Logicpd BSL (2010)
> QUESTIONS
- Any available solution to prevent that problem?
- Are there any similar experiences regarding our EMAC-Tx problem?
- Any hint, how get closer to that cause?
- Any proposal, to improve diagnostic code to detect that error case?
Thank you for attention & support!
Best regards, Ralf