(1). PCIe 协议栈总览

上图是整个 PCIe 的软件框架、PIPE-CompliantPHY 部分的 SERDES 模块、DWC PCIe Core 包含 Physical Layer (MAC)、 DATA Link Layer、 Transaction Layer 和 Application Dependent part of the Transaction Layer,此部分为 PCIe Core 内容。用户驱动部分内容是 Application Logic、Application Registers 内容。

(2)、PCIe 组件定义


包含4个重要的模块,CXPL、RADM、XADM、CDM。
(2.1) CXPL: Common ExpressPort Logic (CXPL) Module
CXPL是整个协议的核心部分,包含了物理层、数据链路层和传输层。

(2.2) XADM: TransmitApplication-Dependent Module
面向数据包发送的应用模块,主要包括以下3个功能:
a、 TLP(Transaction Layer Packet) arbitration,传输报仲裁
b、 TLP formation , 传输包格式
c、 Flow control credit checking, 流控审计

(2.3) RADM: ReceiveApplication-Dependent Module
面向数据包接收的应用模块,主要包括以下3个功能:
a、 Sorting/filtering of received TLPs. The filtering rules and routing are configurable.
b、Buffering and queuing of the received TLPs.
c、Routing of received TLP to the core’s receive interfaces.
(2.4) CDM : Configuration-Dependent Module
a、 Standard PCI Express configuration space
b、Core-specific register space (Port Logic Registers)

(3)、PCIe 的内部结构关系

作为用户,我认为需要知道以上各个接口的作用和用法,并且知道每个接口需要在整个传输中扮演的角色,对应驱动调试是非常有帮助的。
此框架的用户接口逻辑部分、更利于我们理解 PCIe 驱动程序的框架。
模块定义说明:
PMC: Power Management Controller
LBC : Local Bus Controller
DBI : Data Bus Interface
MSG_GEN: MessageGeneration Module
HOT PLUG:Hot Plug ControlModule
RBYP: Receive Bypass Interface
TRGT1: Receive Request Interface
ELBI: External Local Bus Interface
MSI: Message Signaled Interrupt (MSI) Interface,
MSI-X Interface,在DPDK中选择的中断模式,使用此接口。
XALI 0/1/2 : Transmit Interfaces 0/1/2
VMI : Vendor Message Interface
SII : System Information Interface
以上模块接口、在驱动中都有相应部分。

(4) Core operation 、驱动 初始化

1、 先disable link training
2、 通过DBI(data bus interface)配置core的stickyregisters,需要配置什么目前不知道??????
3、 Enable link training
4、 等待link完成。
5、 root Complex枚举Downstream Device(什么是Downstreamdevice????)
Ø 读取 Downstream device的配置空间
Ø 配置device的capabilites(具体配置什么???)
Ø 配置switch ports(???) 的base和limit寄存器,以反映devices enumerated downstream的BAR(Base Address Register)的范围。
Ø 配置endpoint的BAR。

6、 使能BME、MSE、ISE。
7、 开始传输数据。

参考连接:
https://www.synopsys.com/designware-ip/interface-ip/pci-express.html
https://blog.csdn.net/yijingjijng/article/details/48028809

2 --> PCIE 协议栈的框架详解相关推荐

  1. jQuery Validate验证框架详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.导入js库 <script type="text/javascript" src="& ...

  2. shiro放行_Shiro框架详解 tagline

    部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...

  3. [Cocoa]深入浅出 Cocoa 之 Core Data(1)- 框架详解

    深入浅出 Cocoa 之 Core Data(1)- 框架详解 罗朝辉(http://blog.csdn.net/kesalin) CC 许可,转载请注明出处 Core data 是 Cocoa 中处 ...

  4. WebDriver自动化测试框架详解

    webDriver自动化测试框架详解 一. 简介 WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁 WebDri ...

  5. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  6. Android 动画框架详解,第 1 部分

    2019独角兽企业重金招聘Python工程师标准>>> Android 平台提供了一套完整的动画框架,使得开发者可以用它来开发各种动画效果,本文将向读者阐述 Android 的动画框 ...

  7. springboot2整合mysql5_SpringBoot2整合SSM框架详解

    SpringBoot2整合SSM框架详解 发布时间:2019-01-15 21:33, 浏览次数:1218 , 标签: SpringBoot SSM <>开发环境 * 开发工具:Eclip ...

  8. Django REST FRAMEWORK swagger(一)框架详解

    Django REST FRAMEWORK swagger(一.框架详解) 一.Django REST  SWAGGER框架图 具体见下图 二.说明 RESTFul说明 每一个URI代表一种资源: 客 ...

  9. 框架详解_Qt开发技术:QtCharts(一)QtCharts基本介绍以及图表框架详解

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  10. iOS开发之Accounts框架详解

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发之Accounts框架详解 Accounts框架是iOS原生提供的一套账户管理框架,其支持Facebook,新浪微博 ...

最新文章

  1. java hashset应用_三.java集合的应用
  2. DebugView调试C#程序 学习总结
  3. Redis进阶-核心数据结构进阶实战
  4. c语言逗号占几个字符,C语言 scanf输入多个数字只能以逗号分隔的操作
  5. 我国高性能计算机发展,中国高性能计算机发展水平与趋势
  6. UOJ#218. 【UNR #1】火车管理 线段树 主席树
  7. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件
  8. springbank 开发日志 springbank是如何执行一个handler的requestMapping对应的方法的
  9. popToRootViewController & popToViewController
  10. 关于线性模型你可能还不知道的二三事
  11. 用户画像方法论与工程化解决方案 pdf_《用户画像》作者:赵宏田
  12. LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A
  13. ImageBox显示方式设置、打开图片文件
  14. [CTF]Brainfuck/Ook!编码
  15. Prettier your project
  16. 卧槽!迅雷的代码结构竟然被扒了精光!
  17. fore-each操作数组
  18. 计算机其他图标删除,我的电脑其他图标删除方法介绍
  19. AI自己写代码让智能体进化!OpenAI的大模型有“人类思想”那味了
  20. Kafka 核心原理(贼全面)

热门文章

  1. u盘修复计算机系统,用u盘修复win7系统
  2. vscode最适合编程的 6 种字体
  3. FP-growth算法,fpgrowth算法详解
  4. fpgrowth算法实战 mlib_Spark MLlib FPGrowth关联规则算法
  5. 升压和升降压拓扑中IDC与IO的关系推导 // 《精通开关电源设计》P41式2-2
  6. 遗传算法原理及应用二(交叉算子、变异算子与运行参数选择)
  7. 字体和font-family对照表
  8. 怎样从altera下载软件与器件库
  9. 【Altera SoC体验之旅】+ 正式开启OpenCL模式
  10. Bolt界面引擎中XLUE布局XML文件节点属性配置详解