2392963_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2392963_zh-CN

2392963_zh-CN

Imx6ull KSZ8041NL 以太网问题

你好呀 ,

为了在我们的潜在项目中利用双以太网,我们将两个以太网PHY芯片连接到了Imx6ull处理器上。

其中一块 PHY 芯片是 KSZ8081,另一块 PHY 芯片是 KSZ8041,以下是我们的 DTS 配置:

&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1>;
phy-mode = "rmii";
phy-handle = <&ethphy0>;
phy-reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
phy-reset-duration = <26>;
phy-reset-post-delay=<20>;
phy-supply = <&reg_peri_3v3>;
状态 = "正常";

};

&fec2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet2>;
phy-mode = "rmii";
phy-handle = <&ethphy1>;
phy-reset-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
//phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
phy-reset-duration = <26>;
phy-reset-post-delay=<20>;
phy-supply = <&reg_peri_3v3>;
状态 = "正常";

mdio {
#address-cells = <1>;
#size-cells = <0>;

ethphy0:以太网物理层@1 {
reg = <1>;
micrel,led-mode = <1>;
clocks = <&clks IMX6UL_CLK_ENET_REF>;
clock-names = "rmii-ref";
};

ethphy1:以太网物理层@3 {
reg = <3>;
micrel,led-mode = <1>;
clocks = <&clks IMX6UL_CLK_ENET2_REF>;
clock-names = "rmii-ref";
};
};
};

pinctrl_enet1:enet1grp {
fsl,pins = <
MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
>;
};

pinctrl_enet2:enet2grp {
fsl,pins = <
MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
>;
};


内核日志中检测到了两个以太网物理层,而且当我们连接以太网电缆时,两个设备上也都能检测到链路。

但是,连接到 KSZ8081 phy 的以太网上可以接收到 IP 地址,而连接到 KSZ8084NL 的以太网上却无法分配 IP 地址。

在KSZ8041NL以太网接口(eth0)上观察到接收错误,以下是日志:

root@sls-imx6ull14x14evk:~# ifconfig
eth0 链路封装:以太网硬件地址 BA:9C:69:1F:76:3A
上行广播组播 MTU:1500 指标:1
接收数据包:0 个错误:1065 个丢弃:0 个溢出:0 个帧:1065 个
发送数据包:65,错误:0,丢弃:0,溢出:0,载波:0
碰撞次数:0 txqueuelen:1000
接收字节数:0 (0.0 B) 发送字节数:12024 (11.7 KiB)


eth1 链路封装:以太网 硬件地址 42:19:11:7F:5E:89
inet addr:10.20.0.184广播地址:10.20.1.255掩码:255.255.254.0
inet6 地址:fe80::8248:9837:9647:2a00/64 范围:链路
广播运行中 多播 MTU:1500 指标:1
接收数据包:18 个,错误:0 个,丢弃:0 个,溢出:0 个,帧:0 个
发送数据包:23 个,错误:0 个,丢弃:0 个,溢出:0 个,载波:0 个
碰撞次数:0 txqueuelen:1000
RX 字节:2494 (2.4 KiB) TX 字节:3162 (3.0 KiB)


lo Link encap:本地环回
inet addr:127.0.0.1掩码:255.0.0.0
inet6 地址: ::1/128 范围:主机
环路已启动,运行中,MTU:65536,指标:1
接收数据包:17 个,错误:0 个,丢弃:0 个,溢出:0 个,帧:0 个
发送数据包:17 个,错误:0 个,丢弃:0 个,溢出:0 个,载波:0 个
碰撞次数:0 txqueuelen:1000
RX 字节:2011 (1.9 KiB) TX 字节:2011 (1.9 KiB)

 

root@sls-imx6ull14x14evk:~# ethtool eth0
eth0 的设置:
支持的端口:[ TP MII ]
支持的链路模式:10baseT/半高、10baseT/全高
100baseT/半成品 100baseT/全成品
支持的暂停帧使用方式:对称
支持自动协商:是
支持的FEC模式:未报告
宣传的连接模式:10baseT/半成品 10baseT/全成品
100baseT/半成品 100baseT/全成品
广告中暂停帧的使用:对称
广告中提及的自动协商:是
已公布的FEC模式:未报告
链路伙伴宣传的链路模式:10baseT/半成品 10baseT/全成品
100baseT/半成品 100baseT/全成品
链接伙伴宣传的暂停帧使用情况:否
链接合作伙伴已宣传自动协商:是
链接伙伴宣传的FEC模式:未报告
速度:100Mb/s
复式:全套
自动协商:开启
端口:双绞线
PHYAD:3
收发器:外部
MDI-X:未知
支持唤醒:g
唤醒:d
检测到连接:是

 

我们还检查了时钟,它是 50MHz 的,生成正常,并且也输入到 KSZ8041NL 物理层。

简而言之,使用 KSZ8081 的 1 个以太网接口工作正常,但使用 KSZ8041NL 的 2 个以太网接口无法工作。

请给我们提供解决方案。我们还附上了以太网PHY硬件的截图供您参考。


image (1).pngimage (2).jpg




i.MX6 全部i.MX6UL
Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: