硬件平台:(与Hi3559AV100-DEMOB几乎一样)

CPU:Hi3559AV100

PHY:88E1512

对端使用的是1000Base-X接口的交换机

 

目前此板子的SVB还没有配置成功。

 

  • U-boot

 由于修改phy,且使用的模式是RGMII to 1000Base-X所以需要调试U-boot

 1. 首先将gmac_debug打开,在uboot下设置环境变量,

hisilicon # setenv gmac_debug 1

hisilicon # saveenv

 

2. 通过gmac驱动的打印发现,在ping时gmac才会对phy进行配置,并复位phy和mac。

但是驱动里只对几个phy进行了适配,并且只读第0页的寄存器状态。然而我们使用的88E1512是有分页功能,只有copper的状态是在第0页,1000Base-X的状态在第1页,所以我们需要将驱动适配一下88E1512的此功能(由于本人是新手,所以此地方没有考虑兼容性问题,而是直接对其进行了强制切页)。当然我相信此地方一定有大牛有更好的解决办法(据网上所说uboot也有设备树一说,我想应该是可以从此处下手吧,只是我没有找到)。

3. 此代码在Hi3559AV100_SDK_V2.0.3.0/osdrv/opensource/uboot/u-boot-2016.11/drivers/net/higmacv300/higmac.c文件下,并根据88E1512手册进行修改。

    3.1首先配置模式,RGMII to 1000Base-X

3.2 复位phy并将速率固定成1000M(由于对端交换机不能自适应的原因)

4.Uboot下查看PHY寄存器值

        

          

            

              

 

5. ping测试,由于Uboot下没有ping回包,所以只能在板卡ping主机,而反之不通。

6. 目前也通过uboot下的网口,进行tftp烧写程序。通过此也可以推测uboot下网口应该是没有问题。

  • 系统下调试phy

1. 修改设备树,以便兼容88E1512

2. 在内核中支持MARVELL驱动

3. 此配置下uboot与内核打印信息对比

在系统中配置了固定的IP

并phy再次的设置了下固定speed

ethtool –s eth0 speed 1000 duplex full autoneg off

uboot下phy寄存器信息:

           

内核下phy寄存器信息:

此下几个函数在不停的循环调用,目前未查清楚是什么作用。

目前在系统下,网口还是没有ping通交换机,问题还未定位到。

目前此文章就是我在Hi3559AV100下调试88E1512的全部过程,过程不是很细节,而且有些问题还没有解决,只是做个调试记录,忘有大神看到,可以给出更好的建议,和接下来的调试方向,谢谢!

Logo

海思 HiSpark 开发者社区是上海海思为开发者搭建的内容和交流平台,依托完备芯片解决方案、专业开发环境、开源/开放的软件资源与社区技术内容,构建完整服务生态开发者的闭环体系。

更多推荐