过程很坎坷,操作很简单。
思路如下:
- 查找内核是否支持AR8035网卡,发现uboot的make menuconfig没有明显同名驱动。
在网上查到网卡驱动基本都一样,而且AR8031的驱动就可以给8035用
image.png
![]()
从上面的文章中可以知道,这款芯片是硬件电路配置出一个“地址”
,暂时不知道干嘛用的,手边也没有天嵌核心板电路图。- 通过这篇移植RTL8211E的文章uboot(2015.04-r0)网卡移植(RTL8211E)得到了很多有用信息。
image.png
- 这位兄台也是yocto环境,且uboot版本和我很接近,我的是uboot-2016
- 从这些初始化流程我们可以去搜索关键代码找到相应文件(在uboot源码目录下执行:grep -rn "phy_init" *)
- sabresd公版就是用的这个8035网卡,所以yocto里下载的源码肯定有这个驱动(因为源码就是官方维护的)
- 只要找到这个宏就能确定到底使用的哪个系列的驱动,如果不是AR系列的话uboot肯定不能顺利加载驱动(在uboot源码目录下执行:grep -rn "宏名称" *)
通过上面的步骤我们顺利找到了这个宏
文章中提示到修改的地方
下面是我修改的代码,通过文章标题可知他和我的板子并不一样,他是E9卡片板,我是完整的开发板,所以我已经有心理准备电路不一样了。
通过gitk查看修改的代码
修改了两处,看到了他文章里网卡设备地址要改为5,我却改为了0,并不是我知道电路,我试过5,失败了。
继续寻找线索,我突然想起来了核心板里有天嵌自带的uboot,他肯定支持的很好,我们研究一下他的启动参数。
天嵌官方启动参数
我一开始只是搜索phy相关的日志,前面并没有找到什么有价值的东西,但是到上图中的这句话我敏锐的回想起本文第二章图的文章里面的日志,这么相似又这么不同。
试试又不花钱,果断修改地址为0,make、dd、上电、成功!!
网友评论