【问题标题】:QEMU PCI Memory Mapped I/OQEMU PCI 内存映射 I/O
【发布时间】:2020-12-01 11:52:25
【问题描述】:

我正在尝试了解 USB PCI MMIO 并将 QEMU 用作游戏场地。

以下设备在我的虚拟机上,

00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 16
    I/O ports at c0a0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 17
    I/O ports at c0c0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03) (prog-if 00 [UHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 18
    I/O ports at c0e0 [size=32]
    Kernel driver in use: uhci_hcd

00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
    Subsystem: Red Hat, Inc. QEMU Virtual Machine
    Flags: bus master, fast devsel, latency 0, IRQ 19
    Memory at fc072000 (32-bit, non-prefetchable) [size=4K]
    Kernel driver in use: ehci-pci

还有下面的代码,

int fd = open("/sys/devices/pci0000:00/0000:00:1d.7/resource0", O_RDWR | O_SYNC);
int mmio = mmap(0, 0x100, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
iopl(3);
outl(0, 0xc0a0);

如果我不包含outl(0, 0xc0a0);,似乎对MMIO 地址空间的任何写入都不会触发任何事情。

希望尝试了解outl(0, 0xc0a0); 究竟实现了什么。

【问题讨论】:

    标签: usb qemu pci


    【解决方案1】:

    outl() 写入数据。在您的代码中,除 outl() 外,没有其他函数写入 I/O

    https://linux.die.net/man/2/outl

    如果您想了解更多关于outl 的内部信息,请使用gdb 并对其进行反汇编https://gist.github.com/jarun/ea47cc31f1b482d5586138472139d090

    https://man7.org/linux/man-pages/man2/iopl.2.html

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 2017-06-08
      • 2011-01-19
      • 2011-12-15
      • 2017-05-17
      • 2016-11-16
      • 2012-03-25
      • 2011-10-11
      • 2015-09-11
      相关资源
      最近更新 更多