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和模式选择寄存器外,还需要修改其它什么地方吗?
问题较急,盼回复,谢谢!