Re: VGA address mapping?
On 22.07.2009, at 09:48, Gleb Natapov wrote: On Tue, Jul 21, 2009 at 04:06:10PM -0700, Saksena, Abhishek wrote: Would also like to mention I am not using Qemu and building some basic IO models around KVM (only using libkvm.h) -Abhishek From: Saksena, Abhishek Sent: Tuesday, July 21, 2009 11:13 AM To: kvm@vger.kernel.org Subject: VGA address mapping? Hi I am implementing a VGA Device model. The model provides functions to read/write VGA memory space. Just for testing I want to capture memory reads/writes to addresses 0xA->0xC and forward it to my VGA model. I have used following function to create physical ram int kvm_create ( kvm_context_t> kvm, unsigned long phys_mem_bytes, void ** phys_mem ) The function comments says that this creates a new virtual machine, maps physical RAM to it, and creates a virtual CPU for it. Memory gets mapped for addresses 0->0xA, 0xC->phys_mem_bytes. This indeed what comment says, but looking at the code I don't see it using phys_mem_bytes/phys_mem parameters at all. I'm not sure about libkvm, but the real KVM logic is "memory is not mapped -> MMIO". So if you just don't map it, you should get MMIO exits on that range. Keep in mind that there are people out there trying to get rid of libkvm :-) Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: VGA address mapping?
On Tue, Jul 21, 2009 at 04:06:10PM -0700, Saksena, Abhishek wrote: > Would also like to mention I am not using Qemu and building some basic IO > models around KVM (only using libkvm.h) > > -Abhishek > > From: Saksena, Abhishek > Sent: Tuesday, July 21, 2009 11:13 AM > To: kvm@vger.kernel.org > Subject: VGA address mapping? > > Hi > I am implementing a VGA Device model. The model provides functions to > read/write VGA memory space. > > Just for testing I want to capture memory reads/writes to addresses > 0xA->0xC and forward it to my VGA model. > > > I have used following function to create physical ram > > int kvm_create ( > kvm_context_t >kvm, > unsigned long phys_mem_bytes, > void ** phys_mem > ) > > The function comments says that this creates a new virtual machine, maps > physical RAM to it, and creates a virtual CPU for it. Memory gets mapped for > addresses 0->0xA, 0xC->phys_mem_bytes. > This indeed what comment says, but looking at the code I don't see it using phys_mem_bytes/phys_mem parameters at all. Look at QEMU code how memory is created. > > > I was expecting mimio read/write callbacks to capture transactions between > 0xA->0xC but I don't see that happening. > > > > My question is how I can configure KVM to forward me reads/writes for VGA > address space? > > > > > > Thanks > > Abhishek > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: VGA address mapping?
Would also like to mention I am not using Qemu and building some basic IO models around KVM (only using libkvm.h) -Abhishek From: Saksena, Abhishek Sent: Tuesday, July 21, 2009 11:13 AM To: kvm@vger.kernel.org Subject: VGA address mapping? Hi I am implementing a VGA Device model. The model provides functions to read/write VGA memory space. Just for testing I want to capture memory reads/writes to addresses 0xA->0xC and forward it to my VGA model. I have used following function to create physical ram int kvm_create ( kvm_context_t kvm, unsigned long phys_mem_bytes, void ** phys_mem ) The function comments says that this creates a new virtual machine, maps physical RAM to it, and creates a virtual CPU for it. Memory gets mapped for addresses 0->0xA, 0xC->phys_mem_bytes. I was expecting mimio read/write callbacks to capture transactions between 0xA->0xC but I don't see that happening. My question is how I can configure KVM to forward me reads/writes for VGA address space? Thanks Abhishek -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
VGA address mapping?
Hi I am implementing a VGA Device model. The model provides functions to read/write VGA memory space. Just for testing I want to capture memory reads/writes to addresses 0xA->0xC and forward it to my VGA model. I have used following function to create physical ram int kvm_create ( kvm_context_t kvm, unsigned long phys_mem_bytes, void ** phys_mem ) The function comments says that this creates a new virtual machine, maps physical RAM to it, and creates a virtual CPU for it. Memory gets mapped for addresses 0->0xA, 0xC->phys_mem_bytes. I was expecting mimio read/write callbacks to capture transactions between 0xA->0xC but I don't see that happening. My question is how I can configure KVM to forward me reads/writes for VGA address space? Thanks Abhishek -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html