热度 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