• caglararli@hotmail.com
  • 05386281520

How to check if a PCI device is trusted or untrusted by the Linux kernel (for IOMMU)?

Çağlar Arlı      -    20 Views

How to check if a PCI device is trusted or untrusted by the Linux kernel (for IOMMU)?

I am looking into the protection provided by IOMMU against DMA attacks. I noticed that the Linux kernel provides a feature called bounce buffers for untrusted PCI devices (https://lwn.net/Articles/786558/) when the device drivers allocate memory that is not aligned with 4KiB pages. According to the article, it seems like all external devices are considered untrusted (it would be great if someone can confirm this is true for the latest Linux kernel as well, the article seems a few years old).

Is there a way to check which PCI devices are trusted and which devices are untrusted from inside the Linux kernel (command to check whether a particular device is trusted)? I just want to confirm how devices are identified by the kernel (as trusted or untrusted).

Also, is there a way to set internal PCI devices as untrusted in the current Linux kernel?