Subject: Re: Portege 3000 series IDE support messed up?
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: James Haggerty <j.h@student.usyd.edu.au>
List: port-i386
Date: 01/08/2006 01:32:05
Quoting Manuel Bouyer <bouyer@antioche.eu.org>:

> On Fri, Jan 06, 2006 at 04:07:40PM +1100, James Haggerty wrote:
> > Quoting James Haggerty <j.h@student.usyd.edu.au>:
> >
> > > The second patch wouldn't compile due to 'chan' being undefined
> (line
> > > 128).
> > > I'm recompiling the kernel now with that section commented out; I'll
> > > email
> > > when that's done.
> >
> > No panic, but it fails (with line 128 etc. removed):
>
> What lines did you remove ?
>

124-136 or so - just the for loop, obviously something to do with the DMA
init (why it isn't working). 'chan' is not declared - just try compiling
it :-)

> >
> > pnpbios0 at mainbus0: nodes 16, max len 207
> > pciide0 at pnpbios0 index 12 (TOS7300)
> > pciide0: io 1f0-1f7 3f6 1800-180f, irq 14
> > pciide0: Toshiba Extended IDE Controller
> > atabus0 at pciide0 channel 0
> > ...
> > wd0 at atabus0 drive 0: <TOSHIBA MK6411MAT>
> > wd0: drive supports 16-sector PIO transfers, LBA addressing
> > wd0: 6194 MB, 13424 cyl, 15 head, 63 sec, 512 bytes/sect x 12685680
> sectors
> > wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2
> (Ultra/33)
>
> Isn't there something between this line and the first lost interrupt
> message ?
>

Umm, pretty sure there wasn't, but unfortunately I've lost the output now
and would have to recompile. Is it important?

> > pciide0:0:0: lost interrupt
> >         type: ata tc_bcount: 512 tc_skip: 0
> > pciide0:0:0: bus-master DMA error: missing interrupt, status=0x1
>
> In pciide_pnpbios.c, could you remove the line:
> 	sc->sc_wdcdev.sc_atac.atac_cap |= ATAC_CAP_DMA;
>
> and see if it works (it'll disable IDE DMA, but will show if it's an
> issue with DMA only, or with all IDE commands).

Yes, it works fine without that! I also just tried it with ATAC_CAP_DMA set
and just the reference to chan expunged (essentially setting to chan = 0)
and the ordering slightly changed to get it to compile, and then it
reported 'status=0x61' on the lost interrupt error, but after a retry
there was only something about a soft error on wd0d and the system seemed
to run fine (though there was little to no performance improvement -
what's the easiest way to measure this?).

Thanks again,

James.

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.