Linux 驱动为什么必须设置 DMA mask?设备地址与物理地址一定相同吗?
DMA mask 告诉内核设备能访问多少位地址,映射层据此选择可达内存或建立转换。设备看到的 DMA 地址可能经过 IOMMU、总线窗口或 bounce buffer,并不保证等于 CPU 物理地址,驱动只能使用 DMA API 返回值。
01
题干
Linux 驱动为什么必须设置 DMA mask?设备地址与物理地址一定相同吗?
请先给出结论,再结合真实项目说明设计边界、失败模式和验证方法。
先用 30–60 秒组织自己的回答,再对照分层解析。
08
来源与审核
内容来源:本站 AI 辅助原创内容
参考链接:查看公开来源
定位说明:Linux DMA API HOWTO:DMA addressing limitations 与 mask。
审核状态:已审核
使用状态:允许当前用途