hardware - 非枚举设备能否进行 DMA 操作?
问题描述
PCIe 设备可以读取或写入内存,即无需设备驱动程序即可进行 DMA。如果我没记错的话,如果您刷新设备的固件(假设是 FPGA 设备)并输入 0xFFFF 作为设备和供应商 ID,则 BIOS 不会枚举该设备。我想知道,即使 BIOS 未枚举 PCIe 设备,是否也可以通过总线主控进行 DMA 操作(内存读取和写入)。
解决方案
只有在命令寄存器中设置了总线主控启用 (BME) 时,PCIe 设备才能执行 DMA。仅当驱动程序处于活动状态时才会设置 BME。
推荐阅读
- c++ - C++ 中的原子变量是否使用 volatile 和 CAS 实现?
- remote-desktop - 如何在 Windows Server RDS 终端服务器上注销时清除用户配置文件文件夹?
- javascript - 添加概率javascript
- java - 为什么使用正确的参数调用测试会失败?
- python - 如何在运行终端命令时隐藏 tkinter 应用程序中的控制台窗口?
- python - Python 3.9 和 Django 3.2.0 的 django-cors-headers 问题
- c# - 等效于 C# 中 java 的 Optional.ifPresent
- qt - 如果已经使用 Qt Installer Framework 安装了 App,请卸载它
- ios - UINavigationbar 后退按钮丢失
- angular - 动态设置 [matMenuTriggerFor]