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@xxxxxxxxxxxxxxx
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
0xA0000->0xC0000 and forward it to my VGA model.
I have used following function to create physical ram
int kvm_create ( kvm_context_t<file:///C:/Documents%20and%20Settings/asaksena/Desktop/march_onwards/kvmsocket/doc/htmlkvm/structkvm__context.html
> 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->0xA0000, 0xC0000->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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html