Linux-2.6.32.67内核裁剪与移植之DM9000网卡驱动移植(3)

本文详细介绍了在Linux-2.6.32.67内核上移植DM9000网卡驱动的步骤,包括修改arch/arm/mach-s3c2440/mach-smdk2440.c、arch/arm/plat-s3c24xx/devs.c和dm9000.c的源码,设置中断触发方式,配置内核选项以及解决开发板无法ping通的问题。最终通过修改rcS文件实现上电自动配置IP地址,确保了DM9000网卡移植的成功。
摘要由CSDN通过智能技术生成

                                  Linux-2.6.32.67内核裁剪与移植之DM9000网卡驱动移植

                                                                                           作者:赵凯

                                                                                           QQ: 1205958201

  

修改arch/arm/mach-s3c2440/mach-smdk2440.c182行,Platform_device结构体中加入:

static struct platform_device *smdk2440_devices[] __initdata = {

    &s3c_device_usb,

    &s3c_device_lcd,

    &s3c_device_wdt,

    &s3c_device_i2c0,

    &s3c_device_iis,

   &s3c_device_dm9000,

};

修改arch/arm/plat-s3c24xx/devs.c在第38行之后加入:

#include <linux/dm9000.h>

     /*DM9000*/

static struct resource s3c_dm9000_resource[] = {

[0] = {

    .start = S3C2410_CS4,

    .end = S3C2410_CS4 + 3,

    .flags = IORESOURCE_MEM,

},

[1] = {

    .start = S3C2410_CS4 + 4,

    .end = S3C2410_CS4 + 4 + 3,

    .flags = IORESOURCE_MEM,

},

[2] = {

    .start = IRQ_EINT18, /*use eint18 GPG10*/

    .end = IRQ_EINT18,

    .flags = IORESOURCE_IRQ,

}

};

static struct dm9000_plat_data s3c_dm9000_platdata = {

    .flags = DM9000_PLATF_16BITONLY,

};

extern 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_dm9000_platdata,

}

};

EXPORT_SYMBOL(s3c_device_dm9000);

arch/arm/plat-s3c/include/plat/devs.h中加入一行:

extern struct platform_device s3c_device_dm9000;

 

修改dm9000.c源码,在drivers/net/dm9000.c中

1. 添加头文件,在第43行加入:

#if defined(CONFIG_ARCH_S3C2410)

#include <mach/regs-mem.h>

#endif

2. 指定注册时的中断触发方式,在第1085行加入:

static int

dm9000_open(struct net_device *dev)

{

    board_info_t *db = netdev_priv(dev);

    unsigned long irqflags = db->irq_res->flags &

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值