[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Source of guest-physical address in PCI BAR for HVM domain?

  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "David Stone" <unclestoner@xxxxxxxxx>
  • Date: Fri, 4 Jan 2008 11:35:04 -0500
  • Delivery-date: Fri, 04 Jan 2008 08:35:30 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=vK1KAMfhL37769zFIp/hCKZ05lO+rwgbJ9cDxYsxHfDwDYUFvX4ozOo3GxUqKlVmRVI1sE/Ccnrzk8pkFiOJNy3USkua5eXOkb9knwm/Oe3Zq074KvlmasDZGtehI/wXshcYrboKiimsLiIDpPrxqSYRB/HNsbCmJsymkc56QAE=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

I'm seeing a seemingly bad guest-physical address get used for a PCI
BAR, so I'm trying to understand who is coming up with this address.
The domain is HVM (Windows 2003).  I'm debugging the qemu-dm process
for the domain and I see where the bad value gets written to the
guest's (virtual) PCI config space for the PCI device in question.
The call stack at that point shows:
So I guess this the PCI config-space write to set the BAR is passed to
qemu-dm as a command from the hypervisor or some other process?

I understand that eventually it would be the HVM guest OS that would
write to the PCI configuration IO port which would get caught be Xen
and passed along to qemu.  But, this is happending early in the boot
process before the guest OS proper is even running.  My understanding
of how PCI systems work is that the BIOS first configures (a subset
of) the PCI devices, and then the once the real OS is initializing it
can re-configure any PCI devices it wants to.  Can someone tell me if
this is correct?

If so, shouldn't the early PCI configuration from the BIOS be coming
from qemu itself?  My understanding is that qemu emulates a BIOS for
HVM domains.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.