TI工程师,您好:
我们使用am3352 CPU做了一个双网口配置,结构如下:
3352的port1通过RMII接口接到了phy(IP101GR)上,port2通过mii接到了switch(KSZ8873)上。
硬件回来后测试发现:port2可以正常通信(通过switch引出来的两个网口均正常),但是port1网口不通。
我做了一个测试:以前的一个硬件(只有一个网口,335x的port1通过mii接口接到外部phy)网口工作正常,我在这个内核基础上仅仅修改了pinMux和mac模式选择寄存器的值;然后在最新的硬件上测试,发现网口还是不通。修改内容如下:
1. pinmux:
原硬件mii接口pinmux:
MUX_VAL(CONTROL_PADCONF_MII1_COL, (IEN | PD | MODE0 )) /* mii1-col */
MUX_VAL(CONTROL_PADCONF_MII1_CRS, (IEN | PD | MODE0 )) /* mii1_crs */
MUX_VAL(CONTROL_PADCONF_MII1_RX_ER, (IEN | PD | MODE0 )) /* mii1_rx_er */
MUX_VAL(CONTROL_PADCONF_MII1_TX_EN, (IDIS | PD | MODE0 )) /* mii1_tx_en */
MUX_VAL(CONTROL_PADCONF_MII1_RX_DV, (IEN | PD | MODE0 )) /* mii1_rx_dv */
MUX_VAL(CONTROL_PADCONF_MII1_TXD3, (IDIS | PD | MODE0 )) /* mii1_td3 */
MUX_VAL(CONTROL_PADCONF_MII1_TXD2, (IDIS | PD | MODE0 )) /* mii1_td2 */
MUX_VAL(CONTROL_PADCONF_MII1_TXD1, (IDIS | PD | MODE0 )) /* mii1_td1 */
MUX_VAL(CONTROL_PADCONF_MII1_TXD0, (IDIS | PD | MODE0 )) /* mii1_td0 */
MUX_VAL(CONTROL_PADCONF_MII1_TX_CLK, (IEN | PD | MODE0 )) /* mii1_tclk */
MUX_VAL(CONTROL_PADCONF_MII1_RX_CLK, (IEN | PD | MODE0 )) /* mii1_rclk */
MUX_VAL(CONTROL_PADCONF_MII1_RXD3, (IEN | PD | MODE0 )) /* mii1_rd3 */
MUX_VAL(CONTROL_PADCONF_MII1_RXD2, (IEN | PD | MODE0 )) /* mii1_rd2 */
MUX_VAL(CONTROL_PADCONF_MII1_RXD1, (IEN | PD | MODE0 )) /* mii1_rd1 */
MUX_VAL(CONTROL_PADCONF_MII1_RXD0, (IEN | PD | MODE0 )) /* mii1_rd0 */
MUX_VAL(CONTROL_PADCONF_RMII1_REF_CLK, (IEN | PU | MODE7 )) /* 7-gpio0[29],ETH_IRQ */
修改为rmii接口:
MUX_VAL(CONTROL_PADCONF_MII1_CRS, (IEN | MODE1 )) /* mii1_crs, 1-RMII1_CRS_DV */
MUX_VAL(CONTROL_PADCONF_MII1_RX_ER, (IEN | MODE1 )) /* mii1_rx_er, 1-RMII1_RXERR */
MUX_VAL(CONTROL_PADCONF_MII1_TX_EN, (IDIS | MODE1 )) /* mii1_tx_en, 1-RMII1_TXEN */
MUX_VAL(CONTROL_PADCONF_MII1_TXD1, (IDIS | MODE1 )) /* mii1_td1, 1-RMII1_TXD1 */
MUX_VAL(CONTROL_PADCONF_MII1_TXD0, (IDIS | MODE1 )) /* mii1_td0, 1-RMII1_TXD0 */
MUX_VAL(CONTROL_PADCONF_MII1_RXD1, (IEN | MODE1 )) /* mii1_rd1, 1-RMII1_RXD1 */
MUX_VAL(CONTROL_PADCONF_MII1_RXD0, (IEN | MODE1 )) /* mii1_rd0, 1-rmii1_rxd0 */
MUX_VAL(CONTROL_PADCONF_RMII1_REF_CLK, (IEN | MODE0 )) /*rmii1_refclk, 7-gpio0[29] */
2.修改MAC模式选择寄存器值:
将0x44e10650寄存器值由(MII_MODE_ENABLE – 0x0 )改为((GMII1_SEL_RMII | RMII1_IO_CLK_EN) – 0x1 | (BIT6)), 值为0x00000041。
请注意:我们rmii接口的50MHz的ref clokc是由外部的有源晶振供给的。
想请教一下:
除了pinmux和模式选择寄存器外,还需要修改其它什么地方吗?
问题较急,盼回复,谢谢!
yu yan3:
我这边正好是反的!Port1 同,port2不通!
可以共享下软件测试一下吗?
也是用KSZ8873
Huijie Yang:
回复 yu yan3:
1. 我的是port1接IP101——不通; port2接KSZ8873——通。 你的也是这样的配置?
2. 我跑的系统是vxWorks,你跑的什么系统啊?
yu yan3:
回复 Huijie Yang:
RMII+MII
linux啊!
Huijie Yang:
回复 yu yan3:
那没法共享了
你的是mii不通还是rmii不通?
yu yan3:
回复 Huijie Yang:
mii不通!
yu yan3:
回复 Huijie Yang:
请教下通过MII和KSZ8873通信前需要对8873配置谢什么吗?
KSZ8873部分原理图可以分享下吗?
感谢!
DachuanLiu:
回复 yu yan3:
8873在外部上下拉配置正确的前提下上电即可当做普通switch使用,不用配置
原理图不能外发,参考原厂的开发板电路即可
呼叫steven~~~
yu yan3:
回复 DachuanLiu:
请教下接到KSZ8873的28脚用于配置PHY或MAC模式的引脚有接上拉电阻吗?
非常感谢!