PCI_Express规范第七章解读-Software Initialization and configuration

7.Software Initialization and configuration

PCI EXPRESS Configuration model 支持两种配置空间的访问机制:

-PCI 兼容配置机制:100%的二进制兼容PCI 2.3中定义的,以及兼容早期的OS或类似的总线枚举和配置软件。

-PCI Express增强配置机制:提供了更大有效的配置空间,以及更有效的访问机制。

7.1 Configuration Topology

-PCI Express Link:A Link represents a dual-simplex communications channel between two components。

2a345d4417b35dc2b3b7dcd6.jpg

-Root Complex: RC的主要功能与PCI总线中的HOST主桥类似,但是在HOST主桥的基础上增加了许多功能。

7.2 PCI Express Configuration Mechanisms

PCI Express 配置空间图:

862e633df6c2d440bba1672c.jpg

-1.PCI Express把PCI SPEC 2.3中规定的配置空间从256byte扩展了至4096 byte。

-2.PCI Express configuration space分为两部分:

--1.PCI 2.3兼容部分,它包含每一个逻辑设备的配置空间的第一个256bytes。
--2.PCI Express扩展部分,包括剩下的区域。

-3.PCI 2.3兼容部分可以用任何一种在PCI 2.3中定义的访问机制访问,也可以用PCI EXPRESS定义的配置访问方式 访问(后面介绍)。

-4.PCI Express扩展空间部分只能用PCI Express configuration access mechanism。

对于PCI 2.3兼容部分的访问方式如下:

1.每一個PCI device都有其 unique PFA(PCI Function Address). PFA由 bus number,device number & function number所組成.例如. USB device PFA is (0,6,0) <- USB is a PCI device and its bus/dev/function is 0/6/0。


   -- 有了PFA,就可以存取其 PCI configuration registers.

Ex. write USB PCI register 43h bit1 = 1


mov eax, 80003040h
mov dx, 0cf8h
out dx, eax

mov dx, 0cffh
in al, dx
or al, 00000010b
out dx, al

对于.PCI Express扩展空间部分的访问:
Ex. mov ax, [50400000h] <- read device (4,0,0)'s register 0;2 bytes
Note: PCIe extended base address 要 reserve and report to OS. Size is 256MByte. 這是BIOS需要做的. (當然,BIOS也要將此 base address寫入 chipset register,讓 chipset 知道:有這樣的 cycle時,是給PCIe device的 ! )-繁体字部分来自网络

here 50000000h: PCIe extended base address. 可以從 chipset register得知
     bit[27:20]: Bus information
     [19:15]: Device information
     [14:12]: Function information
     [11: 8]: Extended Register
     [7:2]: DW number
     [1:0]: Byte enable

因此,只要知道 PCIe extended base address,就可以像以前一樣,可以任意存取 PCIe config registers, 即可以访问 0FFh

NOTE:实际上,pcie device可以由其PCI 2.3兼容部分里的Capabilities Pointer Register识别,因为在眾多的 capabilities中,會有一個 PCIe capability;其 ID value = 10h.

1c627bd675ad8b6f06088b99.jpg

ID

Description

00h

Reserved.

01h

PCI Power Management Interface. Refer to "The PM Capability Register Set" on page 585.

02h

AGP. Refer to "AGP Capability" on page 845. Also refer to the MindShare book entitled AGP System Architecture, Second Edition (published by Addison-Wesley).

03h

VPD. Refer to "Vital Product Data (VPD) Capability" on page 848.

04h

Slot Identification. This capability identifies a bridge that provides external expansion capabilities (i.e., an expansion chassis containing add-in card slots). Full documentation of this feature can be found in the revision 1.1 PCI-to-PCI Bridge Architecture Specification. For a detailed, Express-oriented description, refer to "Introduction To Chassis/Slot Numbering Registers" on page 859 and "Chassis and Slot Number Assignment" on page 861.

05h

Message Signaled Interrupts. Refer to "The MSI Capability Register Set" on page 332.

06h

CompactPCI Hot Swap. Refer to the chapter entitled Compact PCI and PMC in the MindShare book entitled PCI System Architecture, Fourth Edition (published by Addison-Wesley).

07h

PCI-X device. For a detailed description, refer to the MindShare book entitled PCI-X System Architecture (published by Addison-Wesley).

08h

