嵌入式爱好者

查看: 12861|回复: 11

[OpenWrt] 单网口下openwrt网络无法正确收发

[复制链接]

9

主题

32

帖子

78

积分

LS1012A通行证

扫一扫,手机访问本帖
发表于 2021-10-21 20:51:39 | 显示全部楼层 |阅读模式
本帖最后由 zhongtao1701 于 2021-10-27 21:45 编辑

为了验证单网口ETH1(RGMII)的方案,在开发板进行试验,去掉ETH0(SGMII)的复位电阻R21,使得芯片AR8031处于复位状态,
运行出厂的默认openwrt版本,
uboot的提示信息

SCSI:  Net:   PFE class pe firmware
PFE tmu pe firmware
pfe_configure_serdes 0
Could not get PHY for PFE_MDIO: addr 1
phy_connect failed
No ethernet found.

openwrt
[    8.127382] pe_load_ddr_section: load address(3fb0000) and elf file address(ffff00000948b000) rcvd
[    8.173327] PFE binary version: pfe_ls1012a_slowpath_03
[    8.183188] pfe_load_elf
[    8.187069] pfe_ctrl_init
[    8.189810] pfe_ctrl_init finished
[    8.193468] pfe_eth_init
[    8.196287] pfe_eth_mdio_init
[    8.207094] libphy: ls1012a MDIO Bus: probed
[    8.218904] pfe_phy_init inte**ce 3
[    8.222829] libphy: PHY ls1012a-0:01 not found
[    8.227606] pfe 4000000.pfe eth0: phy_connect() failed
[    8.236103] pfe 4000000.pfe eth0: pfe_eth_init_one: pfe_phy_init() failed
[    8.290673] pfe_ctrl_exit
[    8.293306] pfe_firmware_exit
[    8.298353] pfe_hif_exit
[    8.314636] pfe_hif_release_buffers
[    8.318640] pfe_hif_free_descr
[    8.321975] pfe_hif_lib_exit
[    8.325241] pfe_hw_exit

root@OpenWrt:/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:40 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
可看到如果SGMII不工作,两个网口都无法工作

按 知识库 > LS1012A/LS1043A/LS1046A系列产品 文档编号: 501,
只保留RGMII单网口的修改方法,修改dts和pfe_eth.c,更新版本
现象如下

uboot的提示信息,(addr 1 是SGMII口, 应该无法启动,现象是对的)

SCSI:  Net:   PFE class pe firmware
PFE tmu pe firmware
pfe_configure_serdes 0
Could not get PHY for PFE_MDIO: addr 1
phy_connect failed
No ethernet found.

openwrt 修改有效果,可以顺利配置eth0, eth1,即使SGMII被复位住

pe_load_ddr_section: load address(3fb0000) and elf file address(ffff0000094ab000) rcvd
[    8.409017] PFE binary version: pfe_ls1012a_slowpath_03
[    8.414884] pfe_load_elf
[    8.419007] pfe_ctrl_init
[    8.421877] pfe_ctrl_init finished
[    8.425394] pfe_eth_init
[    8.428166] pfe_eth_mdio_init
[    8.440814] libphy: ls1012a MDIO Bus: probed
[    8.452261] pfe 4000000.pfe eth0: pfe_eth_init_one: created inte**ce, baseaddr: ffff00000a200000
[    8.469230] pfe_eth_mdio_init
[    8.488017] libphy: ls1012a MDIO Bus: probed
[    8.498952] pfe_phy_init inte**ce a
[    8.503360] pfe 4000000.pfe eth1: pfe_eth_init_one: created inte**ce, baseaddr: ffff00000a220000

可以看到两个网口,
root@OpenWrt:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 76:0C:45:6A:F6:95
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:4501 (4.3 KiB)

eth1      Link encap:Ethernet  HWaddr 62:71:65:C8:FA:CE
          inet6 addr: fe80::6071:65ff:fec8:face/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15075 (14.7 KiB)  TX bytes:6932 (6.7 KiB)

ETH1 (RGMII)口还可以顺利检测到网线的插拔, ETH0(SGMII)则没有响应

root@OpenWrt:/# [  101.970697] pfe 4000000.pfe eth1: Link is Down
[  102.994826] pfe 4000000.pfe eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[  109.138705] pfe 4000000.pfe eth1: Link is Down
[  111.186773] pfe 4000000.pfe eth1: Link is Up - 100Mbps/Full - flow control rx/tx

但eth1无法获得通过DHCP获得IP, 手动设置IP, 也无法ping网关
root@OpenWrt:/# ifconfig eth1 192.168.3.66
root@OpenWrt:/# ping 192.168.3.1
PING 192.168.3.1 (192.168.3.1): 56 data bytes

请问会是什么原因? 单网口方案如何进行下去,请大家给点建议,谢谢



回复

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-21 20:57:29 | 显示全部楼层
一点猜测,正常软件和硬件,如果在uboot中没有运行
=>fpe stop
进入到openwrt, 也是会有网口无法收发的现象

目前uboot固定使用SGMII使得初始化失败,这是否会影响
openwrt中的网口操作

点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-22 09:03:06 | 显示全部楼层

在开发板尝试保留SGMII, 复位RGMII, 根据文档调整dts, 测试结果
uboot中可以检测到eth0, eth1报错,配置完ipaddr, eth0可以正常使


进入openwrt, 顺利初始化通过
root@OpenWrt:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr 76:0C:45:6A:F6:95
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fd7f:8300:7042::1/60 Scope:Global
          inet6 addr: fe80::740c:45ff:fe6a:f695/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:4801 (4.6 KiB)

