From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ELKYZ-0002hw-8v for qemu-devel@nongnu.org; Fri, 30 Sep 2005 09:04:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ELKYU-0002fZ-U5 for qemu-devel@nongnu.org; Fri, 30 Sep 2005 09:04:05 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ELKYT-0002d1-R9 for qemu-devel@nongnu.org; Fri, 30 Sep 2005 09:04:02 -0400 Received: from [62.193.225.58] (helo=WPC0444.AMENWORLD.COM) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1ELKVM-0000UP-07 for qemu-devel@nongnu.org; Fri, 30 Sep 2005 09:00:48 -0400 Message-ID: <433D36FD.6080401@yahoo.fr> Date: Fri, 30 Sep 2005 15:00:45 +0200 From: GaLi MIME-Version: 1.0 Subject: Re: [Qemu-devel] IDE busmaster DMA support References: <200509301204.j8UC4jK0026786@imap3.tools.intra> In-Reply-To: <200509301204.j8UC4jK0026786@imap3.tools.intra> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit 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 OK, thank you very much. GaLi Juergen Keil wrote: >>I'm trying to write an IDE driver with busmaster DMA support. >>My problem is that I can't get the right controller registers addresses. >> >>In the IDE BusMaster DMA specification : >> >>"The control registers for the controller are allocated via the >>devices Base Address register at offset 0x20 in PCI configuration >>space." >> >>If I read the word at offset 0x20 in the PCI configuration space, I get >>0xc001. But if I boot qemu with a linux live-cd, it tells me that BM-DMA >>is at 0xc000 >> >>Do I have to init the PCI IDE controller or something ? > > > Bit 0 encodes if the registers are in IO (1) or in memory (0) space. > You get the IO base address by using a 0xfffffffe mask. > > For memory space the mask is 0xfffffff0, the low four bits encode > a few memory properties (prefetch, 32-bit vs. 64-bit memory addresses). > > See the PCI spec for more details. Or for example the PCI_BASE_* defines here: > > http://cvs.opensolaris.org/source/xref/usr/src/uts/common/sys/pci.h#519