Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1370056
  • 博文数量: 244
  • 博客积分: 10311
  • 博客等级: 上将
  • 技术积分: 3341
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 21:50
文章分类

全部博文(244)

文章存档

2013年(6)

2012年(5)

2011年(16)

2010年(11)

2009年(172)

2008年(34)

分类: LINUX

2009-02-24 14:38:27

 
第一步:在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);
//-----------------------------------------------------------------
 
阅读(1154) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

axw_bab2011-12-09 10:46:23

DM9000的功能确实很强大,我有他的驱动,需要的可以跟我联系!mail bab_ren@axwdragon.com