网站大量收购独家精品文档,联系QQ:2885784924

u-boot移植4--支持DM9000.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
u-boot移植4--支持DM9000

U-boot移植5--支持DM9000 开发板的原理图中得知: 第二阶段从在lib_arm的board.c的start_armboot函数开始,其中有一个是跳到网卡初始化的eth_initialize函数(在net/eth.c中)(上面的宏CONFIG_NET_MULTI,等会要实现)。 1、在eth_initialize(文件中有两个,代码较长的那个)的 #if defined(CONFIG_MII) || (CONFIG_COMMANDS CFG_CMD_MII) miiphy_init(); #endif后面添加上下面的代码 if (board_eth_init(bis) 0) cpu_eth_init(bis); 并在本文件前面增加如下代码: static int __def_eth_init(bd_t *bis) { return -1; } int cpu_eth_init(bd_t *bis) __attribute__((weak, alias(__def_eth_init))); 2、在mao2440.c中添加上面函数的实现 #include net.h extern int dm9000_initialize(bd_t * bd); #ifdef CONFIG_DRIVER_DM9000 int board_eth_init(bd_t *bis) { return dm9000_initialize(bis); } #endif 3、在include/configs/mao2440.h中注释CS8900的代码,如下:(62行) #if 0 #define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ #define CS8900_BASE 0#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ #end if 并添加DM9000的宏, 由上图知DM9000在BANK4上所以定义为0define CONFIG_DRIVER_DM9000? 1 #define CONFIG_DM9000_BASE? 0#define DM9000_IO? ? CONFIG_DM9000_BASE #define DM9000_DATA? ? (CONFIG_DM9000_BASE+4) #define CONFIG_DM9000_USE_16BIT 1 #define CONFIG_NET_MULTI 1 4、网上说要修改dm9000x.c的eth_init(bd_t * bd)的内容,此步我的板不用 eth_init(bd_t * bd) { ............... /* Set Node address */ /*for (i = 0; i 6; i++) ((u16 *) bd-bi_enetaddr)[i] = read_srom_word(i); */ char *tmp = getenv (ethaddr); char *end; for (i=0; i6; i++) { bd-bi_enetaddr[i] = tmp ? simple_strtoul(tmp, end, 16) : 0; if (tmp) tmp = (*end) ? end+1 : end; } ………………. #if 0 i = 0; ………… #endif return 0; } 红色的字符是要做的修改:功能是屏蔽原有获取MAC地址的语句,替换成从U-Boot的参数区读取数据并存到bd-bi_enetaddr[i]中功能是屏蔽无用的语句。其实被屏蔽的语句是MII接口用的,放在这显然是错误的,无端的浪费了10秒钟 #define CONFIG_ETHADDR 08:00:3e:26:0a:5b #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_IPADDR 192.168.1.230 #define CONFIG_SERVERIP 192.168.1.2 7、添加ping命令 在宏CONFIG_COMMANDS中增加CFG_CMD_PING如下: #define CONFIG_COMMANDS \ (CONFIG_CMD_DFL | \ CFG_CMD_CACHE | \ CFG_CMD_PING

文档评论(0)

xjj2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档