Linux開發十八_網卡驅動

Linux開發十八

網卡驅動

象棋小子    1048272975

Internet作爲全球最大的互聯網絡,幾乎總彙了全球的信息資源,越來越多的設備需要連接Internet,共享信息資源。Linux內核已經支持dm9000網卡驅動。

1. dm9000設備

dm9000設備包含了名字、獨有的資源等等一些驅動程序的硬件或自定義信息。通過platform_add_devices(platform_device_register)函數將定義的平臺設備註冊到內核中,用於匹配設備驅動。

內核在drivers\net\ethernet\davicom\dm9000.c中實現了dm9000的網卡驅動, dm9000設備平臺代碼如下。

#include <linux/dm9000.h>

#define MACH_HOME2416_DM9K_BASE        (S3C2410_CS1 + 0x0)

/* DM9000AEP 10/100 ethernet controller*/

static struct resourcehome2416_dm9k_resource[] = {

       [0]= DEFINE_RES_MEM(MACH_HOME2416_DM9K_BASE, 4),

       [1]= DEFINE_RES_MEM(MACH_HOME2416_DM9K_BASE + 4, 4),

       [2]= DEFINE_RES_NAMED(IRQ_EINT4, 1, NULL, IORESOURCE_IRQ \

                                          |IORESOURCE_IRQ_HIGHEDGE),

};

 

static struct dm9000_plat_datahome2416_dm9k_pdata = {

       .flags             = (DM9000_PLATF_16BITONLY |DM9000_PLATF_NO_EEPROM),

       .dev_addr= {0x00, 0x22, 0x12, 0x34, 0x56, 0x90}

};

 

static struct platform_devicehome2416_device_eth = {

       .name            = "dm9000",

       .id          = -1,

       .num_resources    = ARRAY_SIZE(home2416_dm9k_resource),

       .resource       = home2416_dm9k_resource,

       .dev        = {

              .platform_data     = &home2416_dm9k_pdata,

       },

};

在static struct platform_device*home2416_devices[]板級平臺設備列表中加入&home2416_device_eth,使dm9000設備能夠註冊到內核中。

2. 內核配置

Linux配置支持dm9000設備驅動,選中Device Drivers->Network devicesupport->Ethernet driver support->DM9000 support。

Linux配置支持tcpip協議,選中Networkingsupport->Networking options->TCP/IP Networking。

3. 網卡測試

網線連接板端以及主機,主機端採用靜態ip,192.168.0.10。板啓動後,設置板端ip,192.168.0.20。

ifconfig eth0 192.168.0.20 up

主機端ping板端,ping 192.168.0.20。

板端ping主機端,ping 192.168.0.10。

4. 附錄

https://pan.baidu.com/s/1slczwhJ

bootloader源碼以及使用說明

https://pan.baidu.com/s/1eRDJtNs

Qt5.8官網源碼

https://pan.baidu.com/s/1nuGmSqt

本系列例程的根文件系統

https://pan.baidu.com/s/1i5btLGT

opev3.2.0官網源碼

https://pan.baidu.com/s/1pLpuHw3

yaffs官網源碼 

https://pan.baidu.com/s/1bpkZynt

busybox-1.26.2官網源碼

https://pan.baidu.com/s/1i4EtjfR

tslib官網源碼

https://pan.baidu.com/s/1i5MGRhb

mplayer-1.3.0官網源碼

https://pan.baidu.com/s/1sl0fXlr

基於S3C2416修改的linux-4.10.10源碼

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章