临时关闭Pcie ACS 重定向服务

ops/2024/11/13 11:12:55/

1. 背景

在PCIe总线中,P2P(Peer-to-Peer)直通是指在PCIe拓扑中两个EndPoint设备之间直接进行数据传输,而不经过RC侧Memory,P2P直通可以提高数据传输的效率和软件设计的灵活性,P2P通信方式如下图所示。

1.1 pcie p2p配置,地址匹配举例

我们以新思的DesignWare ® Cores举例,业界大部分IC设计都是采用新思的pcie ip。

 pcie一般都会有iATU模块,通过配置iATU实现inbound和outbound规则,atu inbound配置有bar匹配和地址匹配,bar匹配只需要一条规则,但是只能配置连续的地址空间,地址匹配可以配置多条规则来匹配不连续的EP侧地址;

EP1 InBound 配置:

base_addr: Bar0 ; target_addr: 0x900000000 (ep的ddr地址)  ; limit_addr长度: 0x10000000

EP2 OutBound 配置: 

base_addr:0x900000000 (ep的ddr地址) ; target_addr: Bar0 ; limit_addr长度: 0x100000000

这种配置方式就可以让ep1和ep2通过Switch完成p2p

outbound 具体配置流程:

Define Outbound Region 1 as:
64 kB I/O region from  0x80000000_d000000 to  0x80000000_d000ffff , to be mapped to  0x00010000 in
the PCIe I/O space.
1. Setup the Region Base and Limit Address Registers.
Write  0xd0000000 to Address { 0x208 } to set the Lower Base Address.
Write  0x80000000 to Address { 0x20C } to set the Upper Base Address.
Write  0xd000ffff to Address { 0x210 } to set the Limit Address.
2. Setup the Target Address Registers.
Write  0x00010000 to Address { 0x214 } to set the Lower Target Address.
Write  0x00000000 to Address { 0x218 } to set the Upper Target Address.
3. Configure the region through the Region Control 1 Register.
Write  0x00000002 to Address { 0x200 } to define the type of the region to be I/O.
4. Enable the region.
Write  0x80000000 to Address { 0x204 } to enable the region.

inbound 地址匹配流程:

Define Inbound Region 0 as, MEM region matching TLPs with addresses in the range  0x00010000 to
0x0005ffff mapped to  0x1000_0000_2000_0000 -  0x1000_0000_2004_ffff in your application
memory space.
1. Setup the Region Base and Limit Address Registers.
Write  0x00010000 to Address { 0x108 } to set the Lower Base Address.
Write  0x00000000 to Address { 0x10C } to set the Upper Base Address.
Write  0x0005ffff to Address { 0x110 } to set the Limit Address
2. Setup the Target Address Registers.
Write  0x20000000 to Address { 0x114 } to set the Lower Target Address.
Write  0x10000000 to Address { 0x118 } to set the Upper Target Address.
3. Configure the region through the Region Control 1 Register.
Write  0x00000000 to Address { 0x100 } to define the type of the region to be MEM.
4. Enable the region.
Write  0x80000000 to Address { 0x104 } to enable the region in address match mode.

2. 查看拓扑

lspci -vt  查看pcie拓扑

3. 设置ACS访问控制

如果说p2p被重定向到了RC侧,RC不会再将数据通过bar空间发送到目的设备去,所以需要关闭p2p的重定向。

pcie spec 关于ACS控制寄存器描述如下:

根据上面的拓扑,关闭p2p重定向命令:

setpci -v -s 68:10.0 ECAP_ACS+6.w=0

4. 永久关闭可以在BISO里关闭:

重启操作系统开机时按del进入BIOS关闭ACS功能,不关VT-d只关闭ACS功能,具体路径:Path: Advanced -> Chipset Configuration -> North Bridge -> IIO Configuration -> Intel VT for Directed I/O (VT-d) -> ACS Control -> Enable / Disable.


http://www.ppmy.cn/ops/15406.html

相关文章

Ubuntu 18.04.6 LTS Qt5.14 下无法输入中文的解决方法

首先,我们是Linux中可以输入搜狗输入法,但是在Qt中无法输入中文。 在Linux下安装输入法的具体步骤见我的博客直达链接https://blog.csdn.net/HQ354974212/article/details/133631847?ops_request_misc=%257B%2522request%255Fid%2522%

leetcode-比较版本号-88

题目要求 思路 1.因为字符串比较大小不方便,并且因为需要去掉前导的0,这个0我们并不知道有几个,将字符串转换为数字刚好能避免。 2.当判断到符号位的时候加加,跳过符号位。 3.判断数字大小,来决定版本号大小 4.核心代…

Git 的基本概念和使用方式

Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它具有以下基本概念: 仓库(Repository):仓库是文件的集合,包含了完整的文件历史记录和元数据。可以在本地或远程服务器上创建仓库。 提交&#xf…

RIP最短路实验(华为)

思科设备参考:RIP最短路实验(思科) 一,技术简介 RIP(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,工作原理是每个路由器周期性地向邻居路由器发…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D曲面图

伊甸火山( Mount Eden)是新西兰奥克兰市的一座火山,也是一处受欢迎的旅游景点。数据来自R内置volcano数据,笔者导出为volcano.csv文件,这个数据集用于演示3D曲面图和地形建模的目的。 购书地址:https://ite…

笔试狂刷--Day6(岛屿数量+模拟)

大家好,我是LvZi,今天带来笔试狂刷--Day6 一.在字符串中找出连续最⻓的数字串 1.题目链接 在字符串中找出连续最⻓的数字串 2.题目分析 使用双指针模拟 3.代码实现 import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {p…

利用 easycode 自动生成 数据库表 对应 类文件

1、安装easycode 打开settings,在plugins中搜索easycode进行安装,安装完成后重启idea。 2、连接数据库 连接数据库,填写数据库配置信息 点解Test connetction测试连接, 3、生成文件 右键数据库表格,生成对应文件 4…

交换机的种类有哪些?主要都具有哪些作用?

在当今数字化时代,网络已经成为我们生活和工作中不可或缺的一部分。无论是家庭网络还是企业网络,都需要有效的网络设备来实现数据通信和资源共享。而网络交换机作为一种重要的网络设备,扮演着连接和管理网络设备的关键角色。本文将探讨交换机…