switch 88e6071芯片以RMII PHY mode连接,
[ 1.130232] libphy: mdio_driver_register: mv88e6085
[ 1.159475] davinci_mdio 4a101000.mdio: GPIO lookup for consumer reset
[ 1.159489] davinci_mdio 4a101000.mdio: using device tree for GPIO lookup
[ 1.159520] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]' – status (0)
[ 1.215082] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.221216] davinci_mdio 4a101000.mdio: detected phy mask ffff007f
[ 1.232253] libphy: 4a101000.mdio: probed
[ 1.236425] davinci_mdio 4a101000.mdio: phy[8]: device 4a101000.mdio:08, driver unknown
[ 1.244468] davinci_mdio 4a101000.mdio: phy[9]: device 4a101000.mdio:09, driver unknown
[ 1.252556] davinci_mdio 4a101000.mdio: phy[10]: device 4a101000.mdio:0a, driver unknown
[ 1.260826] davinci_mdio 4a101000.mdio: phy[11]: device 4a101000.mdio:0b, driver unknown
[ 1.268998] davinci_mdio 4a101000.mdio: phy[12]: device 4a101000.mdio:0c, driver unknown
[ 1.277162] davinci_mdio 4a101000.mdio: phy[13]: device 4a101000.mdio:0d, driver unknown
[ 1.285306] davinci_mdio 4a101000.mdio: phy[14]: device 4a101000.mdio:0e, driver unknown
[ 1.293434] davinci_mdio 4a101000.mdio: phy[15]: device 4a101000.mdio:0f, driver unknown
[ 10.285618] Generic PHY 4a101000.mdio:0e: attached PHY driver [Generic PHY] (mii_bus:phy_addr=4a101000.mdio:0e, irq=-1)
[ 10.675569] Generic PHY 4a101000.mdio:0d: attached PHY driver [Generic PHY] (mii_bus:phy_addr=4a101000.mdio:0d, irq=-1)
请问这种情况下,phy驱动起作用了吗?ping不通。在dts文件中用fixed-link也不行,谁能帮忙看一下?谢谢!
Jian Zhou:
看样子驱动是执行了的,Uboot下测试过么?
chao liu15:
回复 Jian Zhou:
你好:
感谢回复!
在uboot默认情况下,网络是不能用的。在uboot menuconfig中有关与ethernet的选项也没选(选上会报错,好像是devicetree那边报的错)。这种情况下需要怎样调试呢?
谢谢!
Steven Liu1:
回复 chao liu15:
uboot下面相对好调试些,因为可以直接用md命令去查看寄存器。主要排定定位的还是三个要素,本身的GMII_SEL这个寄存器的设置,RMII对应的管脚pinmux配置,还有PHY_ID,另外需要提到的一点是GMII_SEL中,RMII的模式,一定要使用外部的晶振作为PHY的晶振输入,不要使用AM335x端的RMII输出clock,所以对应的6、7比特要设置为1。
你可以先通过寄存器访问来查询上面讲述的几点看看有没有设置正确,遇到不正确的地方就可以去跟代码了。
chao liu15:
回复 Steven Liu1:
您好:
因为这是我们硬件那边那些人自己设计的板子,他们并没有在上面设计phy,而是用了一个switch芯片,用两个mac口以Dual RMII PHY mode的模式与am335x连接的。switch芯片也有一些配置才能使用,所以是在内核调试的。
您说的gmii_sel,我在drivers/net/ethernet/ti/cpsw-phy-sel.c中的cpsw_gmii_sel_am3352直接写了writel(0xc5, priv->gmii_sel);,参考am335x-icev2.dts文件,添加了
&phy_sel {rmii-clock-ext;};
感到疑惑的是phy_id,就像图上所示,davinci_mdio会找到7个mac,地址是从8-15,我是以rmii接的那两个port做的地址,在devcietree是以这种形式存在的:
&cpsw_emac0 {phy_id = <&davinci_mdio>, <13>;phy-mode = "rmii";/** fixed-link {speed = <100>;full-duplex;};**/};
&cpsw_emac1 {phy_id = <&davinci_mdio>, <14>;phy-mode = "rmii";/** fixed-link {speed = <100>;full-duplex;};**/};
结果不行。
请问你们做过类似于接这种switch的方案吗?
Jian Zhou:
回复 chao liu15:
目前TI demo板上没有直接连交换芯片的,都是直接连PHY芯片。
switch 88e6071芯片以RMII PHY mode连接,能否把其当成一个PHY看看能不能通,这个在U-boot下就可以测试的。
TI中文支持网



