Hi, any one help? I have puzzled by the question of device's MMIO areas. I
know a MMIO operation of guest os handled by VMM as follow steps:
1: Qemu-dm does its initialization and presents virtual devices for guest
os.
2: virtual bios executes PCI_setup, it will scan the pci bus and get
configure space of all devices,then virtual bios allocation system
resources(like port I/O range,MMIO range, interrupt) for device.
3: I think in this step vmm will get all mmio range that in step 2, then
vmm will set ept entry which can cause ept violation when guest os attemp
to access corresponding MMIO ares.
4: In ept violation exit, vmm will pass mmio operation to qemu-dm.
5: Qemu-dm do mmio operation with its callback functions, if qemu-dm could
not find (or register) callback function for some MMIO ares(for example, in
DMA write process ,the targe physical address is not stationary but
determined by guest os's driver,then when qemu-dm find no callback for DMA
target address, it will pass the content of write operation to vmm by
default, vmm then pass the result into the space of guest os).
what I want to know is step2 and step5:
In step2, how does vmm get all mmio areas of devices? and how vmm set ept
entry with these mmio areas ?
In setp5, is it ture for DMA operatin I described? and when qemu-dm find no
callback function for some MMIO area, what it will do?
Thanks for your help.
--
View this message in context: http://xen.1045712.n5.nabble.com/How-does-vmm-get-all-mmio-areas-of-pci-devices-tp5037367p5037367.html
Sent from the Xen - Dev mailing list archive at Nabble.com.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
know a MMIO operation of guest os handled by VMM as follow steps:
1: Qemu-dm does its initialization and presents virtual devices for guest
os.
2: virtual bios executes PCI_setup, it will scan the pci bus and get
configure space of all devices,then virtual bios allocation system
resources(like port I/O range,MMIO range, interrupt) for device.
3: I think in this step vmm will get all mmio range that in step 2, then
vmm will set ept entry which can cause ept violation when guest os attemp
to access corresponding MMIO ares.
4: In ept violation exit, vmm will pass mmio operation to qemu-dm.
5: Qemu-dm do mmio operation with its callback functions, if qemu-dm could
not find (or register) callback function for some MMIO ares(for example, in
DMA write process ,the targe physical address is not stationary but
determined by guest os's driver,then when qemu-dm find no callback for DMA
target address, it will pass the content of write operation to vmm by
default, vmm then pass the result into the space of guest os).
what I want to know is step2 and step5:
In step2, how does vmm get all mmio areas of devices? and how vmm set ept
entry with these mmio areas ?
In setp5, is it ture for DMA operatin I described? and when qemu-dm find no
callback function for some MMIO area, what it will do?
Thanks for your help.
--
View this message in context: http://xen.1045712.n5.nabble.com/How-does-vmm-get-all-mmio-areas-of-pci-devices-tp5037367p5037367.html
Sent from the Xen - Dev mailing list archive at Nabble.com.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel