pci配置空间读取实例_第1页
pci配置空间读取实例_第2页
pci配置空间读取实例_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、原贴内容:听说PCI配置空间一共是256个字节,0cf8-0cff只有8个字节.那256个字节是放在什么地方的?内存?在x86 AT兼容机上访问PCI配置空间的方法是读写cf8h到cfch的10空 间。其中cf8h-cfbh是地址空间,cfch-cffh是数据空间。访问的时候具体做法是 先把一个32bit的地址信息out到cf8h,然后再读写cfch的数据。这个32bit的地址信息的含义是这样的,它包括了 PCI的bus号,device 号,dunction号以及register号。一个机器可以有256条PCI总线,一条总线上有 32个设备,一个设备可以有8个functiono在确定了了这3个

2、数以后,就能访问 PCI配置空间了。一个设备可以是一个真正的PCI设备,也可以是一个PCI桥或者 是cardbus桥。他们的配置空间的各个byte的定义不同。现在拿一个真正的设备 举例。他的配置空间大小是256bytes,分成头部和自定义部分。头部中的各个特定 btyes是定死的,每个PCI设备都要实现。厂商号和设备号就是第一二个byteo通 过读取他们就可以获得相应信息。你把这256字节和cf8h-cfch搞混了。后者是10端口,而前者是存在于PCI 设备上的,相当于特殊的寄存器,并不占用10或者内存空间。至于为PCI设备分配 内存空间那又是另一个概念了。以下是一个PCI读入函数:;GET_

3、PCI:改变PCI配置空间信息;入口: CL/CX要读入的寄存器也就是设备号,func号,寄存器号(不包括总线号);出口: AL/AX读入值;破坏:AX, DXGET.PCI PROC NEARxchg ax,ex ;shl ecx,16 ;xchg ax, ex ;保存 axmov ax, 8000H :PCI地址的最高位置1来是的这次读写有效;详细参见PCI标准文档shl eax, 16 ;形成地址高16位,总线号0;这个总线号0与具体芯片组有关mov ax, ex ;读入设备号,func号,寄存器号(低八位)and al, NOT 03h ;把bitO和bitl清零,表示是一个type。配置读写;typeO表示读写本bus设备;typel表示读写本bus上的PCI桥连接的那个bus的设备;具体看文档;山此只能得到4的倍数的的配置空间里的bytes,但是不要紧;因为读入 cfch-cffh 的是 32bits, =8*4;正好可以读入不能访问的bytesmov dx, OcfSh ;往 0cf8h 写地址out dx, eaxadd dl, 4 ;0cfch 数据口,mov al, cland al, 03h ;取4个bytes中的需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论