解决hi3519官方sdk无法联网的问题

原因

官方SDK里的ETH接口是RGMII的,而本硬件是RMII的,需修改uboot和kernel的配置

解决方法

参考文章

  1. uboot配置方法13519v101的uboot的RTL8201百兆网卡配置
  2. uboot配置方法2:Hi3519AV100 调试系列
    ——网络RGMII改为RMII
  3. 修改kernel方法:Hi3519V101(之) 烧写uboo kernel rootfs
    跑起来之后网络网卡问题

解决步骤

1. 修改uboot

1.1 配置复用寄存器

打开osdrv/tools/pc/uboot_tools/Hi3519V101-DMEB-uboot-DDR3_1866M_32bit_1GB-A7_792M-A17_930M-BUS_200M.xlsm并开启宏功能,配置后生成reg bin
在这里插入图片描述
在这里插入图片描述

1.2 合并reg bin和uboot
cd osdrv/tools/pc/uboot_tools
cp osdrv/pub/image_glibc_big-little/u-boot-hi3519v101.bin ./u-boot.bin
chmod u+x mkboot.sh
#修改复用寄存器并生成"reg bin"
./mkboot.sh reg_info.bin u-boot-hi3519v101-rmii.bin
1.3 烧录uboot
1.4 进入uboot后进行一定操作
setenv ipaddr '192.168.1.2'
setenv serverip '192.168.1.3'
setenv gatewayip '192.168.1.1'
saveenv
#此时无法ping成功,但需执行ping,方可执行mii命令
ping 192.168.1.3
mii wirte 0 0 0x8000
mii read 0 0
mii dump 0 0
mii dump 0 1
#此时将可联网成功
tftp

2 修改kernel

2.1 修改dts

修改osdrv\opensource\kernel\linux-3.18.y\arch\arm\boot\dts\hisi-hi3519v101-hmp-demb.dts文件(可由上层目录的Makefile看出使用的是hmp-demb.dts)

--        phy-mode = "rgmii";
++        phy-mode = "rmii";

原理分析

打开Hi3519V101_PINOUT_CN.xlsx中的3.管脚复用寄存器页,搜索rmii,找到rmii和rgmii的冲突管脚80,于是需修改muxctrl_reg80寄存器为3,让该引脚的功能为RMII_CLK
在这里插入图片描述

排查过程

ifconfig无任何信息,ifconfig -a显示没有ip

ifconfig
ifconfig -a
eth0      Link encap:Ethernet  HWaddr FE:96:46:59:24:09  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:57 

lo        Link encap:Local Loopback  
          LOOPBACK  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

设置网卡配置提示: link is not ready

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

查询网卡信息

dmesg | grep -i eth

得到网卡信息

hi_gmac_v200 10050000.ethernet (unnamed net_device) (uninitialized): using random MAC address fe:96:46:59:24:09
higmac: ETH MAC supporte CCI.
ETH: rgmii, phy_addr=1

说明默认的ETH接口是RGMII的,而本硬件是RMII的,需修改uboot和kernel的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值