Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 1999 00:38:05 -0500
From:      Lee Cremeans <lee@st-lcremean.tidalwave.net>
To:        Greg Lehey <grog@lemis.com>
Cc:        Matthew Dillon <dillon@apollo.backplane.com>, current@FreeBSD.ORG
Subject:   Re: IDE DMA works, I'll be a...
Message-ID:  <19990125003805.B1916@tidalwave.net>
In-Reply-To: <19990125153216.Q36690@freebie.lemis.com>; from Greg Lehey on Mon, Jan 25, 1999 at 03:32:16PM %2B1030
References:  <199901250419.UAA00493@apollo.backplane.com> <19990124232542.A1754@tidalwave.net> <19990125153216.Q36690@freebie.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 25, 1999 at 03:32:16PM +1030, Greg Lehey wrote:
> On Sunday, 24 January 1999 at 23:25:42 -0500, Lee Cremeans wrote:
> > On Sun, Jan 24, 1999 at 08:19:33PM -0800, Matthew Dillon wrote:
> >
> >>     It doesn't work on my CTX box, though - heh.  Quantity verses Quality,
> >>     I guess.  The CTX box was ~$1K 3 months ago while my PPro box was ~$3K
> >>     a year and a half ago.
> >
> > Can you find out what chipset is in this guy? There's support for anything
> > Intel or VIA, Promise UDMA cards, Cyrix MediaGX, and Acer Aladdin IV/V right
> > now.
> 
> See kern/9550.  The driver *used* to support my SiS chipset, but it no
> longer does when both master and slave drive are present since I
> updated about a week ago.  Possibly the same bug is biting Matt.

Ok, I'm reading the PR now, and it seems this is not what Matt is
complaining about. What I gather is that Matt's drive works without hiccups,
it's just slower than it should be. What you have is the timeout bug,
something that 1) only seems to hit unsupported chipsets -- this is why I
wrote the Acer support 2) seems to happen on these Seagate 5xxxxA drives a
lot (someone else was complaining of this after the Acer support was
committed). 

Try this patch:

--- ide_pci.c	Mon Jan 25 00:26:35 1999
+++ ide_pci.c.new	Mon Jan 25 00:31:58 1999
@@ -279,9 +279,10 @@
 		/* If we're here, then this controller is most likely not set 
 		   for UDMA, even if the drive may be. Make the drive wise
 		   up. */  
-		   
-		if(!wdcmd(WDDMA_MDMA2, wdinfo)) 
-			printf("generic_dmainit: could not set multiword DMA mode!\n");
+		if(udma_mode(wp) >= 2) {   
+			if(!wdcmd(WDDMA_MDMA2, wdinfo)) 
+				printf("generic_dmainit: could not set multiword DMA mode!\n");
+		}
 		return 1;
 	}	
 #ifdef IDE_PCI_DEBUG

Feel free to clean it up if you like, since I'm not clear on what style(9)
thinks of this. It makes it so that we only try forcing MWDMA2 on UDMA
drives, since that seems to be the most common clash with the generic code
-- the drive is expecting UDMA, but the controller isn't. This code was
originally put there because it made my Seagate 9GB work in DMA mode on my
then-unsupported Acer chipset. Before this, it was forcing MWDMA2 on all
comers, and that may be giving the 5xxxx drives fits. 

-- 
+--------------------------------------------------------------------+
| Lee Cremeans -- Manassas, VA, USA  (WakkyMouse on DALnet and WTnet)|  
|    lcremean@tidalwave.net| http://st-lcremean.tidalwave.net/~lee   |


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990125003805.B1916>