1. 硬件AM3354 ZCZ phy用的是lan8720 线路图如下:
2. 使用的sdk版本是6.0 pin配置如下:
static struct module_pin_mux rgmii1_pin_mux[] = {
{OFFSET(mii1_txen), MODE(1)},
{OFFSET(mii1_rxerr), MODE(1) | RXACTIVE},
{OFFSET(mii1_crs), MODE(1) | RXACTIVE},
{OFFSET(rmii1_refclk), MODE(0) },
{OFFSET(mii1_txd1), MODE(1)},
{OFFSET(mii1_txd0), MODE(1)},
{OFFSET(mii1_rxd1), MODE(1) | RXACTIVE},
{OFFSET(mii1_rxd0), MODE(1) | RXACTIVE},
{OFFSET(mdio_data), MODE(0) | RXACTIVE | PULLUP_EN},
{OFFSET(mdio_clk), MODE(0) | PULLUP_EN},
{-1},
};
3. 在./board/ti/am335x/Board.c 函数board_eth_init中
a. 修改为 writel(0x5, &cdev->miisel);
b. 修改为cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_RMII;
问题: 串口输出phy reset time out.
我跟踪了函数调用发现:
a. 在mdio读取phy_id时, 返回-1.
b. phy的寄存器0(Basic mode control register), 寄存器1(Basic mode status register)的值均为0xffff.

