经过前面的移植现在板子已经能成功跑起来yocto的2015.04版u-boot,但是如果我们ping主机则会提示不通,这里我们继续把u-boot的网卡移植上去,毕竟之后的内核移植少不了tftp功能。

uboot-2015-04的独立phy网卡移植本身是很简单的,这里主要做个简单分析。

1.uboot网卡初始化整体流程:

该版Uboot中网卡的启动过程如下board_init_f>>board_init_r>>initr_net>>eth_initialize.

在eth_initialize中会执行miiphy_init(),phy_init(),phy_env_init()以及board_eth_init四个函数。

2.网卡具体初始化:

miiphy_init():初始化mii_devs链表,该列表中是一系列象征mac控制器,每个miid_dev表示一条mdio总线,可挂载多个phy设备。

phy_init():根据宏定义(例如CONFIG_PHY_REALTEK、CONFIG_PHY_ATHEROS等)初始化相应一个或多个系列网卡,其中就有我们项目中使用的realtek(RTL8211E)系列网卡以及sabresd公版所使用的aheros(AR8031)系列网卡。

phy_env_init():初始化关于phy的一些uboot环境变量,这里我们不需要关心。

board_eth_init():网卡的板级初始化。

3.网卡板级具体初始化:

board_eth_init()中会执行setup_iomux_enet(),setup_pcie(),cpu_eth_init()三个函数。

其中setup_iomux_enet()函数配置网卡的rgmii接口,一般不用动这部分代码。

setup_pcie()配置板子pcie总线,具体这里也不用管。

cpu_eth_init()函数会做些网卡的芯片级初始化。

4.网卡芯片级具体初始化:

cpu_eth_init()只是调用了fecmx_initialize()函数,该函数中则只调用了fecmxc_initialize_multi(bd,-1,CONFIG_FEC_MXC_PHYADDR,IMX_FEC_BASE)函数,该函数原型为

Int fecmxc_initialize_multi(bd_t *bd.int phy_id,uinit32_t addr);

作用是初始化挂载在器件地址为phy_id的mdio上的所有phy芯片,具体实现颇复杂但也比较有意思,有兴趣的可以自行研究下,这里我们知道这些就已经足够了,如此看来似乎phy_id这个参数名如果改为phy_addr会更容易理解些。

到这里我们也就已经获得了移植RTL8211E网卡所需要的所有信息,这里做个总结:

由步骤2得知为了注册RTL8211E的驱动,需要定义CONFIG_PHY_REALTEK宏,为了探测到MDIO上我们的phy芯片(RTL8211E),需要用调用fecmxc_initialize_multi(bd,-1,CONFIG_FEC_MXC_PHYADDR,IMX_FEC_BASE),这里CONFIG_FEC_MXC_PHYADDR就是我们的网卡芯片的器件地址,可通过电路图得知我们的地址为5,也就是说需要把CONFIG_FEC_MXC_PHYADDR宏定义为数值5。

综上所述,为了移植我们的网卡芯片我们只需要两个步骤:

1.注掉include/configs/mx6sabre_common.h中的

/* #define CONFIG_PHY_ATHEROS */

并追加

#define CONFIG_PHY_REALTEK

2.把include/configs/mx6sabre_common.h中的

#define CONFIG_FEC_MXC_PHYADDR 1

改为

#define CONFIG_FEC_MXC_PHYADDR 5

注意:在2016.03版本uboot中如果启动uboot提示找不到FEC PHY需要在drivers/net/phy/phy.c下做如下修改

int __weak get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id)

{

int phy_reg;

mdelay(10);//加入睡眠10ms

...

}

天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第三篇 新版uboot(2015.04-r0)网卡移植(RTL8211E)相关推荐

  1. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第四篇 新版kernel(L4.1.15-r)移植

    现在2015.04版uboot已经真正可以为我们的E9服务了,接下来就是移植内核,其实自3.x以后的新版内核移植起来已经相当省心省力了,主要就是修改dts文件,方便起见,我们还是先把tftp.nfs的 ...

  2. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第五篇 LCD+触摸屏移植

    经过前面的移植,我们的板子已经可以成功进入linux,但是这个时候看不到画面的,还需要进一步调通LCD显示和触摸屏驱动. 1.uboot环境变量. 为了LCD能显示需要如下设置uboot变量: $se ...

  3. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第一篇 yocto项目建立

    本移植过程参考飞思卡尔的Freescale_Yocto_Project_User's_Guide.pdf文档,请自行到飞思卡尔下载fsl-yocto-L4.1.15_1.0.0-ga.zip文件夹. ...

  4. 3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路

    点击打开链接 3g android4 移植 点击打开链接 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 点击打开链接  Android--4.2 - 3G移 ...

  5. 天嵌科技为E9卡片电脑Qt快速入门攻略

    本手册是广州天嵌计算机科技有限公司与Qter开源社区联合出品的入门教程,基于天嵌E9卡片电脑,目的是让E9用户可以快速完成Qt环境搭建并开始Qt嵌入式编程.该教材中使用了最新的Qt 5.4.0版本,基 ...

  6. 飞思卡尔I.MX6Q-QT5的移植

    专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示.         飞思卡尔I ...

  7. 飞思卡尔 I.MX6Q-vpu视频编解码

    专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示.         飞思卡尔I ...

  8. 飞思卡尔I.MX6Q-LTIB安装配置

    专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示.         飞思卡尔I ...

  9. 飞思卡尔 I.MX6Q-高分辨率(1080P)视频采集编码

    专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示.         飞思卡尔I ...

最新文章

  1. 打印http地址打印双斜杠
  2. ArrayList原理分析(重点在于扩容)
  3. java 数组练习题,Java练习题 - 数组01
  4. Vue.js-Day09【项目实战(附带 完整项目源码)-day04:用户个人中心页面、用户登录页面、将项目打包部署到服务器上、项目汇报、实训心得】
  5. 如何将现有的项目添加到远程的git库里面!
  6. 剑指0ffer04.二维数组中的查找
  7. 容斥原理的二进制实现模版
  8. java集合中中文排序_利用Collator和Collections.sort对list进行中文排序,注意与Arrays.sort的区别...
  9. pajek软件使用方法_双全科技|管家婆管理库存必备“序列号”,管家婆软件的使用方法...
  10. OpenHarmony移植:XTS子系统之应用兼容性测试套件
  11. java 日期相减得分钟_java日期相减得到分钟??????
  12. raptor的基本符号有_Raptor 基本符号有( )
  13. angular发布代码有缓存_[译文]RxJS缓存进阶
  14. UVA 10602 - Editor Nottoobad
  15. Maxwell 介绍
  16. MAX96706开发板POC电路分析
  17. origin将柱状图和折线图画一起
  18. C/C++KTV点歌系统
  19. 执行throw后 后面代码还会执行吗?
  20. IOI2009 Day2 B Mecho小熊

热门文章

  1. java售楼系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  2. 摩托罗拉ME525+ 变砖恢复记
  3. php织梦二次开发的功能例子,织梦DedeCMS二次开发联动筛选功能的实现(含多选功能)...
  4. 小雉系统U盘安装包制作
  5. PHP程序‘猿’必备的七种武器
  6. java qq2012下载_Java在2012年的未来
  7. Cordova实现自定义下载插件和WPS在线预览
  8. 百度云网盘批量改名之正则替换重命名(二)
  9. VAV系统定静压控制
  10. 联想+A916+原版官方稳定精简ROM