基于S3C2410的CS8900A驱动 for Linux 2.6.27 移植成功

关键词: ARM9, S3C2410, CS8900, 驱动程序移植, Linux 2.6.27
按照2.6.25内核的cs8900驱动移植方法对2.6.27内核中的drivers/net/cs89x0.c文件进行修改,修改的部分完全一样:
参考 http://blog.csdn.net/onlyzhangqin/archive/2008/05/25/2479813.aspx

Linux内核升级到2.6.27之后,代码结构发生了一些改变,这些改变包括一些变量的命名、部分头文件的文件名和所在的目录等。因此,将 CS8900驱动移植到该版本内核时,需要修改多处源码:
  (参考 http://blog.csdn.net/onlyzhangqin/archive/2008/05/25/2479813.aspx)

1、加入头文件#include <linux/fs.h>,不然在cs8900_cleanup()函数中使用unregister_chrdev时,会提示未声明;

2、在include/asm-arm/arch-s3c2410/下新建smdk2410.h,并且在cs8900.c中包含。内容如下:


[root@Sure linux-2.6.27.3]# vim include/asm-arm/plat-s3c24xx/smdk2410.h

  1 //++++>
  2 #define pSMDK2410_ETH_IO __phys_to_pfn(0x19000000)
  3 #define vSMDK2410_ETH_IO 0xe0000000
  4 #define SMDK2410_ETH_IRQ __IRQ_EINT9  //以上和之前老版本移植时一样

  5  //以下新加的内容,此版本内核没有定义的一些宏,是从老版本内核的irq.h文件中弄过来的
  6 #define __IRQT_FALEDGE IRQ_TYPE_EDGE_FALLING
  7 #define __IRQT_RISEDGE IRQ_TYPE_EDGE_RISING
  8 #define __IRQT_LOWLVL IRQ_TYPE_LEVEL_LOW
  9 #define __IRQT_HIGHLVL IRQ_TYPE_LEVEL_HIGH
 10 #define IRQT_NOEDGE (0)
 11 #define IRQT_RISING (__IRQT_RISEDGE)
 12 #define IRQT_FALLING (__IRQT_FALEDGE)
 13 #define IRQT_BOTHEDGE (__IRQT_RISEDGE|__IRQT_FALEDGE)
 14 #define IRQT_LOW (__IRQT_LOWLVL)
 15 #define IRQT_HIGH (__IRQT_HIGHLVL)
 16 #define IRQT_PROBE IRQ_TYPE_PROBE
 17 //<++++ Jacky_Xu @ 2008.10.25

关键词: ARM9, S3C2410, CS8900, 驱动程序移植, Linux 2.6.27

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值