AnsweredAssumed Answered

Using the eTSEC on a LS1020A processor, I notice that my buffer descriptors need to be little endian.

Question asked by Raymond Haas on Jun 27, 2017
Latest reply on Jun 27, 2017 by Swanand Purankar

I am trying to get the eTSEC running on a LS1020A processor.  I am using u-boot as a reference along with the LS1020A user manual.  In u-boot the buffer descriptors are handled as big-endian which makes sense since the eTSEC is big-endian. However when I mimic u-boot, I receive and transmit nothing.  In fact I see my RMON counter called RDRP increase.  The IEVENTG0 register reports this is due to a busy condition.  So out of desperation, I removed the 16 bit endian swap. I started to receive and transmit. In addition, I needed to remove the 32 bit endian swap for the bufPtr in the buffer descriptors. When I look at the data being received by the eTSEC, the data looks 64 bit endian swapped. Very strange.

I looked at the u-boot code and the user manual.  I cannot find any initialization that would fix this.  Does anyone have any suggestions.

 

Thanks

Ray Haas

Outcomes