手把手教你移植linux内核---------OK6410(四)

OK6410--DM9000网卡驱动移植:

         在linux的内核中已经带有了DM9000的网卡驱动,所以网卡驱动我们不需要再去写或者移植了,只需要添加一个平台信息就可以。

         首先在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加都文件#include <linux/dm9000.h> 


        在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加dm9000的平台信息:

#define S3C64XX_PA_DM9000    (0x18000000)
#define S3C64XX_SZ_DM9000    SZ_1M
static struct resource ok6410_dm9000_resources[] = {
    [0] = {
    	.start= S3C64XX_PA_DM9000,
    	.end= S3C64XX_PA_DM9000 + 3,
    	.flags= IORESOURCE_MEM,
    },
    [1] = {
    	.start= S3C64XX_PA_DM9000 + 4,
    	.end= S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,
    	.flags= IORESOURCE_MEM,
    },
    [2] = {
    	.start= IRQ_EINT(7),
    	.end= IRQ_EINT(7),
    	.flags= IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
    },
};

static struct dm9000_plat_data ok6410_dm9000_platdata = {
	.flags= DM9000_PLATF_16BITONLY,
	.dev_addr= { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },
};

static struct platform_device ok6410_device_dm9000 = {
	.name= "dm9000",
	.id= 0,
	.num_resources= ARRAY_SIZE(ok6410_dm9000_resources),
	.resource= ok6410_dm9000_resources,
	.dev= {
	.platform_data = &ok6410_dm9000_platdata,
	}
};
然后在

然后在static struct platform_device *ok6410_devices[] __initdata =里面添加

&ok6410_device_dm9000,
因为我们是直接复制已有的板极文件,所有有些驱动的资源会发生冲突,为了避免资源的冲突发生我们屏蔽掉

//&ok6410_smsc911x,
##############################################################################################################

下面开始配置:





配置如上。

#####################################################################################################

进行make uImage

下载内核到开发板会如果出现了下面红字部分则表明网卡启动成功了

Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 69) is a S3C6400/10
console [ttySAC0] enabled
s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 70) is a S3C6400/10
s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 71) is a S3C6400/10
s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 72) is a S3C6400/10
brd: module loaded
loop: module loaded
at24 0-0050: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
at24 1-0057: 16384 byte 24c128 EEPROM, writable, 1 bytes/write
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
dm9000 Ethernet Driver, V1.31
eth0: dm9000a at d0818000,d0a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
PPP generic driver version 2.4.2
PPP BSD Compression module registered
PPP Deflate Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24

libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
usbcore: registered new interface driver rt73usb
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
s3c2410-ohci s3c2410-ohci: init err (00000000 0000)
ohci_hcd: can't start s3c24xx
s3c2410-ohci s3c2410-ohci: startup error -75


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值