- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- labview试验报告.doc
- LB4000沥青站技术性能介绍201103.doc
- LDA型单梁起重机工艺.doc
- LB1矩形板计算.doc
- LED产品结构简要介绍.doc
- LED电源技术支持.docx
- Lebsgue测度.doc
- LED介绍和认识.doc
- libcap-可实现OAM.doc
- LinuxOpenSUSE安装Mplayer.docx
- IT员工保密协议范例(2025版).docx
- 2025年新疆维吾尔自治区石油管理局校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详.docx
- 2025年新疆独山子天利高新技术股份有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题.docx
- 2025年新和成控股集团有限公司校园招聘模拟试题附带答案详解一套.docx
- 2025年武汉邮电科学研究院有限公司校园招聘模拟试题推荐.docx
- 部编版五年级下册道德与法治期末检测卷及参考答案【培优】.docx
- 部编版五年级下册道德与法治 期末测试卷附完整答案(夺冠).docx
- 部编版五年级下册道德与法治《期末测试卷》及参考答案【最新】.docx
- 部编版五年级下册道德与法治期末检测卷精品(名师推荐).docx
- 部编版五年级下册道德与法治期末检测卷【实验班】.docx
文档评论(0)