Reserved for AMD.

09h

Vendor Specific capability register set. The layout of the register set is vendor specific, except that the byte immediately following the "Next" pointer indicates the number of bytes in the capability structure (including the ID and Next pointer bytes). An example vendor specific usage is a function that is configured in the final manufacturing steps as either a 32-bit or 64-bit PCI agent and the Vendor Specific capability structure tells the device driver which features the device supports.

0Ah

Debug port.

0Bh

CompactPCI central resource control. A full definition of this capability can be found in the PICMG 2.13 Specification (http://www.picmg.com).

0Ch

PCI Hot-Plug. This ID indicates that the associated device conforms to the Standard Hot-Plug Controller model.

0Dh-0Fh

Reserved.

10h

PCI Express Capability register set (aka PCI Express Capability Structure). For a detailed explanation, refer to "PCI Express Capability Register Set" on page 896.

11h-FFh

Reserve

3.8.2.12 HECBASE - PCI Express Extended Configuration Base Address Register
This register defines the base address of the enhanced PCI Express configuration
memory.

Device: 16
Function: 0
Offset: 64h
Version: Intel 5000P Chipset, Intel 5000V Chipset, Intel 5000Z Chipset
Bit        Attr      Default     Description
31:24 RV       0h              Reserved

23:12 RW      001h           HECBASE: PCI Express Extended Configuration Base This register   contains     the address that corresponds to bits 39 to 28 of the base address for PCI Express extended   configuration space. Configuration software will read this register to determine where the 256MB range of addresses resides for this particular host bridg e. This register defaults to the same address as the default value for TOLM.
11:0 RV                 0h    Reserved

阅读全文
类别:Bios 查看评论

转载于:https://www.cnblogs.com/kuwoyidai/archive/2010/07/14/1777529.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

List「Object[]」转Map「Integer,String」处理

题目 有一个List<Object[]>&#xff0c;里面的元素分别是[1,“a”]&#xff0c;[2,“b”]&#xff0c;[1,“c”]&#xff0c;[2,“d”]…&#xff0c;请写一个函数将其转换为一个Map<Integer,String>&#xff0c;以List的Object[]第一个元素为关键字&#xff0c;将…

Asp.net基础概念之 事件

.NET Framework中的事件 事件体系结构 引发事件的对象叫做事件源。事件源发布它可以引发的事件。事件的类型总是委托类型&#xff0c;这个委托类型的签名定义了处理该事件的方法的签名。定义事件处理程序方法的对象称为事件接收方。事件接收方预订要在事件源上处理的事件事件接…

synchronized同步方法概述

synchronized同步方法 1、“线程安全”与“非线程安全”&#xff1a; 非线程安全情况&#xff1a;多个线程对同一个对象中的实例变量进行并发访问时&#xff0c;产生脏读。 解决方法&#xff1a;对实例变量的值进行同步处理。 2、方法内的变量为线程安全 3、实例变量非线程安…

as3:sprite作为容器使用时,最好不要指定width,height

官方解释&#xff1a; 除 TextField 和 Video 对象以外&#xff0c;没有内容的显示对象&#xff08;如一个空的 Sprite&#xff09;的高度为 0&#xff0c;即使您尝试将 height 设置为其它值&#xff0c;也是这样。 如果您设置了 height 属性&#xff0c;则 scaleY 属性会相应调…

1002 写出这个数 (20分)-Java

题目 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10 ​100。 输出格式&#xff1a; 在一行内输出 n 的各位数字之和…

成为LINUX系统管理员几点规则

要成为一名合格的LINUX管理员&#xff0c;一般来说都要懂得如下几点规则&#xff1a; 规则1&#xff1a;了解LINUX的一切。首先&#xff0c;在了解以下规则之前&#xff0c;笔者必须向大家说明的是&#xff0c;即使最基本的LINUX系统管理员都是要经过不断的学习和长时间实践才能…

Facebook图片存储架构技术全解析

Haystack提出了一种通用的基于HTTP的对象存储&#xff0c;它含有指针&#xff0c;映射到存储对象。在Haystack中以指针储存照片&#xff0c;把数以十万计的图像聚集到一个Haystack存储文件&#xff0c;从而消除了元数据负荷。这就使得元数据的开销非常小&#xff0c;并且使我们…

Shiro授权流程图

Shiro授权流程Shiro授权流程图Shiro授权流程图 根据Shiro授权流程&#xff0c;绘制流程图如下&#xff1a;

assert

[编辑本段]概述  Assert - 断言 编写代码时&#xff0c;我们总是会做出一些假设&#xff0c;断言就是用于在代码中捕捉这些假设&#xff0c;可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式&#xff0c;程序员相信在程序中的某个特定点该表达式值为真。可…

Shiro并发登录人数控制遇到的问题和解决

shiro并发登录人数控制遇到的问题和解决问题1:KickoutSessionControlFilter不起作用问题2:KickoutSessionControlFilter中cache为null空指针异常问题3:服务器重启后首页访问&#xff1a;subject.getPrincipal()报ClassCastException异常系统环境参考资料问题1:KickoutSessionCo…

新的网站上线 linux视野

开通了新的网站www.linuxsight.com会一直专注着Linux文章的写作转载于:https://blog.51cto.com/87243/354662

js中toFixed方法的两个坑

js中toFixed方法的两个坑toFixed返回结果是string&#xff0c;后续使用它计算会错误toFixed返回结果可能出现负零-0.00toFixed返回结果是string&#xff0c;后续使用它计算会错误 代码演示&#xff1a; 类型判断代码示例&#xff1a; var stringNum (100.101).toFixed(2); v…

Redhat linux 5.3 基于bond的heartbeat

一、设置bond 1.修改网卡cd /etc/sysconfig/network-scripts/cp ifcfg-eth0 ifcfg-bond0vi ifcfg-bond0DEVICEbond0 ONBOOTyes BOOTPROTOnone IPADDR192.168.1.200 NETMASK255.255.255.0 GATEWAY192.168.1.1 USERCTLno TYPEEthernetvi ifcfg-eth0DEVICEeth0 ONBOOTyes BOOTPROT…

外挂:一个很杯具的关键字

在网页挂马泛滥的时代&#xff0c;盗号***不缺少传播到用户电脑的通道&#xff0c;因为只需要找一些与游戏有关的网站&#xff0c;或者在流量大的网站把网马一挂&#xff0c;就不愁钓不着鱼。如今&#xff0c;时代在变迁&#xff0c;安全软件已经成功的解决了网页挂马这个难题&…

java.lang.ClassNotFoundException: retrofit2.Retrofit$Builder解决思路

ClassNotFoundException报错具体问题报错详情推测可能是jar包问题问题总结自定义依赖缺少依赖jar具体问题 Caused by: java.lang.NoClassDefFoundError: retrofit2/converter/simplexml/SimpleXmlConverterFactory报错详情 org.springframework.web.util.NestedServletExcept…

varnish排错

●Troubleshooting varnish&#xff08;varnish排错&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />有时候varnish会出错&#xff0c;为了使您知道该检查哪里&#xff0c;您可以检查varnishlog&#xff0c;/var/log…

图像质量评估方法——结构相似性指数(SSIM)

结构相似性指数&#xff08;SSIM&#xff09;是一种全参考图像质量评估方法&#xff0c;用于比较两幅图像的相似性。 SSIM的计算涉及到亮度&#xff08;Luminance&#xff09;、对比度&#xff08;Contrast&#xff09;和结构&#xff08;Structure&#xff09;三个方面的相似性…

OpenSSL加密与证书

加密 身份的验证 &#xff08;非对称加密&#xff09;数据的加密 &#xff08;对称加密&#xff09;数据的完整性 &#xff08;单向加密&#xff09;三者的联合使用会保证数据的安全机制 A&#xff1a;发送者 B&#xff1a;接收方 A的操作&#xff1a; A使用…

asp 正则表达式

这里用的是正则式Set objRegExp New Regexp 建立对象objRegExp.IgnoreCase True 大小写忽略objRegExp.Global True 全局为真objRegExp.Pattern "http://.?" 匹配字段set mmobjRegExp.Execute(str) 执行查找&#xff0c;str为输入参数For Eac…

SQL SERVER重置自动编号列(标识列)

为什么80%的码农都做不了架构师&#xff1f;>>> 两种方法&#xff1a; 一种是用Truncate TRUNCATE TABLE name 可以删除表内所有值并重置标识值 二是用DBCC CHECKIDENT DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 如dbcc checkident ("bc_pos&q…