From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I0pFS-00078Z-Di for qemu-devel@nongnu.org; Tue, 19 Jun 2007 21:44:42 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I0pFQ-00077W-2J for qemu-devel@nongnu.org; Tue, 19 Jun 2007 21:44:42 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I0pFP-00077O-PN for qemu-devel@nongnu.org; Tue, 19 Jun 2007 21:44:39 -0400 Received: from wx-out-0506.google.com ([66.249.82.224]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1I0pFP-0003QW-Cg for qemu-devel@nongnu.org; Tue, 19 Jun 2007 21:44:39 -0400 Received: by wx-out-0506.google.com with SMTP id t15so27096wxc for ; Tue, 19 Jun 2007 18:44:38 -0700 (PDT) Date: Wed, 20 Jun 2007 09:46:15 +0800 From: amateur Subject: Re: [Qemu-devel] ISA Proxy - possible? Message-ID: <20070620014615.GA4518@163.com> References: <200706191401.51064.daniel@schwen.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200706191401.51064.daniel@schwen.de> Reply-To: amateur , 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 On Tue, Jun 19, 2007 at 02:01:50PM +0200, Daniel Schwen wrote: > Would it be possible to register a set of io ports and io memory locations > with qemu and have all read write operations passed on to the host system? > > A quick look at the source shows me the two look-up tables > IOPortReadFunc *ioport_read_table[3][MAX_IOPORTS]; > IOPortWriteFunc *ioport_write_table[3][MAX_IOPORTS]; > Instead of the default function (which just generates debug output) it should > be possible to register functions which call the ioport read/write commands > on the host system (qemu would have to be launched as root to acquire io > permissions). > > Same should work with io memory using the cpu_register_io_memory function. > Or am I far off base? > > Reason is that I'd like to emulate some very old linux installations which > access custom ISA hardware. For some of the ISA boards we have no source > code, only binaries linked to a 2.0.something kernel... ------------------------- I think it is possible just as you said. But, take care of the interrupts! If your device don't generate interrupts, that's fine! If they do, then you must find a way to propagate this interrupt signal to qemu. And, there can't be another entity(e.g, host driver) operating on the device simultaneously. -- You worry too much about your job. Stop it. You are not paid enough to worry.