TQ2440移植u-boot2016.11全过程记录-【2】DM9000网卡驱动移植

TQ2440移植u-boot2016.11 dm9000网卡驱动


uboot中含有成熟的DM9000网卡驱动,只做简单的修改即可使用。

编辑文件:gedit board/samsung/tq2440/tq2440.c

board_eth_init函数替换为:

int board_eth_init(bd_t *bis)
{
	int rc = 0;
#ifdef CONFIG_DRIVER_DM9000
	rc = dm9000_initialize(bis);
#endif
	return rc;
}

编辑文件:gedit include/configs/tq2440.h
找到默认的网络配置信息:

#define CONFIG_NETMASK             255.255.255.0
#define CONFIG_IPADDR           10.0.0.110
#define CONFIG_SERVERIP       10.0.0.1

替换为:

#define CONFIG_GATEWAYIP	192.168.166.1			/* 网关 */
#define CONFIG_NETMASK		255.255.255.0			/* 掩码 */
#define CONFIG_IPADDR		192.168.166.253			/* 开发板IP地址 */
#define CONFIG_SERVERIP		192.168.166.254			/* 服务器IP地址 */
#define CONFIG_ETHADDR      00:11:22:33:44:aa		/* MAC地址 */

此处的IP地址和服务器地址根据你自己的实际地址进行修改!

添加MAC地址的默认环境变量,编辑文件:gedit include/env_default.h
找到:

#ifdef	CONFIG_SERVERIP
	"serverip="	__stringify(CONFIG_SERVERIP)	"\0"
#endif

在下方添加:

#ifdef CONFIG_ETHADDR
	"ethaddr=" __stringify(CONFIG_ETHADDR)	"\0"
#endif

在这里插入图片描述
解决新版u-boot使用dm9000网卡会出现“could not establish link”的提示,编辑文件:gedit drivers/net/dm9000x.c,找到dm9000_init函数,屏蔽掉测试dm9000网卡驱动的代码:

#if 0
	i = 0;
	while (!(dm9000_phy_read(1) & 0x20)) {	/* autonegation complete bit */
		udelay(1000);
		i++;
		if (i == 10000) {
			printf("could not establish link\n");
			return 0;
		}
	}
#endif

编译U-BOOT然后通过tftp下载到0x30008000地址处,查看实验效果:
在这里插入图片描述
识别测试成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉皇嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值