This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDXICE110: MII_RT data path

Part Number: TMDXICE110
Other Parts Discussed in Thread: AMIC110, , AMIC120

I have questions about data path setup in MII_RT of AMIC110 PRU-ICSS. (TRM 4.4.6.2.1 Data Path Configuration)

When using full duplex communication
- Frames received on one port are sent to the other
- AMIC 110 may also transmit data

For this reason, I am trying to switch the following as needed.
- Normally wait in "Auto-forward" to reduce the delay time.
- When sending by yourself "32-byte Double Buffer or Ping-Pong Processing"

However, because the switching timing is bad, the output Ethernet frame is it may be broken and it takes time to adjust.

It could be the switching timing of the above two, but there are cases that Ethernet frame output is corrupted and I'm struggling to adjust it and fix the problem.
To confirm that my approach is correct or not, I have following questions. I'm using TMDXICE110.

1.
Whether MII_RT is receiving Ethernet frames or not, TXCFG register TX_AUTO_SEQUENCE seems to be reflected. Is this correct?

If so, I think it is necessary to avoid the receiving state in order not to break the flowing frame.
As a way to do so, I'm thinking about changing settings after confirming that "RX_SOF is not detected in INTC". Can this be in time ?  
Would it be no data flow to the TX FIFO while changing TX_AUTO_SEQUENCE to disable?

2.
When resetting the receive FIFO by RX_RESET, are both RX L1 FIFO and RX L2 FIFO cleared even if TX_AUTO_SEQUENCE is enable ?

3.
If you change TX_AUTO_SEQUENCE from enable to disable, I do not think I can't find how much data is in TX L1 FIFO. Is this correct?

4.
When transmitting, I'm using CRC32 calculation function of MII_RT (cmdR31 [TX_CRC_HIGH + TX_CRC_LOW + TX_EOF]).
Before switching TX_AUTO_SEQUENCE from disable to enable, do I have to wait for several clocks or until the TX L1 FIFO is empty?


  • Hi,

    We are looking into your questions and will follow-up in the next 2 days.

    Regards,

    Melissa

  • Hi Melissa,


    Thanks for your prompt reply.
    I appreciate your cooperation.

    Regards,

  • Hi, 

    1. I don’t follow your question. Can you re-phrase or provide more information?
    2. Yes. Both RX FIFOs are cleared, if RX_L2_ENABLE = 1.
    3. AMIC110 doesn’t have visibility into the FIFO levels. However, this feature was added in subsequent devices starting with AM437x and AMIC120—see TXFLV0 and TXFLV1 registers.
    4. The TX_AUTO_SEQUENCE state should only be updated when the port is disabled –or– during the interpacket gap and after the TX_EOF event (since when this asserts the FIFO will be empty). In other words, it should only be updated when there are no active/new RX content and TX is done/empty.  

    Regards,

    Melissa

  • Hi Melissa,

    1.
    What I'd like to know is, whether it can be determined by the INTC RX_SOF event that there are no new frames.

    The steps I'm thinking are:
      Read the INTC SRSR1 register : 3 cycles (lbco)
      Check that RX_SOF is not included : 1 cycle (qbbc)
      Change TXCFG TX_AUTO_SEQUENCE : 1 cycle (?) (sbco)

    I'm concerned whether it works as expected, at when a new frame arrives during this operation.

    2, 3, I get it.

    4.
    I understand.
    But, in the TRM, I could not find a way to determine if the TX FIFO was done/empty.
    Does the AMIC110's MII_RT have the feature to indicate it ?

    Regards,

  • Hello,

    Were you able to move forward or still wait for answers? Regarding #4 FIFO empty status, please refer to previous answer 3) AMIC110 doesn’t have visibility into the FIFO levels.

    Regards,

    Garrett

  • Hello,

    Thanks for the support.

    After that I created a test code.
    It works as expected.

    Regards,