This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

linux下LAN8710 网口不通



硬件 am335x    lan8710   采用RMII    rmii1_refclk由外部50MHz晶振提供  PHY_ID的三个管脚都拉低为 000

uboot下网口已经调通了。

但是linux下还没有通,找不到原因在哪里

我的配置如下:

/* Module pin mux for rmii1 */
static struct pinmux_config rmii1_pin_mux[] = {
{"mii1_crs.rmii1_crs_dv", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"mii1_txen.mii1_txen", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"mii1_txd1.mii1_txd1", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"mii1_txd0.mii1_txd0", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
{"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
{"rmii1_refclk.rmii1_refclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
{"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
{"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
{NULL, 0},
};

__raw_writel(0xf5,AM33XX_CTRL_REGADDR(MAC_MII_SEL));

static struct cpsw_slave_data am33xx_cpsw_slaves[] = {
{
.slave_reg_ofs = 0x208,
.sliver_reg_ofs = 0xd80,
.phy_id = "0:00",
},
{
.slave_reg_ofs = 0x308,
.sliver_reg_ofs = 0xdc0,
.phy_id = "0:01",
},
};

除了上面这3个地方要注意的  是否还有其他地方需要修改????

linux在初始化的过程中,执行到函数davinci_mdio_probe时,MDIOALIVE始终读到的值为0,  所以在get_phy_id中读MII_PHYSID1、MII_PHYSID2也会出错。

问题出在哪里?一直找不到?

在uboot下,MDIOALIVE读到的值为1