单网口下uboot停止pfe失败,导致openwrt网络收发问题
本帖最后由 zhongtao1701 于 2021-10-27 21:45 编辑在RGMII单网口状态下, uboot初始化PFE失败,在引导kernel系统前,它会停止PFE,
但是在失败初始化后,它也不能正确停止PFE, 导致kernel的网络数据收发问题,
验证过程是使得,uboot引导时,保留RGMII和SGMII, 这样它初始成功,然后停止
PFE,
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
=> pfe stop
这时复位SGMII的AR8031, 然后引导openwrt系统, 系统能够顺利进入单
网口状态,而且网络数据收发正确, 所以只要uboot能够正确停止pfe,
openwrt系统是可以正确支持单网口的。
所以uboot也应该处理正确处理单网口,或者简单一点就是它不初始
化PFE和网络,
我下载了ubuntu的源码OK10xx-linux-fs, 我想直接修改uboot,但是
发现里面是没有uboot源码的,所以还是需要请飞凌的研发帮忙一下修
改一下,在20190305的uboot版本上,把qfe的驱动去掉,不支持网
络就可以,这样我就可以验证一下,这个单网口方案的可行性,谢谢
你们
uboot是不开源的;
建议您先在ubuntu系统上进行验证,按照之前给您发的参考最新的底板原理,加上MDIO转换电路; 本帖最后由 zhongtao1701 于 2021-10-28 12:12 编辑
目前我已经验证openwrt的单网口是可以工作,但是如果uboot 如果停止pfe失败,则会导致openwrt的网络问题,但是目前
uboot都是不支持单网口的,所以它停止pfe时都会有问题,您可以从验证过程看到这个现象,不需要修改代码,目前只需要
在uboot的配置中去掉PFE驱动
drives/net/pfe_eth/Kconfig
FSL_PFE
bool "NXP PFE Ethernet driver"
把上面的FSL_FPE选项去掉就可以了,目前已经到了验证这个方案的最后一一步了,应该是已经接近成功了
我自己按OK1012A-V1.3Beta做的底板(带MDIO转换电路)也是和开发板相同的现象,所以还是请你们帮忙提供一个版本
,使得开发能进行下去,如果能够成功,其他用户也能从中受益,请你帮助协调安排一下,谢谢你们支持了
本帖最后由 djh 于 2021-10-28 13:50 编辑
zhongtao1701 发表于 2021-10-28 10:19
目前我已经验证openwrt的单网口是可以工作,但是如果uboot 如果停止pfe失败,则会导致openwrt的网络问题, ...
您对应的销售工程师是哪位啊
本帖最后由 zhongtao1701 于 2021-10-28 15:11 编辑
开发板我是在淘宝上买的,有蛮长的一段时间了,销售好像叫张玉 zhongtao1701 发表于 2021-10-28 14:59
开发板我是在淘宝上买的,有蛮长的一段时间了,销售好像叫张玉
您可以把您的需要跟她沟通一下 我今天在NXP的论坛上问了这个问题,他们已经给出了确切修改答复,
需要按下面修改一下uboot的代码,如果你能够帮l忙build一下,那就太
谢谢你了
https://community.nxp.com/t5/Layerscape/uboot-cause-single-PFE-ethernet-ping-cmd-fail-in-kernel/m-p/1362986#M9202
yipingwang
NXP TechSupport yipingwang
NXP TechSupport
You could download LSDK 20.04
In u-boot source code, please modify board/freescale/ls1012ardb/eth.c as the following.
In LSDK environment, u-boot source code is in packages/firmware/u-boot.
switch (srds_s1) {
case 0x3508:
// if (!priv->gemac_port) {
/* MAC1 */
// pfe_set_phy_address_mode(priv->gemac_port,
// CONFIG_PFE_EMAC1_PHY_ADDR,
// PHY_INTE**CE_MODE_SGMII);
// } else {
/* MAC2 */
pfe_set_phy_address_mode(priv->gemac_port,
CONFIG_PFE_EMAC2_PHY_ADDR,
PHY_INTE**CE_MODE_RGMII_ID);
// }
break;
Then in LSDK build environment rebuild u-boot to generate ATF(firmware) image.
$ rm -rf build/firmware/u-boot/
$ flex-builder -c atf -m ls1012ardb -b qspi
$ flex-builder -i mkfw -m ls1012ardb -b qspi
You will get the following result in u-boot.
=> mdio list
PFE_MDIO:
1 - RealTek RTL8211F <--> pfe_eth1
=>
In recent released LSDK or OpenWrt, if you want to use only RGMII IF with PFE Ethernet port, you just need to remove "pfe_mac0"(SGMII) definition in the dts file.
zhongtao1701 发表于 2021-10-28 15:44
我今天在NXP的论坛上问了这个问题,他们已经给出了确切修改答复,
需要按下面修改一下uboot的代码,如果你 ...
关于uboot 源码中:board/freescale/ls1012ardb/eth.c,这个文件我们的开源的;
关于网络的配置文件uboot是开源的,您可以自己修改的 本帖最后由 zhongtao1701 于 2021-10-28 19:36 编辑
我从下面链接中下载了,OK10xx-linux-fs.tar.bz2 (你上次提到20190305 是支持SD大文件读写 )
20190305 20190320 链接: https://pan.baidu.com/s/1HbkfMv53kxvEWgfMbbL7gA 提取码: ljzx
展开后,在packages/firmware目录下列表如下, u-boot指向 OK10xx-linux-uboot, 但是目录OK10xx-linux-uboot并不存在
tzhong@XZ-201812202052 ~/projs/forlinx/OK10xx-linux-fs/flexbuild/packages/firmware
$ ls -l
-rw-r--r--1 tzhong None 13127 四月 23 2019 Makefile
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 mc-utils
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 ppa-generic
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-engine-pfe-bin
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-firmware-cortina
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-fm-ucode
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-mc-binary
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-qe-ucode
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 qoriq-uefi-binary
drwxr-xr-x+ 1 tzhong None 0 四月 23 2019 rcw
lrwxrwxrwx1 tzhong None 19 四月 23 2019 u-boot -> OK10xx-linux-uboot/
OK10xx-linux-uboot需要单独安装吗? 或者我步骤有什么问题吗? 谢谢
页:
[1]