eth0      Link encap:Ethernet  HWaddr 76:0C:45:6A:F6:95
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:4801 (4.6 KiB)

eth1      Link encap:Ethernet  HWaddr 62:71:65:C8:FA:CE
          inet addr:192.168.3.99  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::6071:65ff:fec8:face/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:42 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:56025 (54.7 KiB)  TX bytes:23426 (22.8 KiB)

SGMII可以检测到网线插拔, 但是无法获取ip, 手动配置后,也无法ping通
网关
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-10-22 09:04:14 | 显示全部楼层
有几点需要说明:
1、知识库里的方案是在ubuntu系统上验证的,如果在openwrt系统上验证,可以参考;
2、在我们的底板上是没办法验证的,缺少MDIO电平转换电路,需要参考硬件资料2020.05.25/原理图、底板V1.3Beta进行设计:去掉不用的一路网口电路;
Image_20211022084703.png

两个绿色的不能去掉
Image_20211022084734.png
点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-22 09:12:50 | 显示全部楼层
构建的单网口的RGMII和SGMII的openwrt版本, 在完整的双网口开发板上均能正常工作
点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-22 12:03:19 | 显示全部楼层
谢谢你的回答,关于在开发板上验证,目前的底板的MDIO 确是没有电平转换,在双网口下还是可以工作的很好,单网口下也应该是可以工作的
ubuntu和openwrt的linux kernel是相同的,目前开发板上我没有去掉一路电路,而是把AR8031芯片复位管脚下拉,使得其不工作,如果有可能飞凌的开发人员能够帮助验证一下这个方案,对应客户应该是莫大的帮助了

点评

djh
您是按照知识库里面的软件修改的,硬件上将复位引脚做了下拉是吗? 如果是的话我们这边有时间验证一下。 非常感谢您的分享。  详情 回复 发表于 2021-10-22 15:35
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-10-22 15:35:07 | 显示全部楼层
zhongtao1701 发表于 2021-10-22 12:03
谢谢你的回答,关于在开发板上验证,目前的底板的MDIO 确是没有电平转换,在双网口下还是可以工作的很好, ...

您是按照知识库里面的软件修改的,硬件上将复位引脚做了下拉是吗?
如果是的话我们这边有时间验证一下。
非常感谢您的分享。
点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-22 17:00:44 | 显示全部楼层
对的,直接把SGMII的复位电阻R21去掉,然后下拉到GND,软件直接按文档修改修改
  arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
  drivers/staging/fsl_ppfe/pfe_eth.c
然后重新生成openwrt, 需要注意生成的驱动 pfe.ko,不会自动拷贝到staging_dir目
录中root-layerscape中,我都是从build_dir中linux目录,
   build_dir/target-aarch64_generaic_musl/linux-layerscape_armv8_64b
把fsl-ls1012-rdb.dtb和fpe.ko拷贝出来,可以检查一下生成时间,确认修改生效
希望你们能有好结果分享给大家,谢谢你们


点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-26 10:07:52 | 显示全部楼层
一点新发现,单端口RGMII版本,系统起来后

root@OpenWrt:/# cat /sys/bus/mdio_bus/devices/ls1012a-0:02/phy_inte**ce
rgmii-txid
root@OpenWrt:/# cat /sys/bus/mdio_bus/devices/ls1012a-1:02/phy_inte**ce
gmii

而正常配置应该是eth0 是sgmii, eth1是rgmii-txid,而eth1这里被识别成gmii, 是否跟这个有点关系?

点评

djh
这个在openwrt系统上没研究过,不是很清楚,您可以到NXP官网找找看看吧  详情 回复 发表于 2021-10-26 10:23
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2021-10-26 10:23:36 | 显示全部楼层
zhongtao1701 发表于 2021-10-26 10:07
一点新发现,单端口RGMII版本,系统起来后

root@OpenWrt:/# cat /sys/bus/mdio_bus/devices/ls1012a-0: ...

这个在openwrt系统上没研究过,不是很清楚,您可以到NXP官网找找看看吧
点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-26 16:42:48 | 显示全部楼层
有一些进展,openwrt的修改应该没有问题,主要问题是uboot没有正确停止PFE
因为RGMII单端口uboot一定会初始化失败,所以我现在把SGMII的复位脚外接跳线,
uboot初始化时让SGMII正常工作,

U-Boot 2018.03 (Feb 25 2019 - 03:01:27 +0000)
ware
PFE tmu pe firmware
pfe_configure_serdes 0
eth0: pfe_eth0, eth1: pfe_eth1

然后进入uboot, 运行pfe stop, 让 PFE正确停止
然后复位SGMII, 引导起openwrt系统,这时
系统网络工作正常,所以目前初步结论是

uboot需要改进一下,或者简单一点,不使用
PFE设备和网络,请问你们能提供一份禁止网络
的uboot的image, 以便我进行验证码,谢谢
你们



点评回复 支持 反对

使用道具 举报

9

主题

32

帖子

78

积分

LS1012A通行证

 楼主| 发表于 2021-10-27 09:53:35 | 显示全部楼层
我下载了ubuntu的源码OK10xx-linux-fs, 我想直接修改uboot,但是发现里面是没有源码的,所以还是需要请飞凌帮忙一下,具体需要就是在在20190305的uboot上,把qfe的驱动去掉,不支持网络就可以,这样我就可以验证一下,这个方案的可行性,谢谢你们
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-20 02:33

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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