From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KBZ9d-0004ku-K9 for qemu-devel@nongnu.org; Wed, 25 Jun 2008 13:51:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KBZ9a-0004jX-Ir for qemu-devel@nongnu.org; Wed, 25 Jun 2008 13:51:36 -0400 Received: from [199.232.76.173] (port=59340 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KBZ9a-0004jR-9q for qemu-devel@nongnu.org; Wed, 25 Jun 2008 13:51:34 -0400 Received: from damascus.uab.es ([158.109.168.135]:29033) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KBZ9Z-0006Cd-Lq for qemu-devel@nongnu.org; Wed, 25 Jun 2008 13:51:34 -0400 Received: from damascus.uab.es ([127.0.0.1]) by damascus.uab.es (Sun Java System Messaging Server 6.1 HotFix 0.10 (built Jan 6 2005)) with ESMTP id <0K3100DGK5LDFQA0@damascus.uab.es> for qemu-devel@nongnu.org; Wed, 25 Jun 2008 19:51:13 +0200 (CEST) Received: from [158.109.70.47] by damascus.uab.es (Sun Java System Messaging Server 6.1 HotFix 0.10 (built Jan 6 2005)) with ESMTP id <0K3100JRD5LDBUB0@damascus.uab.es> for qemu-devel@nongnu.org; Wed, 25 Jun 2008 19:51:13 +0200 (CEST) Date: Wed, 25 Jun 2008 19:55:11 +0200 From: =?UTF-8?B?TcOgcml1cyBNb250w7Nu?= Subject: Re: [Qemu-devel] Split vga module In-reply-to: Message-id: <4862867F.6080108@uab.cat> MIME-version: 1.0 Content-type: multipart/alternative; boundary="Boundary_(ID_Ahb3WVqsUFx5shotuiPCZA)" References: <486273BD.2020702@uab.cat> <"f43fc5580806251003v1149c471pb987a1bfa 45b581"@mail.gmail.com> <48627F27.8050708@uab.cat> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --Boundary_(ID_Ahb3WVqsUFx5shotuiPCZA) Content-type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: QUOTED-PRINTABLE Blue Swirl wrote: > On 6/25/08, M=C3=A0rius Mont=C3=B3n wrote: > =20 >> Hello, and thank you for your quick answer, >> >> the problem I see is not with the register access (this is done f= or other devices) but with the graphics side. >> I don't understand how VGA device draws the screen, (I guess is d= one using SDL), and I think this part is too merged with QEMU itself.= Is it true? >> >> M=C3=A0rius >> >> >> Blue Swirl wrote: >> On 6/25/08, M=C3=A0rius Mont=C3=B3n wro= te: >> >> >> Hello all, >> >> My question is how I can split VGA module in a different process = =66rom QEMU. >> >> I need it in order to simulate a VGA module described in SystemC = into QEMU (http://www.greensocs.com/en/projects/QEMUSystemC) where al= l SystemC stuff runs in other process than QEMU. >> >> I look at the code, and vga code seems to be too merged with QEMU= itself to be splitted.. but, there's any solution? >> >> Interesting. You could try to catch all IO and MMIO towards = VGA and >> redirect those to the other process with some kind of IPC. You mus= t >> change the MMIO area registration, because now the VGA MMIO access= es >> are optimised so that no callbacks are involved. >> =20 > > Well, the graphics side can be SDL, VNC or dummy. I wonder why woul= d > you want to handle that area, because from the emulated system poin= t > of view, your device would be between the screen and the VGA card. > =20 In fact my idea is to replace the vga module with a new one, using= =20 SystemC stuff, and because this stuff is in a different process=20 (communicated with qemu using sockets) I need to split VGA part (both= =20 emulated part and graphics part) from QEMU --=20 M=C3=A0rius Mont=C3=B3n i Maci=C3=A1n marius.monton@uab.cat=20 http://cephis.uab.es=20 Hardware Engineer CEPHIS Centre de Prototips i Solucions Hardware-Software Dep. Microelectr=C3=B2nica i Sistemes Electr=C3=B2nics ETSE - Universitat Aut=C3=B2noma de Barcelona (UAB) =09Phone: +34 935= 813 534 Fax: +34 935 813 033 QC-2090D. ETSE. Campus UAB. 080193 Bellaterra --Boundary_(ID_Ahb3WVqsUFx5shotuiPCZA) Content-type: text/html; charset=UTF-8 Content-transfer-encoding: QUOTED-PRINTABLE

Blue Swirl wrote:
On 6/25/08, M=C3=A0rius Mont=C3=B3n <marius.m=
onton@uab.cat> wrote:
  
 Hello, and thank you for your quick answer,

 the problem I see is not with the register access (this is done for =
other devices) but with the graphics side.
 I don't understand how VGA device draws the screen, (I guess is done=
 using SDL), and I think this part is too merged with QEMU itself. Is=
 it true?

 M=C3=A0rius


 Blue Swirl wrote:
   On 6/25/08, M=C3=A0rius Mont=C3=B3n <marius.monton@uab.cat&=
gt; wrote:


      Hello all,

 My question is how I can split VGA module in a different process fro=
m QEMU.

 I need it in order to simulate a VGA module described in SystemC int=
o QEMU (http://www.greensocs.com/en/projects/=
QEMUSystemC) where all SystemC stuff runs in other process than Q=
EMU.

 I look at the code, and vga code seems to be too merged with QEMU it=
self to be splitted.. but, there's any solution?

      Interesting. You could try to catch all IO and MMIO towards VGA=
 and
redirect those to the other process with some kind of IPC. You must
change the MMIO area registration, because now the VGA MMIO accesses
are optimised so that no callbacks are involved.
    

Well, the graphics side can be SDL, VNC or dummy. I wonder why would
you want to handle that area, because from the emulated system point
of view, your device would be between the screen and the VGA card.
  
In fact my idea is to replace the vga module with a new one, using SystemC stuff, and because this stuff is in a different process (communicated with qemu using sockets) I need to split VGA part (both emulated part and graphics part) from QEMU

--
M=C3=A0rius Mont=C3=B3n i Maci=C3=A1n=C2=A0=C2=A0 marius.monton@uab.cat =C2=A0=C2=A0http://cephis.uab.es
Hardware Engine= er
Centre de Proto= tips i Solucions Hardware-Software
Dep. Microelectr=C3=B2nica i Sistemes Electr=C3=B2nics
ETSE - Universitat Aut=C3=B2noma de Barcelona (UAB)
Phone: +34 = 935 813 534
Fax: +3= 4 935 813 033
QC-2090= D. ETSE. Campus UAB.
080193 Bellaterra
--Boundary_(ID_Ahb3WVqsUFx5shotuiPCZA)--