🔮Linux x86-64 IOMMU 详解(四)——启用 Intel IOMMU 的配置
2023-10-17
| 2023-10-17
字数 356阅读时长 1 分钟
type
status
date
slug
summary
tags
category
icon
password
URL

BIOS 配置

在 BIOS 中,需要启用 Intel VT 和 VT-d。VT 是 Virtualization Technology 的缩写,而 VT-d 是 Virtualization Technology for Directed I/O 的缩写。后者正是 Intel IOMMU 的别名。

.config 文件配置

CONFIG_INTEL_IOMMU=y,是启用 Intel IOMMU 的必要非充分条件。这一配置目的在于告诉内核在启动时,要将 Intel IOMMU 的检测函数 detect_intel_iommu() 加载到 IOMMU table 中。但是,加载并不意味着使用——只有按下一节的方式配置启动参数后,Intel IOMMU 才会被初始化。

启动参数配置

设置以下两个启动参数,以显式指定 Intel IOMMU 作为 IOMMU 的实现方式:
进行完以上配置后,内核将会启用 Intel IOMMU,作为 IOMMU 的实现方式,同时禁用 SWIOTLB——严格来说,“禁用 SWIOTLB” 只是一个笼统的说法,具体实现过程比较复杂,下一篇文章将予以详细介绍。

确认 Intel IOMMU 已启用

确认内核已启用 Intel IOMMU 的方法很简单。在控制台执行如下命令:
如果看到类似下图中以 “DMAR” 开头的一系列日志信息,就表明 Intel IOMMU 已启用。
notion image
下一篇文章将结合代码,介绍 Intel IOMMU 的初始化流程。
 
 
  • 内存管理
  • iommu
  • dma
  • Linux x86-64 IOMMU 详解(三)——Intel IOMMU(硬件 IOMMU)的功能与基本原理Linux x86-64 IOMMU 详解(五)——Intel IOMMU 初始化流程
    Loading...