第八章:基于九鼎X210开发板移植2014.10版U-boot之初始化网卡


 接下来就要开始处理网卡相关的了,这样我们才能挂载网络文件系统,使用tftp服务器之类的,但是很不幸,2014.10版本的uboot里面没有支持我们的开发板上的网卡。所以接下来要手动移植网卡相关的程序。

 首先查找网卡初始化的代码/arch/arm/lib目录下的board.c中的board_init_r函数可以看到有设置,那就需要在/include/config目录下的x210.h下追加#define CONFIG_CMD_NET和#define CONFIG_CMD_PING

      

 同时在x210.h中还发现了#undefCONFIG_CMD_NET,这个也需要屏蔽掉,要不就会将之前定义的CONFIG_CMD_NET给取消掉了。之后烧录进sd卡启动,发现,没有找到Ethernet,这也和之前咱们说的一致,需要我们自己移植网卡相关的程序了。

      

 进入board_init_r下的eth_initialize里面可以看到以下代码:
Net Initialization Skipped,这个之前在uboot中有看到,那么就知道上面两个case都没执行到,也就是意味着board_eth_init 的返回值等于__def_eth_init的返回值。

    

 深入研究发现并没有board_eth_init这个函数,而是定义了以下函数

    

 不知道这个是啥意思,百度之后,大概就是说如果没有board_eth_init这个函数,那么board_eth_init函数就等于__def_eth_init这个函数,这样一来,就会打印出Net Initialization Skipped

 既然没有这个函数,咱们就定义一个这个函数,而这个函数就用来初始化开发板的网卡吧。

 首先优先在/driver/net目录中查找是否有DM9000相关的网卡,果然还真的有,然后查看/driver/net目录下的makefile,看要怎么才能将DM9000.o编译进来。

 在makefile中看到obj-$(CONFIG_DRIVER_DM9000) += dm9000x.o

 X210.h中追加CONFIG_DRIVER_DM9000的宏定义,然后review下dm9000x.c这个文件的初始化函数在哪里?最后在/board/Samsung/X210目录下的x210.c文件中添加这个函数

      

 之后编译程序,果然不可能那么顺利的。但是问题不大,只是缺少了DM9000_DATA,DM9000_IO,CONFIG_DM9000_BASE三个宏定义,网卡这部分的东西,之前在移植三星版本的uboot的时候已经弄过了,所以这里我直接使用之前移植过的参数来减少工作量。

    

 顺利编译通过,再次烧录,启动,发现还是有问题,会提示ERROR: resetting DM9000 -> not responding,这里正好在网上看到解决的办法。

 参考:http://blog.csdn.net/u010346967/article/details/46634993

 修改地方就是屏蔽掉之前lowlevel_init.S中的CLK_IP1的时钟初始化。

    

 再编译烧录启动后,就没有那么多问题的了,如果出现了

 WARNING: Bad MAC address (uninitialized EEPROM?)
 operating at 100M full duplex mode
 *** ERROR: `serverip' not set

 那就设置一下ip地址这类的东西,然后再save一下,保存起来即可。

 这时候我准备下载东西到内存中去了,使用tftp命令下载的时候,出现了如下错误。

      

 想起来丢了之前移植三星版本的网卡的一个初始化,将它移植过来就好了,具体内容,哪天的整好之前移植三星版本时候的笔记,再贴出来吧。

 /borad/Samsung/x210目录下出x210.c中追加以下代码。

    

 之后执行下载命令,下载成功,也说明我们的网卡打通了。

           



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值