DM9000的移植(S3C2440)
来源:互联网 发布:如何修改淘宝网会员名 编辑:程序博客网 时间:2024/05/05 00:59
我们都知道liunx内核是通过platform模型来管理驱动和设备的,linux内核已经集成了相应的关于dm9000网卡的驱动程序,而我们要做的移植就是根据不同类型的板子把相应的设备资源添加或修改进内核,使内核能将驱动和设备来联系起来。
首先我们进入到arch/arm/mach-s3c2440/mach-smdk2440.c这个文件中,
找到这一段代码
static struct platform_device *smdk2440_devices[] __initdata = { &s3c_device_wdt, &s3c_device_i2c0, &s3c_device_iis, '&s3c_device_dm9000,' ... }
加入高亮部分
然后第二步vi arch/arm/plat-s3c24xx/devs.c
添加头文件#include
static struct resource s3c_dm9000_resource[] = { [0] = { .start = S3C2410_CS4 + 0x300, .end = S3C2410_CS4 + 0x300 + 0x3, .flags = IORESOURCE_MEM, }, [1]={ .start = S3C2410_CS4 + 0x300 + 0x4, //CMD pin is A2 .end = S3C2410_CS4 + 0x300 + 0x4 + 0x7c, .flags = IORESOURCE_MEM, }, [2] = { .start = IRQ_EINT7, .end = IRQ_EINT7, .flags = IORESOURCE_IRQ, }, };
其中有dm9000所对应的内存空间,所使用的中断,和相应的地址线和数据线。
static struct dm9000_plat_data s3c_device_dm9000_platdata = { .flags= DM9000_PLATF_16BITONLY,};
16位的数据总线
struct platform_device s3c_device_dm9000 = { .name= "dm9000", .id= 0, .num_resources= ARRAY_SIZE(s3c_dm9000_resource), .resource= s3c_dm9000_resource, .dev= { .platform_data = &s3c_device_dm9000_platdata, }};
相应的设备的名字和id
然后在include/asm-arm/plat-s3c24xx/devs.h中添加
extern struct platform_device s3c_device_dm9000;
以便其他c文件来使用其设备信息
最后vi drivers/net/dm9000.c
找到dm9000_open函数
dm9000_open(struct net_device *dev) { board_info_t *db = netdev_priv(dev);- unsigned long irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK;+ unsigned long irqflags;++ /* Modified by guowenxue, 2011.08.30 */+ db->irq_res->flags |= IRQ_TYPE_EDGE_RISING; + irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK;+ irq_set_irq_type(dev->irq, IRQ_TYPE_EDGE_RISING); if (netif_msg_ifup(db)) dev_dbg(db->dev, "enabling %s\n", dev->name); ... };
修改一下关于中断的一些操作。
接下来就是一些linux内核的配置了,不详述。
OK 移植完成。
0 0
- DM9000的移植(S3C2440)
- s3c2440 DM9000驱动移植
- s3c2440 DM9000驱动移植
- s3c2440 dm9000网卡驱动移植
- 基于S3C2440的Linux-3.6.6移植——DM9000网卡驱动移植
- dm9000的移植
- u-boot-2011.06在基于s3c2440开发板的移植之DM9000
- linux2.6.32 内核移植s3c2440 - DM9000网卡驱动移植
- s3c2440 DM9000网卡移植,RTC时钟使能
- s3c2440的网卡接口扩展(DM9000)
- DM9000网卡驱动的移植
- 网卡DM9000的驱动移植
- dm9000移植
- 06-S3C2440学习之移植2012u-boot到S3C2440(移植过程四)支持Nand Flash+支持DM9000网卡
- S3C2440读写DM9000寄存器
- S3C2440+DM9000+隔离变压器解决方案。
- Mini2440 dm9000的网卡驱动移植
- linux-2.6.30的DM9000移植
- Android网络编程五:(3)Volley实例
- 解决VS2008,重新生成解决方案,很慢
- 深入解析python版SVM源码系列(二)——简化版SMO算法
- 马氏距离(Mahalanobis距离)
- iOS Auto Layout
- DM9000的移植(S3C2440)
- 在旋转数组中查找某个数
- 泛型第四课,自定义实现迭代器、深入迭代器、迭代器原理,面向对象
- iBatis框架使用 编程4步
- matlab简单基础
- Debugging DirectX Graphics
- Java基础:IO 流中的 flush
- IOS网络开发NSURLSession(二)DataTask+Demo
- C语言学习(1)