亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1606 | 回復(fù): 0
打印 上一主題 下一主題

DM9000網(wǎng)卡驅(qū)動(dòng)的移植——Linux-2.6.30.4在2440上的移植之DM9000 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-23 03:03 |只看該作者 |倒序?yàn)g覽

本文選自:http://blog.csdn.net/baozhongchao/article/details/4538182


  1. 特別說(shuō)明:本人是按第二種方法移植的,因?yàn)槲沂芩螌毴A老師的影響很深。他說(shuō)過(guò),移植的時(shí)候,跟CPU無(wú)關(guān)的驅(qū)動(dòng) ,即跟平臺(tái)有關(guān)的驅(qū)動(dòng),應(yīng)該只在板文件中修改。這里,我們只需要修改DM9000平臺(tái)對(duì)應(yīng)設(shè)備的寄存器和數(shù)據(jù)址進(jìn)行賦值,并指定正確的IRQ資源即可。


a)      #make menuconfig

進(jìn)入配置菜單選中

driver——

net——

10/100M net——

DM9000 support

b)     

 在arch/arm/plat-s3c24xx/devs.c也可做在arch/arm/mach-s3c2440/mach-smdk2440.c中的

 中加入DM9000A的端口及設(shè)備說(shuō)明,仿照前面的設(shè)備添加就是了結(jié)構(gòu)都一樣就是值不同。

static struct resource s3c_dm9k_resource[] = {

         [0] = {

                   .start = 0x18000000,                  

//dm9000a的片選我的板子接的是nGCS3,這里沒(méi)有加300的基址

                   .end   = 0x18000003,               

//這里搞不懂為什么是加3[可能因?yàn)槭菈K設(shè)備吧]

                   .flags = IORESOURCE_MEM,

         },

         [1] = {

                   .start = 0x18000004,                  

//因?yàn)?/SPAN>CMD接的是A2,其為1時(shí)就是數(shù)據(jù)端口

                   .end   = 0x18000007,               

//0X3F,0X7F,為什么是這個(gè)地址

                   .flags = IORESOURCE_MEM,

         },

         [2] = {

                   .start = IRQ_EINT9,                            //根據(jù)電路圖接的是EINT9管腳

                   .end   = IRQ_EINT9,

                   .flags = IORESOURCE_IRQ,

//               .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, //at2440evb中的設(shè)置

         }

};

 

static struct dm9000_plat_data s3c_device_dm9k_pdata = {

//      .flags         = (DM9000_PLATF_16BITONLY|DM9000_PLATF_NO_EEPROM), //at2440evb中的設(shè)置

         .flags         = DM9000_PLATF_16BITONLY

};

 

static struct platform_device s3c_device_dm9k = {

         .name                 = "dm9000",

         .id              = -1,

         .num_resources        = ARRAY_SIZE(s3c_dm9k_resource),

         .resource  = s3c_dm9k_resource,

         .dev           = {

                                     .platform_data          = &s3c_device_dm9k_pdata,

         },

};

 

EXPORT_SYMBOL(s3c_device_dm9k);

c)      arch/arm/plat-s3c24xx/include/plat/devs.h中添加網(wǎng)卡聲明

extern struct platform_device s3c_device_dm9k;

d)      arch/arm/mach-s3c2440/ mach-s3c2440.c中將dm9000a加到平臺(tái)設(shè)備初始化列表中

static struct platform_device *smdk2440_devices[] __initdata = {

         &s3c_device_usb,

         &s3c_device_lcd,

         &s3c_device_wdt,

         &s3c_device_i2c,

         &s3c_device_iis,

         &s3c_device_dm9k,

};至此,向內(nèi)核注冊(cè)DM9000A已經(jīng)完成。

e)      drivers/net/dm9000.c開(kāi)頭中添加

#include <mach/regs-gpio.h>

#define     EINTMASK      (0x560000a4)            //外部中斷屏蔽

#define     EXTINT1  (0x5600008c)                     //外部中斷方式

#define     INTMSK  (0x4a000008)                     //中斷屏蔽

dm9000_probe()ret = register_netdev(ndev); 1392之前添加

memcpy(ndev->dev_addr,"/oandy1",6);

extint1      =ioremap_nocache(EXTINT1,0x00000004);

intmsk     =ioremp_nocache(INTMSK,4);

 

s3c2410_gpio_cfgpin(s3c2410_GPG1,s3c2410_GPG1_EINT9); //設(shè)置GPG1為中斷功能

writel(readl(extint1)|0x40,extint1);                   //中斷為上升沿

writel(readl(intmsk)&0xfff1,intmsk);

 

iounmap(intmsk);

iounmap(extint1);

f)      第二種方案是直接參考/arch/arm/mach-s3c2440/mach-at2440evb.c進(jìn)行修改,我按照此方案更改完全有效。

i.       修改/arch/arm/mach-s3c2440/mach-smdk2440.c拷貝/arch/arm/mach-s3c2440/mach-at2440evb.c中關(guān)于DM9000AEP的代碼進(jìn)行修改

         #include <linux/dm9000.h>

static struct resource s3c_dm9k_resource[] = {

         [0] = {

                   .start = S3C2410_CS3,

                   .end   = S3C2410_CS3 + 3,

                   .flags = IORESOURCE_MEM

         },

         [1] = {

                   .start = S3C2410_CS3 + 4,

                   .end   = S3C2410_CS3 + 7,

                   .flags = IORESOURCE_MEM

         },

         [2] = {

                   .start = IRQ_EINT9,

                   .end   = IRQ_EINT9,

                   .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,

         }

};

 

static struct dm9000_plat_data s3c_dm9k_pdata = {

         .flags                  = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),

};

 

static struct platform_device s3c_device_dm9k = {

         .name                 = "dm9000",

         .id              = -1,

         .num_resources         = ARRAY_SIZE(s3c_dm9k_resource),

         .resource   = s3c_dm9k_resource,

         .dev           = {

                   .platform_data          = & s3c_dm9k_pdata,

         },

};

這段代碼加在static struct platform_device *smdk2440_devices[] __initdata之前修改設(shè)備初始化

static struct platform_device *smdk2440_devices[] __initdata = {

         &s3c_device_usb,

         &s3c_device_lcd,

         &s3c_device_wdt,

         &s3c_device_i2c,

         &s3c_device_iis,

         &s3c_device_dm9k,

};

g)      修改根文件系統(tǒng)/etc/init.d/rcS配置網(wǎng)卡,增加下面的代碼

ifconfig lo 127.0.0.1

ifconfig eth0 hw ether 08:00:3e:26:0a:5b

ifconfig eth0 192.168.1.70

route add default gw 192.168.1.1

h)      配置內(nèi)核:

                   #make menuconfig

                            Device Drivers—

                      Network device support—

                      Ethernet(10 or 10Mbit)—

                      DM9000 support

有圖有真相,下面上圖:

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP