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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

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

跳至解决方案
1,809 次查看
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

标签 (1)
标记 (1)
0 项奖励
回复
1 解答
1,701 次查看
swanandpurankar
Contributor III

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

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,702 次查看
swanandpurankar
Contributor III

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

0 项奖励
回复