Linux 驱动为什么必须设置 DMA mask?设备地址与物理地址一定相同吗?
DMA mask 告诉内核设备能访问多少位地址,映射层据此选择可达内存或建立转换。设备看到的 DMA 地址可能经过 IOMMU、总线窗口或 bounce buffer,并不保证等于 CPU 物理地址,驱动只能使用 DMA API 返回值。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
DMA mask 告诉内核设备能访问多少位地址,映射层据此选择可达内存或建立转换。设备看到的 DMA 地址可能经过 IOMMU、总线窗口或 bounce buffer,并不保证等于 CPU 物理地址,驱动只能使用 DMA API 返回值。