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,599件の閲覧回数
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,491件の閲覧回数
swanandpurankar
Contributor III

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

元の投稿で解決策を見る

0 件の賞賛
返信
1 返信
1,492件の閲覧回数
swanandpurankar
Contributor III

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

0 件の賞賛
返信