设为首页 加入收藏

TOP

Linux2.6移植:DM9000驱动
2014-11-24 08:22:47 来源: 作者: 【 】 浏览:0
Tags:Linux2.6 移植 DM9000 驱动

Linux2.6 移植:DM9000 驱动


交叉编译环境:3.4.1


板子:MagicARM2410


系统内核:linux2.6.24.4


移植DM9000 驱动前需要知道的DM9000 的硬件信息:


1)EECS 拉高:16bit 模式;


2)EECK 拉高,INT 连接到2410 EINT0INT 脚为低时为有效中断信号,中断线为EINT0


3)cs 连接到2410nGCS3CMD 连接2410 地址总线ADDR[2]INDEXDATA 端口地址分别为0x1800030000x18000304


接下来就是具体移植步骤了:


1 .修改arch/arm/plat-s3c24xx/devs.c ,加入dm9000 的信息,并使用EXPORT_SYMBOL 宏将platform_device s3c_device_dm9000 导出,在smdk2410.c 中会用到,在 devs.c 中先添加头文件:
#include
再添加以下代码:
//===========================================================================
/*
注意: 以下有两个地方需要根据自己的开发板上的dm9000s3c2410 硬件电路连接情况而定( 一般在开发板的手册上有说明,也就是刚才所列出的几条信息):(1)dm9000 的基地址 DM9000_BASE,(2) 所采用的是哪个外部中断*/




#define DM9000_BASE 0x18000300 //这是 dm9000的基地址依个人情况而定
static struct resource s3c_dm9000_resource[] = {
[0] = {
.start = DM9000_BASE,
.end = DM9000_BASE+ 0x3,
.flags = IORESOURCE_MEM
},
[1]={
.start = DM9000_BASE + 0x4,
.end = DM9000_BASE + 0x4 + 0x7c,
.flags = IORESOURCE_MEM
},
[2] = {
.start = IRQ_EINT0, //外部中断,依个人情况而定

.end = IRQ_EINT0, //外部中断,依个人情况而定


.flags = IORESOURCE_IRQ
}
};

static struct dm9000_plat_data s3c_device_dm9000_platdata = {
.flags= DM9000_PLATF_16BITONLY, // 16bit模式

};

struct platform_device s3c_device_dm9000 = {
.name= "dm9000",
.id= -1,
.num_resources= ARRAY_SIZE(s3c_dm9000_resource),
.resource= s3c_dm9000_resource,
.dev= {
.platform_data = &s3c_device_dm9000_platdata,
}
};

EXPORT_SYMBOL(s3c_device_dm9000);
//end of DM9000

//===========================================================================


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android开发教程:取得控件在手机.. 下一篇基于ZLG/BOOT的Linux2.6内核移植(..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)
·MySQL 数据类型:从 (2025-12-26 18:20:03)
·Linux Shell脚本教程 (2025-12-26 17:51:10)
·Qt教程,Qt5编程入门 (2025-12-26 17:51:07)