tag 标签: 网卡驱动移植,linux2.6.34

相关博文
  • 热度 9
    2013-8-27 10:15
    636 次阅读|
    0 个评论
          DM9000是10/100M自适应的总线型网卡,Linux中对其支持已经非常完善,不同开发板之间移植、修改主要集中在总线的选择及中断选择上       1)修改arch/arm/mach-s3c2440/mach-smdk2440.c文件,增加以下信息     /****add by dengwei*********************************/     #include     static struct resource s3c_dm9k_resource =     {     .start = S3C2410_CS3,      //网卡连接在CS3总线上(此处跟据不同开发板进行修改)     .end = S3C2410_CS3 + 3,     .flags = IORESOURCE_MEM,     },     =     {     .start = S3C2410_CS3 + 4,   //同上     .end = S3C2410_CS3 + 4 + 3,     .flags = IORESOURCE_MEM,     },     = {     .start = IRQ_EINT7,                //根据硬件外部中断管脚修改此数字     .end = IRQ_EINT7,     .flags = IORESOURCE_IRQ | IRQF_TRIGGER_RISING,     }     };     static struct dm9000_plat_data s3c_dm9k_platdata =     {     .flags =DM9000_PLATF_16BITONLY,     };     struct platform_device s3c_device_dm9k =     {     .name = "dm9000",     .id = 0,     .num_resources = ARRAY_SIZE(s3c_dm9k_resource),     .resource = s3c_dm9k_resource,     .dev =     {     .platform_data= s3c_dm9k_platdata,     }     };     EXPORT_SYMBOL(s3c_device_dm9k); /*************************add by dengwei***************************/       2 ) 修改  arch/arm/mach-s3c2440/mach-smdk2440.c 文件     修改struct platform_device *smdk2440_devices __initdata =     {     s3c_device_ohci,     s3c_device_lcd,     s3c_device_wdt,     s3c_device_i2c0,     s3c_device_iis,     s3c_device_dm9k,            //for dm9000   add by dengwei };       3) 修改 drivers/net/dm9000.c 源码 :     在头文件区增加头文件:     #include     大约1365行左右增加以下代码:     static int __devinit dm9000_probe(structplatform_device *pdev)     {     //add   here  函数开始处     }     /**********add by dengwei******************************************/     view plaincopy     #if defined(CONFIG_ARCH_S3C2440)     int oldval_bwscon = *((volatile unsignedint *)S3C2410_BWSCON);     *((volatileunsigned int *)S3C2410_BWSCON)=(oldval_bwscon~(316))|S3C2410_BWSCON_DW3_16|S3C2410_BWSCON_WS3|S3C2410_BWSCON_ST3; //设置BANK3:总线宽度为16,使能nWAIT     *((volatile unsigned int *)S3C2410_BANKCON3) = 0x1f7c; //设置BANK3的时间参数     #endif /**********add by dengwei****************/       4) 修改 make menuconfig 配置选项 :     Devices  Drivers ---     Network device support---     Ethernet (10 or 100) ---     DM9000support     (4)DM9000maxinum   debug level //仅保留这两个选项,其余的全部去掉       5)重新编译内核,烧入开发板中即可     6)第一次使用的开发板需使用ifconfig eth0 hw ether 12:34:56:78:32:65 设置mac地址     (MAC地址可以随便设置)     使用ifconfigeth0 192.168.220.*设置开发板IP     使用ping命令ping主机即可          原文链接: http://emb.sunplusedu.com/answer/2013/0821/2116.html