dm9000驱动分析

一. 硬件情况
DM9000在电路板上的连接中与编程相关的如下:
1)EECS拉高:16bit模式;
2)EECK拉高,INT连接到2440 EINT7:INT脚为低时为有效中断信号,中断线为EINT7
3)cs连接到2440的nGCS2,CMD连接2440地址总线ADDR[2]:INDEX和DATA端口地址分别为0x1000_0000和0x1000_0004。
知道上面这些信息已经足够移植驱动了。
二.  Dm9000驱动移植详细过程
1.在arch/arm/mach-s3c2410/devs.c 中添加dm9000的platform_device。
static struct resource eievk_dm9000_resource[] = {
[0]= {
.start = 0x10000000,  //this is based on EIEVK board
.end   = 0x10000003,
.flags  = IORESOURCE_MEM,
},
[1]={
.start = 0x10000004,
.end   = 0x10000007,
.flags = IORESOURCE_MEM,
},
[2]={
.start = IRQ_EINT7,
.end   = IRQ_EINT7,
.flags = IORESOURCE_IRQ,
}
};
static struct dm9000_plat_data eievk_dm9000_platdata ={
.flags = DM9000_PLATF_16BITONLY,//work in 16bit mode
};
struct platform_device eievk_dm9000_device = {
.name = "dm9000",
.id = -1,
.num_resources = 3,
.resource = eievk_dm9000_resource,
.dev = {
.platform_data = &eievk_dm9000_platdata,
}
};
EXPORT_SYMBOL(eievk_dm9000_device);
3.在arch/arm/mach-s3c2410/devs.h中 声明平台设备 eievk_dm9000_device :
  extern struct platform_device eievk_dm9000_device;
4.在arm/arm/mach-s3c2410/mach-smdk2410.c中将eievk_dm9000_device添加到平台设备列表中:
static struct platform_device *smdk2440_devices[] __initdata = {
&eievk_dm9000_device, //add dm9000
};
5.需要做两方面的工作:设置芯片MAC地址,使能DM9000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值