免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1193 | 回复: 0
打印 上一主题 下一主题

linux2.6下dm9000网卡驱动移植 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-24 14:38 |只看该作者 |倒序浏览

第一步:在arm/arm/mach-s3c2410/devs.c 文件中添加如下代码
//-----------------------------------------------------------      
static struct resource s3c_dm9000_resource[] = {
        [0] = {
          .start = 0x08000000 + 0x300,
          .end   = 0x08000000 + 0x300 + 0x03,
          .flags = IORESOURCE_MEM
},
        [1] = {
          .start = 0x08000000 + 0x300 + 0x04,
          .end   = 0x08000000 + 0x300 + 0x04 + 0x3,  //   0x3f
          .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
};
      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);      
//-----------------------------------------------------
  第二步:在 arm/arm/mach-s3c2410/devs.h 文件中 添加如下一行
  extern struct platform_device s3c_device_dm9000;    //for dm9000   --------hainanyunyu --广州大学
//----------------------------------------------------------------
第三步:在  arm/arm/mach-s3c2410/mach-smdk2410.c   
文件中的*smdk2410_devices[] __initdata
添加&s3c_device_dm9000,//for dm9000   --------hainanyunyu --广州大学
如下所示:
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,         
      &s3c_device_wdt,     
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_dm9000,//for dm9000  
};
//----------------------------------------------------------------
第四步:在内核自带的dm9000网卡驱动源码driver/net/dm9000.c中添加下面两行 定义
     #define INTMOD          (0x4A000004)
     static void *intmod;
     在driver/net/dm9000.c  的
      static int dm9000_probe(struct device *dev)  函数中添加下面两行:
      intmod="ioremap"_nocache(INTMOD,0x0000004);
      writel(0x0,intmod);
//-----------------------------------------------------------------


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82249/showart_1841097.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP