OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 306|回复: 6

[XILINX] MPSoc-P5B,EMIO方式网口不通

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2025-10-29
在线时间
3 小时
发表于 2026-6-29 12:16:12 | 显示全部楼层 |阅读模式
1金钱
使用的是2022.2版本的vivado。block design里面无论是教程里的gmii to rgmii IP核还是Xilinx的gmii to rgmii IP核都试了。gem3是MIO,gem0是EMIO,uboot启动阶段报错是一样的:
  1. <div>In:    serial</div><div>Out:   serial</div><div>Err:   serial</div><div>Bootmode: SD_MODE1</div><div>Reset reason:<span style="white-space:pre">        </span>EXTERNAL </div><div>Net:   FEC: can't find phy-handle</div><div>xilinxgmiitorgmii_config, No external phy device found</div><div>FEC: can't find phy-handle</div><div>
  2. </div><div>ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 7, interface rgmii-id</div><div>eth1: ethernet@ff0e0000</div><div>scanning bus for devices...</div>
复制代码



正常进入系统后报错:
  1. xgmiitorgmii ff0b0000.ethernet-ffffffff:08: Couldn't find phydev
复制代码




使用Xilinx自带的IP核时,petxlinux2022.2设备树如下:
system-user.dtsi:
  1. <div>&gem3 {</div><div><span style="white-space:pre">        </span>local-mac-address = [00 0a 35 00 8b 87];</div><div>
  2. </div><div><span style="white-space:pre">        </span>phy-handle = <&ethernet_phy>;</div><div><span style="white-space:pre">        </span>ethernet_phy: ethernet-phy@7 {</div><div><span style="white-space:pre">                </span>reg = <0x7>;</div><div><span style="white-space:pre">        </span>};</div><div>};</div><div>
  3. </div><div>&gem0 {</div><div><span style="white-space:pre">        </span>local-mac-address = [00 0a 35 00 c0 13];</div><div>        </div><div><span style="white-space:pre">        </span>phy1: phy1@4 {<span style="white-space:pre">        </span></div><div><span style="white-space:pre">                </span>reg = <0x4>;</div><div><span style="white-space:pre">        </span>};</div><div>};</div>
复制代码



自动生成的pcw.dtsi:
  1. <div>&gem0 {</div><div><span style="white-space:pre">        </span>phy-handle = <&phy1>;</div><div><span style="white-space:pre">        </span>phy-mode = "gmii";</div><div><span style="white-space:pre">        </span>status = "okay";</div><div><span style="white-space:pre">        </span>xlnx,ptp-enet-clock = <0x0>;</div><div><span style="white-space:pre">        </span>psu_ethernet_0_mdio: mdio {</div><div><span style="white-space:pre">                </span>#address-cells = <1>;</div><div><span style="white-space:pre">                </span>#size-cells = <0>;</div><div><span style="white-space:pre">                </span>gmii_to_rgmii_0: gmii_to_rgmii_0@8 {</div><div><span style="white-space:pre">                        </span>compatible = "xlnx,gmii-to-rgmii-1.0";</div><div><span style="white-space:pre">                        </span>phy-handle = <&phy1>;</div><div><span style="white-space:pre">                        </span>reg = <8>;</div><div><span style="white-space:pre">                </span>};</div><div><span style="white-space:pre">        </span>};</div><div>};</div>
复制代码





最佳答案

查看完整内容[请看2#楼]

你看错了吧,我看教程里说的是eth0是PL,eth1是PS啊
回复

使用道具 举报

4

主题

2195

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6328
金钱
6328
注册时间
2018-10-21
在线时间
1870 小时
发表于 2026-6-29 12:16:13 | 显示全部楼层
大巧不工lz 发表于 2026-7-2 09:16
后来用教程使用petalinux2020.2,使用教程提供的xsa文件,按照第六章Petalinux 设计流程实战章节编译好了 ...

你看错了吧,我看教程里说的是eth0是PL,eth1是PS啊
QQ20260702-101302.png

回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2025-10-29
在线时间
3 小时
 楼主| 发表于 2026-6-29 12:20:56 | 显示全部楼层
第一次发帖,格式还是乱了,附上不乱的:
In:    serial
Out:   serial
Err:   serial
Bootmode: SD_MODE1
Reset reason:        EXTERNAL
Net:   FEC: can't find phy-handle
xilinxgmiitorgmii_config, No external phy device found
FEC: can't find phy-handle

ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 7, interface rgmii-id
eth1: ethernet@ff0e0000
scanning bus for devices...

正常进入系统后报错:
xgmiitorgmii ff0b0000.ethernet-ffffffff:08: Couldn't find phydev

system-user.dtsi:
&gem3 {
        local-mac-address = [00 0a 35 00 8b 87];

        phy-handle = <&ethernet_phy>;
        ethernet_phy: ethernet-phy@7 {
                reg = <0x7>;
        };
};

&gem0 {
        local-mac-address = [00 0a 35 00 c0 13];
       
        phy1: phy1@4 {       
                reg = <0x4>;
        };
};
自动生成的pcw.dtsi:
&gem0 {
        phy-handle = <&phy1>;
        phy-mode = "gmii";
        status = "okay";
        xlnx,ptp-enet-clock = <0x0>;
        psu_ethernet_0_mdio: mdio {
                #address-cells = <1>;
                #size-cells = <0>;
                gmii_to_rgmii_0: gmii_to_rgmii_0@8 {
                        compatible = "xlnx,gmii-to-rgmii-1.0";
                        phy-handle = <&phy1>;
                        reg = <8>;
                };
        };
};
回复

使用道具 举报

4

主题

2195

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6328
金钱
6328
注册时间
2018-10-21
在线时间
1870 小时
发表于 6 天前 | 显示全部楼层
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2025-10-29
在线时间
3 小时
 楼主| 发表于 5 天前 | 显示全部楼层
QinQZ 发表于 2026-7-1 09:15
可以参考下出厂程序,对比差异

后来用教程使用petalinux2020.2,使用教程提供的xsa文件,按照第六章Petalinux 设计流程实战章节编译好了板载Linux系统,也成功运行了。但是遇到了个小问题:
教程里说eth0是PS_ETH,eth1是PL_ETH。但是在实际使用上,eth1是丝印PS_ETH的RJ45网口,eth0才是PL_ETH。这是使用ifconfig eth0/eth1 down/up分别测试得到的结论,使用出厂自带的emmc系统也是这个现象。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2025-10-29
在线时间
3 小时
 楼主| 发表于 5 天前 | 显示全部楼层
QinQZ 发表于 2026-7-1 09:15
可以参考下出厂程序,对比差异

还有个问题:
使用根据教程编译好的系统,再用ifconfig eth0 192.168.32.101设置eth0静态IP(eth1是down掉的),同网段主机连接此网口后,主机无法ping通。但是出厂自带的emmc系统这么操作却可以ping通;而eth1网口这样操作,无论是编译出来的系统,还是emmc系统都可以ping。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2025-10-29
在线时间
3 小时
 楼主| 发表于 5 天前 | 显示全部楼层
QinQZ 发表于 2026-7-2 10:13
你看错了吧,我看教程里说的是eth0是PL,eth1是PS啊

嗷嗷,我看的是第四十一章。但自己编译的系统,eth0设置了静态IP还是Ping不通 Snipaste_2026-07-02_19-08-18.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-7-7 07:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表