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

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

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

Jump to solution
969 Views
raymondhaas
Contributor I

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

Labels (1)
Tags (1)
0 Kudos
1 Solution
861 Views
swanandpurankar
Contributor III

You can control endienness through SCFG_ETSECDMAMCR register. You can try changing this register and check!

View solution in original post

0 Kudos
1 Reply
862 Views
swanandpurankar
Contributor III

You can control endienness through SCFG_ETSECDMAMCR register. You can try changing this register and check!

0 Kudos