我的板子是AM335X的SMI上挂了一个交换芯片,交换芯片上再接几个PHY芯片。目前手头上SDK提供的uboot代码是通过CPSW来操作PHY的,我将交换芯片当成PHY由CPSW来操作,但在这套体系下无法操作真正的PHY,因为网络驱动的相关代码以及mdio读写函数的相关参数,都是基于最初设置的结构体cpsw_platform_data,而此结构体中的数据又是我将交换芯片当成PHY来设置的,所以就存在一个矛盾。
请教一下,我这种情况是否得废除CPSW自己重写整个网络驱动?或者有没有类似我这种情况的代码可以参考?
谢谢!
Yaoming Qin:
首先我们的确没用现成的代码。
我觉得不能把交换芯片作为phy配置, 我觉得没用必要重写全部的代码,直接在现有的网口驱动之上进行编程
Gary Wu:
你好!你可以通过使用CPSW来进行交换芯片的配置,PHY的驱动在uboot和linux中为general driver
关于CPSW,可以参考如下链接
http://processors.wiki.ti.com/index.php/TI81XX_PSP_ETHERNET_Switch_User_Guide
Mr Sun:
回复 Gary Wu:
现在这套代码的流程是CPSW下初始化多个PHY,然后由CPSW直接操作各个PHY。我是将交换芯片当成PHY来由CPSW操作,可问题是CPSW初始化时只初始化一个设备即交换芯片,当操作PHY时又希望CPSW能认为系统中有多个设备,也就是说希望当时初始化时是初始化了多个设备,这就与之前只初始化一个交换芯片产生矛盾了,因为此时CPSW中只有一个设备。
不知我这样表述你是否理解。
你给的那个网址我看了,感觉跟我的情况不同啊。
Gary Wu:
回复 Mr Sun:
你好!请问你的问题解决没?
可以参考如下链接http://e2e.ti.com/support/arm/sitara_arm/f/791/t/264745.aspx
Some Ethernet switches do provide a PHY-like interface on one or more ports which would allow you to connect the AM335x MAC directly to the switch。
所以先确认你的swithc是否属于上述类型
Mr Sun:
回复 Gary Wu:
Gary Wu,你的回复我如果没理解错的话,是说不能MAC直连,除非是具有类似PHY接口的交换芯片?
“类似PHY接口”怎么理解,我现在把交换芯片设置成“PHY mode”算是“类似PHY接口”吗?还是说需要能够能够正常访问PHY寄存器也就是说交换芯片自带一个PHY?
我的交换芯片是不带PHY的。
Yaoming Qin:
回复 Mr Sun:
这里的意思是 swtich芯片需要提供一个 ethernet PHY的接口,这样AM3355x的emac才可以与其通信, AM335x不支持与EMAC接口的直接通信