We are using the TQMa28 Module from TQ-Systems with an i.MX28 processor and Linux 3.4.14. For communicating with the host and other subdevices we use the two ethernet controller "eth0" and "eth1" both in 100 Mbps/Full-duplex mode . On "eth0" everything works fine, but on "eth1" I always get ethernet frame errors when receiving data. Transmitting data over the same interface does not produce any errors. We can ignore these errors, all data received are complete and correct. But I want to know the reason for these frame errors.
The frame errors are shown in the output of the "ifconfig" command:
RX packets:60 errors:60 dropped:0 overruns:0 frame:60
Further analysis with the "ethtool -S eth1" command shows the following:
rx_packets: 60
rx_crc_errors: 0
IEEE_rx_frame_ok: 0
The last one should be 60. This means that Bit 2 [CR] of the Legacy FEC Receive Buffer Descriptor is set (see Table 26-1 in the [i.MX28 Applications Processor Reference Manual, Rev 1, 2010]). Chapter 26.2.2.1.1.13 says that a Rx CRC or Rx Frame error occured, but the ethtool does not show any CRC error. Therefore I believe in a frame error.
My question: what causes the i.MX28 ENET to set this frame error bit?
Solved! Go to Solution.
Hello,
Perhaps the issue relates to the following :
when use both Ethernet ports of the i.MX28, and when signal SPDIF
is used as GPIO and pulled up, ENET1 does not work.
This is a design limitation - the SPDIF signal is multiplexed with ENET1_RX_ER and
it is always connected to (internal) ENET1_RX_ER. As a result, all ENET1 received
packages are considered as having CRC error.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello,
Perhaps the issue relates to the following :
when use both Ethernet ports of the i.MX28, and when signal SPDIF
is used as GPIO and pulled up, ENET1 does not work.
This is a design limitation - the SPDIF signal is multiplexed with ENET1_RX_ER and
it is always connected to (internal) ENET1_RX_ER. As a result, all ENET1 received
packages are considered as having CRC error.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------