移植新版本u-boot之六--- 支持DM9000网卡

先给自己打个广告,本人的微信公众号正式上线了,搜索:张笑生的地盘,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题

  1. 我们板子上的网卡用的是DM9000,查看driver/net下的Makefile,配置宏支持DM9000
COBJS-$(CONFIG_DRIVER_DM9000) += dm9000x.o
  1. 修改include\configs\smdk2440.h,去掉CS8900,支持DM9000,另外CONFIG_DM9000_BASE这个值应该设置为多少呢?
    因为DM9000网卡将数据传给2440cpu,那么对于2440来说,就是一个数据传输,可以将
    DM9000借口看做一个类似内存控制器的接口
    2440cpu通过内存控制器访问DM9000网卡
    a. 设置内存控制器,时序、位宽
    b. 确定访问地址
    c. 片选nGCS4接到了DM9000上,那么cpu发出什么地址的时候,会使得nGCS4被片选上了?
    在这里插入图片描述
    参考s3c2440芯片手册,可知当地址范围在0x20000000~0x28000000时,nGCS4会被片选上
    在这里插入图片描述
/*
 * Hardware drivers
 */
#if 0
#define CONFIG_CS8900		/* we have a CS8900 on-board */
#define CONFIG_CS8900_BASE	0x19000300
#define CONFIG_CS8900_BUS16	/* the Linux driver does accesses as shorts */
#else
#define CONFIG_DRIVER_DM9000
#define CONFIG_DM9000_BASE		0x20000000
#define DM9000_IO			    CONFIG_DM9000_BASE
#define DM9000_DATA			   (CONFIG_DM9000_BASE + 4)
#endif
  1. 修改board\samsung\smdk2440\lowlevel_init.S下面的内存控制器接口寄存器初始化,主要是寄存器BWSCON和BANKCON4
SMRDATA:
		.long 0x22011110	 //BWSCON
		.long 0x00000700	 //BANKCON0
		.long 0x00000700	 //BANKCON1
		.long 0x00000700	 //BANKCON2
		.long 0x00000700	 //BANKCON3  
		.long 0x00000740	 //BANKCON4
		.long 0x00000700	 //BANKCON5
		.long 0x00018005	 //BANKCON6
		.long 0x00018005	 //BANKCON7
		.long 0x008C04F4	 // REFRESH
		.long 0x000000B1	 //BANKSIZE
		.long 0x00000030	 //MRSRB6
		.long 0x00000030	 //MRSRB7
  1. 修改board\samsung\smdk2440\smdk2440.c,支持DM9000初始化,DM9000.c中肯定会提供一个接口进行对DM9000的初始化
int board_eth_init(bd_t *bis)
{
	int rc = 0;
#ifdef CONFIG_CS8900
	rc = cs8900_initialize(0, CONFIG_CS8900_BASE);
#endif
#ifdef CONFIG_DRIVER_DM9000
	rc = dm9000_initialize(bis);
#endif

	return rc;
}
  1. 移植修改好最新的代码之后,编译make
  2. 烧写到nor flash,在超级终端中输入如下命令
loady 30000000
protect off all
erase 0 7ffff
cp.b 30000000 0 80000

此时就能够识别到DM9000网卡了
在这里插入图片描述
7. 设置开发板的ip地址

set ipaddr 192.168.0.17
set ethaddr 00:0c:29:4d:64:f6  //第一个值是有含义的,参照我们pc真实板子的地址设置
  1. 测试和PC之间的网络连接
ping 192.168.0.108    //PC的ip地址

有下面的打印,说明板子和pc网络连接正常
在这里插入图片描述
9. 使用网络下载文件,需要打开tftpd32.exe,需要在板子上设置serverip地址

set serverip 192.168.0.108  //pc的ip地址
tftp 30000000 uImage         //使用网络下载
bootm 30000000                 //启动内核
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值