[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ATA-100 Issues



And heres another idea...

what about this change to /src/sys/dev/ic/wdc.c, in wdc_downgrade_mode() ?

1399c1399,1400
<        * If we were using Ultra-DMA mode > 2, downgrade to mode 2 first.
---
>        * <OLD> If we were using Ultra-DMA mode > 2, downgrade to mode 2
first. </OLD>
>        * If we're >= 2, just decrement the mode and see what happens ?
1403c1404,1405
<               drvp->UDMA_mode = (drvp->UDMA_mode == 2) ? 1 : 2;
---
>               /* drvp->UDMA_mode = (drvp->UDMA_mode == 2) ? 1 : 2; */
>               drvp->UDMA_mode = drvp->UDMA_mode - 1;



i.e., if we are using ultra-dma, and the mode is >= 2, instead of going to
2 immediately, try each successive value until we hit 1.  Seems like it
would give busses the best possible chance to run fast.

I have no idea if the hardware supports this, or if the 1 line change i've
made even does what I expect it to (the box I'm wanting to compile/test
these changes on isn't booting for other reasons :)

Comments ?


On Fri, Jul 27, 2001 at 02:22:35AM -0700, Matt Evans wrote:
> So heres a question.  
> Let's say I can't make it stop freaking out at UDMA mode 5.
> 
> Instead of it dropping to mode 2 (sucky), why can't it drop to mode 4 ?
> 
> I think I see a way to "hack" this behavior (sort of)
> 
> from src/sys/dev/pci/pciide.c 
> (in function pdc202xx_chip_map)
> 
> 
> if(PDC_IS_265(sc))
> 	sc->sc_wdcdev.UDMA_cap = 5;
> 
> im assuming that this is telling pciide that if it finds a 265 chipset, to run
> UDMA mode 5.  If i change that 5 to 4, will pciide start the controller up in 
> UDMA mode 4 (and hopefully not get errors at this setting, thus avoiding a 
> fallback to mode 2) or is the mode setting busines above just for the pretty
> informational messages i see in the debugging logs ?
> 
> Comments ?
> 
> 
> On Wed, Jul 25, 2001 at 02:43:15AM -0700, Matt Evans wrote:
> > On a fresh (3 hour old) install of 2.9 i386 generic:
> > 
> > I am having lots of CRC errors now that I have two ATA-100 drives
> > on the same chain.  I just bought a brand new 40gb IBM ata-100 disk to add
> > to the chain with my 30gb ata-100 disk (also IBM).  
> [snip]
> > 
> > wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 2
> > wd1(pciide1:0:1): using PIO mode 4, Ultra-DMA mode 2
> > wd0a:  aborted command, interface CRC error writing fsbn 43005664 of 43005664-43005791 (wd0 bn 43267744; cn 42924 tn 5 sn 37), retrying
> > wd0: soft error (corrected)
> > 
> 
> -- 
> Matt Evans     email: matt_(_at_)_mattevans_(_dot_)_org      web: www.mattevans.org
> 

-- 
Matt Evans     email: matt_(_at_)_mattevans_(_dot_)_org      web: www.mattevans.org