Re: VGA address mapping?

2009-07-22 Thread Alexander Graf


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?

2009-07-22 Thread Gleb Natapov
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?

2009-07-21 Thread Saksena, Abhishek
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?

2009-07-21 Thread Saksena, Abhishek
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