From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L4lDC-0001hj-QF for qemu-devel@nongnu.org; Mon, 24 Nov 2008 18:51:26 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L4lD9-0001gr-Jy for qemu-devel@nongnu.org; Mon, 24 Nov 2008 18:51:26 -0500 Received: from [199.232.76.173] (port=49816 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L4lD9-0001gm-Ep for qemu-devel@nongnu.org; Mon, 24 Nov 2008 18:51:23 -0500 Received: from e32.co.us.ibm.com ([32.97.110.150]:38214) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L4lD8-0006Ww-UD for qemu-devel@nongnu.org; Mon, 24 Nov 2008 18:51:23 -0500 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e32.co.us.ibm.com (8.13.1/8.13.1) with ESMTP id mAONo4aP025541 for ; Mon, 24 Nov 2008 16:50:04 -0700 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id mAONpLq7051636 for ; Mon, 24 Nov 2008 16:51:21 -0700 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id mAONpKQa020352 for ; Mon, 24 Nov 2008 16:51:21 -0700 Date: Mon, 24 Nov 2008 17:51:20 -0600 From: Ryan Harper Subject: Re: [Qemu-devel] [5706] Implement LSI53C895A quirks exposed by OpenServer (Justin Chevrier). Message-ID: <20081124235120.GG31893@us.ibm.com> References: <20081124231051.GE31893@us.ibm.com> <20081124231857.GF31893@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081124231857.GF31893@us.ibm.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ryan Harper Cc: qemu-devel@nongnu.org * Ryan Harper [2008-11-24 17:19]: > * Ryan Harper [2008-11-24 17:12]: > > * Andrzej Zaborowski [2008-11-12 10:50]: > > > Revision: 5706 > > > http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5706 > > > Author: balrog > > > Date: 2008-11-12 16:41:32 +0000 (Wed, 12 Nov 2008) > > > > > > Log Message: > > > ----------- > > > Implement LSI53C895A quirks exposed by OpenServer (Justin Chevrier). > > > > > > After going through the debug log and scratching my head for quite some > > > time. I found the following: > > > > > > The problem was with this block move: > > > > > > lsi_scsi: SCRIPTS dsp=0fae8e50 opcode 01000028 arg 00f63c40 > > > lsi_scsi: DMA addr=0x00f63c40 len=36 > > > > > > The number of bytes to be transferred (len) should be 40 which corresponds > > > to the block transfer of length 0x28 (from opcode 01000028). Instead we > > > have a length of 36 (0x24). The code responsible for this is (in > > > 'lsi_do_dma'): > > > > > > if (count > s->current_dma_len) > > > count = s->current_dma_len; > > > > > > Basically we're overwriting the length 40 with the value 36 which I > > > think we just left over in that variable from an earlier transfer. In my > > > patch below I initialize s->current_dma_len to s->dbc before we begin > > > the DMA transfer during Data In phase. > > > > > > The attached patch gets Openserver 5.0.5 past the hardware detection > > > (and it lists the hard drive to boot, woohoo). It appears to stop a > > > little while later (doesn't seem SCSI related), but it's been so long since > > > I've booted Openserver I'm not sure what's supposted to happen after the HW > > > detection using the boot/root disks. > > > > > > Props go to Craig Ringer for the initial post and the code that he posted > > > some of which is in this patch. > > > > This patch breaks WinXP SP3 32-bit install to scsi device. After > > attempting to format a partition on the scsi device, Windows says there > > is an error formating the partition. If I revert the patch, formating > > and installation to a scsi disk works ok. > > > > I haven't dug into what part of the patch is breaking it just yet, but > > plan to do so. > > Looks like dropping this line gets the install working again: That isn't it. Actually, dropping the dma len update fixes it 100% of the time. - s->current_dma_len = s->dbc; I'd like to understand what's going on here before commiting a fix just yet. Maybe revert the patch and dig in a bit because I believe your observation about the len seems accurate, but it certainly causes issues for XP SP3 installs. -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx ryanh@us.ibm.com