- 论坛徽章:
- 0
|
1.首先,PCI的资源类型本身就有两种类型PCI IO资源空间和PCI MEM资源空间,至于具体的网卡怎么实现利用这两类空间,在不同的网卡里实现不太一样,Intel系列的网卡8257X系列很多都利用了这两类空间,我觉得跟新旧网卡没有任何关系。
2. 网卡寄存器空间大小肯定等于pci_resource_len(pdev, i) 取得的空间大小,因为操作系统在进行PCI空间扫描的时候就是根据不同设备的实现的具体的BAR空间,分配了空间的大小,要是你有兴趣可以见内核pci扫描的代码。这里你有个概念混淆了,PCI的配置空间是通常固定的256字节,它通常在硬件上已经实现了并且填写一些相应的信息(例如Vendor ID、Device ID、设备分类码、BAR空间类型及大小等等。),以便软件扫描获取这些信息,而这个配置空间与上面提到的PCI IO空间及PCI MEM空间是不一样的,后者属于IO资源区,通常驱动程序获取这些PCIIO资源空间后,必须做ioremap后,这样驱动才能直接访问设备上的寄存器,而且寄存器所用的空间大小可以随意大,有些如显卡可以达到2G都是可以的,与配置空间大小没有任何关系的。
3. 没有看具体的网卡datasheet,不是很清楚。 |
|