资源描述:
《linux-2.6.32.2内核在mini2440上的移植(三)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux-2.6.32.2内核在mini2440上的移植(三)---DM9000网卡驱动移植移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容)1,主机环境:VMare下CentOS5.5,1G内存。2,集成开发环境:ElipseIDE3,编译编译环境:arm-linux-gccv4.4.3,arm-none-linux-gnueabi-gccv4.5.1。4,开发板:mini2440,2Mnorflash,128Mnandflash。5,u-boot版本:u-boot-2009.086,li
2、nux版本:linux-2.6.32.27,参考文章:【1】嵌入式linux应用开发完全手册,韦东山,编著。【2】Mini2440之Linux移植开发实战指南【3】http://linux.chinaunix.net/techdoc/system/2009/08/24/1131864.shtml3.1,移植DM9000网卡驱动【1】设备资源初始化Linux-2..6.32.2已经自带了完善的DM9000网卡驱动驱动(源代码位置:linux-2.6.32.2/drivers/net/dm9000.c),它也
3、是一个平台设备,因此在目标平台初始化代码中,只要填写好相应的结构表即可,具体步骤如下:(1)确认已经添加了驱动所需的头文件dm9000.h:用gedit打开linux-2.6.32.2/arch/arm/mach-mini2440.c,定位到55行附近,加入dm9000.h,如下所示:#include#include#include#include#in
4、clude#include#include(2)填充该平台设备的资源设置定位到210行附近,如入下面代码:taticstructs3c2410_platform_nandmini2440_nand_info={.tacls=20,.twrph0=60,.twrph1=20,.nr_sets=ARRAY_SIZE(mini2440_nand_sets),.sets=mini2440_nand_sets,
5、.ignore_unset_ecc=1,};/*DM9000AEP10/100ethernetcontroller*///定义DM9000网卡设备的物理基地址,以便后面用到#defineMACH_MINI2440_DM9K_BASE(S3C2410_CS4+0x300)//再填充该平台设备的资源设置,以便和DM9000网卡驱动接口配合起来staticstructresourcemini2440_dm9k_resource[]={[0]={.start=MACH_MINI2440_DM9K_BASE,.en
6、d=MACH_MINI2440_DM9K_BASE+3,.flags=IORESOURCE_MEM},[1]={.start=MACH_MINI2440_DM9K_BASE+4,.end=MACH_MINI2440_DM9K_BASE+7,.flags=IORESOURCE_MEM},[2]={.start=IRQ_EINT7,.end=IRQ_EINT7,.flags=IORESOURCE_IRQ
7、IORESOURCE_IRQ_HIGHEDGE,}};/***TheDM9000hasnoeeprom,a
8、ndit'sMACaddressissetby**thebootloaderbeforestartingthekernel.**/staticstructdm9000_plat_datamini2440_dm9k_pdata={.flags=(DM9000_PLATF_16BITONLY
9、DM9000_PLATF_NO_EEPROM),};staticstructplatform_devicemini2440_device_eth={.name="dm9000",.id=-1,.num_resources
10、=ARRAY_SIZE(mini2440_dm9k_resource),.resource=mini2440_dm9k_resource,.dev={.platform_data=&mini2440_dm9k_pdata,},};staticstructplatform_device*mini2440_devices[]__initdata={&s3c_device_usb,&s3c_device_lcd,&s3c_devic