上电:
主机设备上电,BIOS通过扫描下游设备的BAR,为其注册响应的空间,当需要对这些空间进行操作的时候,就会转换成TLP包的形式进行访问,当然直接和PCIE设备交互的还是RC;
其中BAR的低位(具体情况具体分析)作为寻址其的地址;
简单DMA读步骤(PCIE设备发起读):
1.下游设备发起请求;
2.CPU把数据写到指定位置,并发送TLP通知RC让PCIE设备读取;
3.通过路由PCIE接到这部分通知,发起MRD给RC,RC收取MRD把指定位置的数据打包成CPLD;
4.PCIE设备收到路由后的CPLD;
TLP包
TLP包的组帧格式复杂,主要参考:hapter 5 TLP Element //TLP 元素
但简而简之,TLP包是可划分为诸多类型的,其中又分为两大类:报告和非报告:2.2.2 事务层(Transaction Layer)
报告和非报告标志了操作需不需要返回完成包这个事件;
路由:
Programmed I/O Transaction
TLP包是怎么从发送到接收的,需要参考路由部分内容;Chapter 4 Address Space & Transaction Routing//地址空间与事务路由
也可以参考:http://www.ssdfans.com/?p=8216
不同的TLP包有不同的路由方式,其中:
DMA Transaction
标签:TLP,PCIE,Transaction,思考,RC,路由,设备 From: https://www.cnblogs.com/VerweileDoch/p/18182434