您好!
我们正在开发基于 AM335x 入门套件的定制板、该套件配备两个具有物理器件 DP83822的以太网端口。
与以太网配置相关的 DTS 文件部分如下:
cpsw_default:cpsw_default{
pinctrl-single、pins =<
/*从属设备1 */
AM33XX_IOPAD (0x90c、PIN_INPUT | MUX_MODE1)/*(H17) gmii1_crs.rmii1_crs_dv *
AM33XX_IOPAD (0x910、PIN_INPUT | MUX_MODE1)/*(J15) gmii1_rxer.rmii1_rxer *
AM33XX_IOPAD (0x914、PIN_OUTPUT | MUX_MODE1)/*(J16) gmii1_txen.rmii1_txen *
AM33XX_IOPAD (0x928、PIN_OUTPUT | MUX_MODE1)/*(K17) gmii1_txd0.rmii1_txd0 *
AM33XX_IOPAD (0x924、PIN_OUTPUT | MUX_MODE1)/*(K16) gmii1_txd1.rmii1_txd1 *
AM33XX_IOPAD (0x940、PIN_INPUT | MUX_MODE1)/*(M16) gmii1_rxd0.rmii1_rxd0 */
AM33XX_IOPAD (0x93c、PIN_INPUT | MUX_MODE1)/*(L15) gmii1_rxd1.rmii1_rxd1 *
AM33XX_IOPAD (0x944、PIN_INPUT | MUX_MODE0)/*(H18) rmii1_REFCLK/rmii1_REFCLK *
/*从机2 */
AM33XX_IOPAD (0x864、PIN_INPUT | MUX_MODE3)/*(U16) GPMC_A9.rmii2_crs_dv *
AM33XX_IOPAD (0x874、PIN_INPUT | MUX_MODE3)/*(U17) GPMC_WPN.rmii2_rxer *
AM33XX_IOPAD (0x840、PIN_OUTPUT | MUX_MODE3)/*(R13) GPMC_a0.rmii2_txen *
AM33XX_IOPAD (0x854、PIN_OUTPUT | MUX_MODE3)/*(V15) GPMC_A5.rmii2_txd0 *
AM33XX_IOPAD (0x850、PIN_OUTPUT | MUX_MODE3)/*(R14) GPMC_A4.rmii2_txd1 */
AM33XX_IOPAD (0x86c、PIN_INPUT | MUX_MODE3)/*(V17) GPMC_A11.rmii2_rxd0 *
AM33XX_IOPAD (0x868、PIN_INPUT | MUX_MODE3)/*(T16) GPMC_A10.rmii2_rxd1 *
AM33XX_IOPAD (0x908、PIN_INPUT | MUX_MODE1)/*(H16) gmii1_col.rmii2_REFCLK *
>;
};
DaVinci_MDIO_DEFAULT:DaVinci_MDIO_DEFAULT{
pinctrl-single、pins =<
/* MDIO */
AM33XX_IOPAD (0x948、PIN_INPUT | MUX_MODE0) /*(M17) MDIO_DATA.MDIO_DATA *
AM33XX_IOPAD (0x94c、PIN_OUTPUT | MUX_MODE0)/*(M18) MDIO_clk.MDIO_clk *
>;
};
…
Mac{(&M)
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&cpsw_default>;
pinctrl-1 =<&cpsw_sleep>;
DUAL_EMAC =<1>;
状态="正常";
};
DaVinci_MDIO{
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&Davinc_MDIO_default>;
pinctrl-1 =<&Davinc_MDIO_SLEEP>;
状态="正常";
RESET-GPIO =<&GPIO1 18 GPIO_ACTIVE_LOW>;
RESET-DELAY-us =<2>; /* PHY 数据表中的状态最小值为1uS */
ethphy0:以太网 phy@1{
reg =<1>;
};
ethphy1:以太网 phy@2{
reg =<2>;
};
};
cpsw_emac0{&cpsw_emac0}
PHY-Handle =<ðphy0>;
PHY-MODE ="RMII";
DUAL_EMAC_res_vlan =<1>;
};
cpsw_emac1{&cpsw_emac1}
PHY-Handle =<ðphy1>;
PHY-MODE ="RMII";
DUAL_EMAC_res_vlan =<2>;
};
phy_SEL{&
RMII-时钟-外部;
};
第一个端口(eth0)工作正常(DHCP 在该端口上也工作)、而第二个端口(eth1)不工作。
我们与网络监听器一起检查了是否允许再发送部件(对于 eth1)(在 ping 命令期间记录了 ARP 数据包请求和响应)、物理级别(RMII_rxd0和 RMII_rxd1)似乎正常(使用示波器进行检查)、因为我们看到数据在流动。 不管怎样、网络通信仍然不工作。
我们还验证了接收器件中的所有引脚连接是否正常:我们将引脚配置为输出 GPIO、并检查物理上的输出电平是否符合预期。
我们检查了两个端口的 DP83822寄存器配置、它们是正确的、两个端口的配置是相同的。
该问题已在不同的电路板上发现和调试、因此我们排除了一个故障单元。
以下是启动时的一些内核日志:
(笑声)
[1.007968] libphy:固定 MDIO 总线:探测
[1.078735] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6、总线频率1000000
[1.086779] libphy: 4a101000.mdio:探测
[1.093311] DaVinci_MDIO 4a101000.MDIO:PHY[1]:器件4a101000.MDIO:01、驱动器 TI DP83822 10/100Mbps PHY
[1.103566] DaVinci_MDIO 4a101000.MDIO:PHY[2]:器件4a101000.MDIO:02、驱动器 TI DP83822 10/100Mbps PHY
[1.114605] cpsw 4a100000.以太网:检测到的 MACID = 74:E1:82:8b:63:97
[1.121777] cpsw 4a100000.ethernet:初始化 cpsw ale 版本1.4
[1.128440] cpsw 4a100000.以太网:ALE 表大小1024
[1.134873] cpsw 4a100000.以太网:cpsw:检测到的 MACID = 74:E1:82:8b:63:99
(笑声)
[5.939999] net eth0:正在初始化 cpsw 版本1.12 (0)
[6.043537] TI DP83822 10/100Mbps PHY 4a101000.MDIO:01:连接的 PHY 驱动程序[TI DP83822 10/100Mbps PHY](MII_BUS:phy_addr=4a101000.MDIO:01、IRQ=POLL)
(笑声)
[15.439020] net eth1:正在初始化 cpsw 版本1.12 (0)
[ 15.563550] TI DP83822 10/100Mbps PHY 4a101000.MDIO:02:连接的 PHY 驱动程序[TI DP83822 10/100Mbps PHY](MII_BUS:phy_addr=4a101000.MDIO:02、IRQ=POLL)
(笑声)
将电缆连接到 eth1链路正确连接:
[18.730744] cpsw 4a100000.以太网 eth1:链路速率高达- 100Mbps/全速率-流控 Rx/TX
我们已将 eth1端口设置为静态 IP 配置并对我的 PC 运行 ping 命令、ifconfig 命令返回以下内容:
#ifconfig
eth0 Link encap:ethernet HWaddr 74:E1:82:8B:63:97
上广播多播 MTU:1500 公制:1
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:0错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)
中断:43
ETH1 链路连接:以太网 HWaddr 74:E1:82:8B:63:99
iNet addr:172.20.1.29 Bcast:0.0.0.0 掩码:255.255.0.0
运行多播 MTU:1500 公制:1的上广播
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:9错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:576 (576.0 B)
LO 链路环接:本地环回
iNet addr:127.0.0.1 掩码:255.0.0.0
正在运行 MTU:65536 公制:1的上环回
RX 数据包:11错误:0丢弃:0超限:0帧:0
TX 数据包:11错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:1232 (1.2KiB) TX 字节:1232 (1.2KiB)
第二个端口的 ethtool 输出:
# ethtool eth1.
ETH1的设置:
支持的端口:[ TP MII]
支持的链路模式: 10BaseT/Half 10baseT/Full
100BaseT /半个100BaseT /全双工
支持的暂停帧使用:仅对称接收
支持自动协商:是
通告的链路模式: 10BaseT /半10baseT/全
100BaseT /半个100BaseT /全双工
广播的暂停帧使用:否
广播自协商:是
链接伙伴通告的链接模式: 10BaseT /半10baseT/全
100BaseT /半个100BaseT /全双工
链接伙伴通告的暂停帧使用:对称仅接收
连接方通告的自动协商:是
速度:100Mb/s
双工:全双工
端口:MII
PHYAD:2.
收发器:内部
自协商:开
支持唤醒:D
唤醒:D
当前消息级别:0x00000000 (0)
检测到链接:是
您能帮我们解决这个问题吗?
谢谢。