RK3588 IOMMU 与 PCIe 透传可行性

RK3588 IOMMU 与 PCIe 透传可行性

1. 配置现状

rockchip_linux_defconfig

  • PCI/PCIe Rockchip host开启;
  • Rockchip IOMMU开启;
    -未显式开启 VFIO、VFIO PCI、VFIO platform和 KVM。

因此默认镜像不能直接使用 VFIO。

2. Rockchip IOMMU连接

rk3588s.dtsiiommus主要出现在:

  • NPU;
  • VPU/JPEG/IEP/RGA;
  • ISP/CIF/FEC;
  • VOP。

这些是集成 multimedia IP的专用 MMU。

3. MMU-600节点

rk3588s.dtsi还声明了 mmu600_pciemmu600_php两个 ARM SMMUv3节点,但它们默认 status = "disabled"。在 RK3588 DTS范围内未发现设备引用这两个节点,也未发现 PCIe iommu-map

4. PCIe关键事实

本树 RK3588 PCIe root nodes包含:

  • ranges;
  • MSI msi-map到 GIC ITS;
  • clocks/PHY/power domain;

但未发现 iommu-map。因此 downstream PCIe requester ID没有映射到 Rockchip IOMMU/SMMU。

5. 结论

不能因为 ROCKCHIP_IOMMU=y就宣称 PCIe endpoint可安全 vfio-pci直通。PCIe ATU inbound/outbound window也不是按 guest IOVA提供隔离的通用 IOMMU。

6. IOMMU Group检查

实际运行必须验证:

1
2
3
readlink -f /sys/bus/pci/devices/0000:*/iommu_group
find /sys/kernel/iommu_groups -type l
dmesg | grep -Ei 'iommu|rockchip.*iommu'

没有 group或只有 no-IOMMU group,不能使用 Type1安全映射。

7. Integrated IP

集成 IP虽有 iommus,仍不等于能直接 vfio-platform:

-缺 Rockchip reset插件;
-power/clock/firmware复杂;
-可能共享 IOMMU或资源;
-guest无标准设备模型;
-host vendor driver可能管理多个 blocks;
-secure firmware/GRF依赖。

8. MSI

msi-map只把 PCI requester MSI路由到 ITS。它解决中断地址翻译,不限制普通 DMA。

9. KVM

要做 ARM64 VM直通还需:

  • KVM host;
  • userspace VMM/QEMU;
    -完整 IOMMU;
    -irqchip/ITS支持;
    -guest资源描述;
    -reset;
    -group isolation。

本 defconfig未显示 KVM,需产品配置补齐。

10. 推荐

RK3588产品优先使用 virtio/共享内存/专用后端暴露加速能力,而不是直接 platform passthrough。PCIe安全直通需 SoC/板级硬件明确提供 IOMMU路径后再评估。

文章互动

阅读 --

留言

0 条留言

正在加载留言…