文档详情

网卡设备驱动.pdf

发布:2025-02-23约7.23万字共47页下载文档
文本预览下载声明

网卡设备驱动

1.8139too网卡设备简介

一个PCI设备,总共有三个地址空间:内存,端口和配置。内存和端口其实是同一个内容

的不同访问路径而已。PCI设备的配置空间是标准化的,每个PCI设备的配置空间的前64

个字节的含义都是一样的。但各个设备的内存和端口空间是完全不一样的。在硬件概念上,

设备的I/内存和I/端口空间没有区别,其实都是设备拥用的一些读写寄存器。

8139too网卡拥有256字节的读写寄存器空间。它的整个布局如下:

/*Symbolicoffsetstoregisters.*/

enumRTL8139_registers{

MAC0=0,/*Ethernethardwareaddress.*/

MAR0=8,/*Multicastfilter.*/

TxStatus0=0x10,/*Transmitstatus(Four32bitregisters).*/

TxAddr0=0x20,/*Txdescriptors(alsofour32bit).*/

RxBuf=0x30,

ChipCmd=0x37,

RxBufPtr=0x38,

RxBufAddr=0x3A,

IntrMask=0x3C,

IntrStatus=0x3E,

TxConfig=0x40,

RxConfig=0x44,

Timer=0x48,/*Ageneral-purposecounter.*/

RxMissed=0x4C,/*24bitsvalid,writeclears.*/

Cfg9346=0x50,

Config0=0x51,

Config1=0x52,

FlashReg=0x54,

MediaStatus=0x58,

Config3=0x59,

Config4=0x5A,/*absentonRTL-8139A*/

HltClk=0x5B,

MultiIntr=0x5C,

TxSummary=0x60,

BasicModeCtrl=0x62,

BasicModeStatus=0x64,

NWayAdvert=0x66,

NWayLPAR=0x68,

NWayExpansion=0x6A,

/*Undocumentedregisters,butrequiredforproperoperation.*/

FIFOTMS=0x70,/*FIFOControlandtest.*/

CSCR=0x74,/*ChipStatusandConfigurationRegister.*/

PARA78=0x78,

1/47

PARA7c=0x7c,/*Magictransceiverparameterregister.*/

Config5=0xD8,/*absentonRTL-8139A*/

};

每个寄存器都有它特殊的含义和用途。举个例子(我们假设使用I/O内存的方式,ioaddr

为设备内存映射在CPU内存地址空间的起始地址,下述代码能读取板卡的版本号):

#defineHW_REVID(b30,b29,b28,b27,

显示全部
相似文档