`
huozheleisi
  • 浏览: 1235565 次
文章分类
社区版块
存档分类
最新评论

PCI配置空间和PCI存储空间

 
阅读更多

CPU对PCI 设备的配置,是为了完成PCI 设备存储空间的地址分配、PCI 设备功能设置等工作。配置操作时,CPU通过北桥芯片实现设备片选。
配置寄存器组内保留了对PCI 设备的基本特性进行详尽说明的可读信息,CPU读取这些信息后,就可以为PCI 设备设定符合需要的配置内容,从而实现自动配置。这些可读信息包括:
Vendor ID :设备供应商编号,由PCI SIG 国际组织分配。
Device ID :特定设备编号,由设备供应商分配。
Revision ID :设备的特定版本号,由设备供应商分配。
Class Code :设备的功能类别编号。
Header Type :指示Header 中从地址10H到3FH区域的内容格式,同时指示该设备是否为多功能设备。
PCI 存储空间不同于PCI 配置空间。PCI 存储空间可以存放PCI 设备的特殊功能寄存器,也可以用做数据缓冲和存储区域。
PCI 存储空间分为MEMORY空间和I/O空间两类,它们独立寻址,并使用不同的总线操作命令进行访问。MEMORY空间适用于设备功能寄存器较多或数据流量较大的场合,例如网口芯片、PCI-PCI 桥等。I/O 空间适用于设备功能寄存器较少或数据流量较小的场合,例如串口芯片、LED控制寄存器等。但在地址空间比较充裕的条件下,也有把范围较小的存储区放入MEMORY空间的做法。
操作响应者根据操作发起者发出的总线操作命令类型,来识别当前操作是指向MEMORY空间还是I/O空间。
配置寄存器组中会有一个或多个基址寄存器BAR(Base Address Register),用于保存指向PCI 存储空间的指针,同时BAR中可读不可写的位数决定了该存储空间的大小。BAR的最低位是只读位,它定义了BAR的空间属性。当BAR指向PCI MEMORY存储空间时,该位读回为0;当BAR指向PCI I/O存储空间时,该位读回为1。 由于BAR的这一属性,使得PCI 设备占用的存储区域是放在MEMORY空间,还是放在I/O空间,完全由设备制造商决定,用户无法修改。
单个设备/功能的PCI MEMROY空间的容量可选取16byte~2Gbyte。但为了减少参与地址译码的地址线数量,PCI 规范建议MEMORY空间分配不小于4Kbyte。
单个设备/功能的 PCI I/O空间的容量可选取4byte~256byte ,不允许超过256byte。

访问PCI 存储空间时,都使用“BAR指针+地址偏移量”作为存储空间的访问地址。因此,为每个PCI 设备/功能分配合理的地址空间,保证设备/功能间的存储空间不发生重叠,是PCI 设备配置操作的一项重要内容。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/crazyjiang/archive/2009/06/01/4232526.aspx

分享到:
评论

相关推荐

    PCI总线协议中文版本翻译过来的

    PCI 存储空间不同于PCI 配置空间。PCI 存储空间可以存放PCI 设备的特殊功能寄存器,也可以用做数据缓冲和存储区域。 PCI 存储空间分为MEMORY空间和I/O空间两类,它们独立寻址,并使用不同的总线操作命令进行访问。...

    解释不同的PCI空间信息

    配置寄存器组中会有一个或多个基址寄存器BAR(Base Address Register),用于保存指向PCI 存储空间的指针,同时BAR中可读不可写的位数决定了该存储空间的大小。BAR的最低位是只读位,它定义了BAR的空间属性。当BAR...

    Linux编程--Linux内核

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    LINUX编程白皮书

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    Linux内核 内容很全

    ISA桥 51 5.5 PCI-PCI 桥 51 5.5.1 PCI-PCI桥:PCI I/O和存储地址 空间的窗口 51 5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53...

    Infortrend EonStor磁盘阵列成为现代数字图书馆建设的主角

    Infortrend公司根据客户需求,为其选配了EonStor F16F-R4031-45磁盘阵列一台,成功解决了图书馆电子资料系统的后端存储问题,为用户提供了一个大容量、高性能、高可靠的存储空间。EonStor F16F-R4031-45采用最新ASIC...

    Linux编程从入门到精通

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    Linux编程白皮书

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    windows驱动开发技术详解-part2

     第3章 Windows驱动编译环境配置、安装及调试  本章将带领读者一步步对驱动程序进行编译、安装和简单的调试工作。这些步骤虽然简单,但往往困 惑着初次接触驱动程序的开发者。  3.1 用C语言还是用C++语言  ...

    Windows驱动开发技术详解的光盘-part1

     从Windows最基本的两类驱动程序的编译、安装、调试入手讲解,非常容易上手,用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发,归纳了多种调试驱动程序的高级技巧,如用WinDBG和VMWARE软件对...

    LINUX编程白皮书 (全集)

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    Linux编程资料

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    linux编程白皮书

    5.5.2 PCI-PCI桥:PCI配置周期和PCI 总线编号 52 5.6 Linux PCI初始化 53 5.6.1 Linux内核PCI数据结构 53 5.6.2 PCI设备驱动程序 53 5.6.3 PCI的BIOS函数 56 5.6.4 PCI修正过程 57 第6章 中断处理与设备驱动程序 60...

    服务器解决方案知识讲解.doc

    " "440GB " " " "网络 " "集成10/100/1000以太网 " " " "电源(标配/最大) " "1300W 1或2/2热插拔 " " " "热插拔组件 " "电源、风扇、硬盘驱动器和PCI-X 适配器 " " " "RAID 支持 " "标准配置 RAID1,可选RAID-5 " ...

    HP电脑培训资料.pptx

    第三章 惠普产品线 a1110cl(17寸纯平)和a1117cl(17寸液晶) 配置: AMD3200+/256M/80G/DVD/9合1读卡器/1394火线接口 卖点: 比较适合家庭上网,学习,性价比高,升级空间大,虽然是集成显卡,但是平时上网,看电影...

Global site tag (gtag.js) - Google Analytics