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.

[参考译文] PROCESSOR-SDK-AM335X:U-boot 中以太网交换机 ping 失败

Guru**** 2925550 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/667371/processor-sdk-am335x-ethernet-switch-ping-fails-in-u-boot

器件型号:PROCESSOR-SDK-AM335X

您好!

我们具有 Micrel KSZ8895的定制板、当前 Ping 失败。

U-Boot# setenv ipaddr 192.168.1.1
U-Boot# ping 192.168.1.10
ksz8895_startup
ksz8895_startup
端口0、速度100、全双工上的链路
使用 cpsw 器件
Ping 失败;主机192.168.1.10未激活

U-Boot# MII 信息
PHY 0x01:OUI = 0x0885、模型= 0x05、版本= 0x00、10baseT、HDX
PHY 0x02:OUI = 0x0885、模型= 0x05、版本= 0x00、10baseT、HDX
PHY 0x03:OUI = 0x0885、模型= 0x05、版本= 0x00、100BaseT、FDX
PHY 0x04:OUI = 0x0885、模型= 0x05、版本= 0x00、10baseT、HDX
PHY 0x05:OUI = 0x0885、模型= 0x05、版本= 0x00、10baseT、HDX
PHY 0x06:OUI = 0x0100、模型= 0x00、版本= 0x04、10baseT、HDX
PHY 0x07:OUI = 0x0180、模型= 0x00、版本= 0x00、10baseT、HDX
PHY 0x0E:OUI = 0x0180、模型= 0x00、版本= 0x00、10baseT、HDX
PHY 0x0F:OUI = 0x0100、模型= 0x00、版本= 0x04、10baseT、HDX
PHY 0x16:OUI = 0x2100、型号= 0x08、版本= 0x00、10baseT、HDX
PHY 0x17:OUI = 0x01C0、模型= 0x00、版本= 0x00、10baseT、HDX
PHY 0x1E:OUI = 0x2200、模型= 0x08、版本= 0x04、10baseT、HDX
PHY 0x1F:OUI = 0x2200、模型= 0x08、版本= 0x04、10baseT、HDX

只有 PHY 0x06能够读取正确的信息

U-Boot# MDIO 读取 cpsw 6 0  
从总线 CPsw 读取
地址6处的 PHY:
0 - 0x95   

0x95是芯片系列 ID。

但我们的硬件设计地址是3、因此我将 phy_addr 修改为3。

静态结构 cpsw_slave_data cpsw_slave[]={

.SLAVE_REG_OFS = 0x208、
slidver_reg_ofs = 0xd80、
phy_addr = 3、
}、

.SLAVE_REG_OFS = 0x308、
slidver_reg_OFS = 0xdc0、
phy_addr = 1、
}、
};

U-Boot# MDIO 列表
CPsw:
3 - Micrel KSZ8895/KSZ8864 <-> CPsw

我们已将 KSZ8895驱动程序移植到 uboot。 UBoot 打印信息如下所示。

U-Boot 2014.10脏(2018年2月26日- 15:20:20)

启用看门狗
I2C:就绪
DRAM:512 MiB
MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
SF:检测到 W25Q64CV、页面大小为256字节、擦除大小为4 KiB、总共8 MIB
***警告- CRC 错误,使用默认环境

NET:PHY_INIT
PHY_INIT
PHY_Micrel_init
PHY_Micrel_init
ksz8895_write_smireg
ksz8895_write_smireg
ksz8895_config
ksz8895_config
CPsw、USB_ether
按任意键停止自动引导:0

我已经定义了 CONFIG_PHY_Micrel、我们使用 RMII 模式。

#define CONFIG_PHY_Micrel

writel (RMII_MODE_ENABLE | RMII_CHIPCKL_ENABLE、&cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
PHY_INTERFIT_MODE_RMII;

我还修改了多路复用器:

静态结构 MODULE_PIN_mux rmii1_PIN_mux[]={
{offset (mii1_txen)、mode (1)}、/* RMII1_TXEN *
{offset (mii1_txd1)、mode (1)}、/* RMII1_TD1 *
{offset (mii1_txd0)、mode (1)}、/* RMII1_TD0 */
{offset (mii1_rxd1)、mode (1)| RXACTIVE}、/* RMII1_RD1 *
{offset (mii1_rxd0)、mode (1)| RXACTIVE}、/* RMII1_RD0 *
{offset (mii1_rxdv)、mode (1)| RXACTIVE}、/* RMII1_RXDV *
{offset (mii1_crs)、mode (1)| RXACTIVE}、/* RMII1_CRS_DV *
{offset (mii1_rxerr)、mode (1)| RXACTIVE}、/* RMII1_RXERR *
{offset (rmii1_REFCLK)、mode (0)| RXACTIVE}、/* RMII1_REFCLK *
{OFFSET (MDIO_DATA)、MODE (0)| RXACTIVE | PULLUP_EN}、//* MDIO_DATA *
{offset (MDIO_clk)、mode (0)| PULLUP_EN}、/* MDIO_CLK *  
{-1}、
};

CONFIG_MODULE_PIN_mux (rmii1_PIN_mux);

感谢您的任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    TI 无法支持与外部以太网交换机的连接、因此我只能提供一般性指导。 第一个是确保按照您的预期方式设置引脚多路复用器。 您是否使用了引脚复用工具? 您应该能够将引脚与控制寄存器引脚相匹配、以确保使用 u-boot 存储器转储工具的模式为预期模式。 下一步是确保开关中的寄存器按预期设置、但我不知道 MII u-boot 工具在这里是否有帮助。 我还建议联系交换机制造商以获得更多帮助。

    此致、
    Schuyler