快速业务通道

Solaris的pciutils

作者 佚名技术 来源 操作系统 浏览 发布时间 2012-06-27

最近在Solaris上成功编译了pciutils,想试试的朋友可以从下面的地址下载:

http://blogs.sun.com/mishuang/resource/lspci
http://blogs.sun.com/mishuang/resource/setpci

一直觉得PCI很神秘,看看了pciutils的代码和PCI Local Bus Specification后,对PCI稍微有了点了解,我觉得pciutils有两个关键的函数,一个conf1_read,另外一个是conf1_write。这两个函数完全是根据PCI Local Bus Specification下面这一节编写的:

3.2.2.3.2. Software Generation of Configuration Transactions

conf1_read(struct pci_dev *d, int pos, byte *buf, int len)
{
...
outl(0x80000000 | ((d->bus & 0xff) << 16) | (PCI_DEVFN(d->dev, d->func) << 8) | (pos&~3), 0xcf8);
...
}

bit31: enable
bit16-bit23: Bus Number
bit11-bit15: Device Number
bit8-bit10: Function Number
bit2-bit7: Register Number

将这些位在I/O Port 0xcf8设定好之后,就可以从I/O port 0xcfc读出相应的值了。

当然进行这些操作之前需要改变I/O privilege level

SunOS: sysi86(SI86V86, V86SC_IOPL, PS_IOPL)
Linux: iopl(3)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号