请问一下我在AM335X上使用dual mac模式其中有一个网口为千兆网口,另一端为电脑千兆网卡可以进行ping以及tcp发送数据,但是,tcp进行测速的时候,测出来只有100多200kbyte/s,但是这个网口适配为百兆进行通讯,速度却有5-6mbyte/s, 这是由可能什么原因导致的呢,是我配置少了什么寄存器?百兆的时候通讯是一切正常的,使用千兆的时候抓包看过会有显示[tcp dup ack #1]之类的错误,希望指点一下,谢谢
Jian Zhou:
两种工作模式都是dual mac的模式下测的么?
有没有在单网口的模式下测试过?
lin lin2:
回复 Jian Zhou:
是在dual模式下测的,我驱动中配置了一个网口对应一个DMA通道,不知道是否配置少了寄存器,在这模式下我单独使能网口2,千兆速度只有200kbyte/s但是百兆却有8Mbyte/s,然后我在该模式下,使能两个网口,网口1是正常的,但是网口2却不管千兆百兆,速度都只有200kbyte/s
lin lin2:
回复 Jian Zhou:
感觉像是两个网口一起启用的时候,网口2速度便无法上去,是不是不能够一个网口对应一个dma通道?
Jian Zhou:
回复 lin lin2:
你改过网络驱动的DMA部分?CPSW都是内部有专用的DMA。
lin lin2:
回复 Jian Zhou:
我用的是startwear里面提供的cpsw驱动进行修改,我利用的是cpdma是专用的dma,我看了startwear中驱动都是通过cpdma_channel0进行发送,接收的,因为我这边平台上的限制,我需要一端口对应一个cpdma_channel以便独立区分端口,进行收发数据的处理,一端口对应一个通道这种做法在使用过程中有什么需要注意的么?感觉我独立使用一个端口的时候,百兆下还是比较正常,但是两个网口同时使用的时候,端口2的速度会下降到很慢
lin lin2:
回复 Jian Zhou:
请问一下使能了DUAL MAC MODE 后是不是只能够使用DMA_Channel0进行操作,我看了一下手册上总是说用host进行操作,这个的意思是只能够利用dma——channel0将数据传输到PORT0,再通过描述符中的端口,进行转发?那这样是否不能够实现PORT1对应通道1 PORT2对应通道2了,假如只能够通过dma那这样两个网口的数据都通过这个通道效率上会不会比较低。
user6108403:
回复 lin lin2:
我也遇到同样的问题,请问怎么解决的?
yongqing wang:
回复 user6108403:
phy芯片用的啥