DMAR: [INTR-REMAP] Present field in the IRTE entry is clear 的解决办法

问题描述

在使用FPGA开发PCIe的MSI-X中断相关功能时,一次测试过程中dmesg打印出如下错误,使用cat /proc/interrupts查看FPGA的PCIe驱动程序未收到MSIX中断。使用的系统为基于Intel x86_64的linux(RHEL8.9),基于Xilinx Ultrascale+HBM VCU128开发板作为PCIe终端设备进行开发。

DMAR: DRHD: handling fault status reg 2

DMAR: [INTR-REMAP] Request device [01:00.0] fault index 0x39 [fault reason 0x22] Present field in the IRTE entry is clear

错误分析

该错误报告是由一种虚拟化技术DMAR(DMA Remapping)产生,出现的原因在于系统BIOS开启了Interrupt Remapping选项,Intel IOMMU收到了未定义的中断请求后触发保护引起报错。关于Intel IOMMU的进一步介绍可参考其他资料,如DMAR(DMA remapping)与 IOMMU

进一步的,该错误是由于系统收到了来自FPGA错误的MSIX中断请求报文,进而导致系统触发的安全保护。因此即使在BIOS中关闭DMA Remapping选项不产生上述错误报告,驱动程序也不会接收到中断请求。

解决办法

检查FPGA侧MSIX中断相关信号的赋值是否满足协议要求(可查看文章),本文遇到的问题在于发送的Msg Data与MSIX Table中填入的Msg Data不匹配,进而导致的异常。

修正后的结果,无错误报告产生:

相关推荐
maverick_11110 小时前
【FPGA】 在Verilog中,! 和 ~ 的区别
fpga开发
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥11 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿11 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘11 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy64812 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满12 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠12 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio12 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice12 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习