【问题标题】:Can a non-enumerated device conduct DMA operations?非枚举设备能否进行 DMA 操作?
【发布时间】:2020-02-27 10:23:07
【问题描述】:

PCIe 设备可以读取或写入内存,即无需设备驱动程序即可进行 DMA。 如果我没记错的话,如果您刷新设备的固件(假设是 FPGA 设备)并输入 0xFFFF 作为设备和供应商 ID,则 BIOS 不会枚举该设备。 我想知道,即使没有被 BIOS 枚举,PCIe 设备是否可以通过总线主控进行 DMA 操作(内存读取和写入)。

【问题讨论】:

    标签: hardware boot bios pci-e bus


    【解决方案1】:

    只有在命令寄存器中设置了总线主控启用 (BME) 时,PCIe 设备才能执行 DMA。仅当驱动程序处于活动状态时才会设置 BME。

    【讨论】:

    • 有些 FPGA 设备可以在没有驱动程序的情况下进行 DMA。它们由另一台计算机控制:youtube.com/watch?v=fXthwl6ShOg
    • 为什么操作系统会在未加载驱动程序的设备上启用 BME?这似乎是一个操作系统错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2011-09-04
    相关资源
    最近更新 更多