Apple ATA DMA problems with ATAPI

Weongyo Jeong weongyo.jeong at gmail.com
Mon Mar 23 02:45:56 PDT 2009


On Sun, Mar 22, 2009 at 07:43:44PM -0500, Nathan Whitehorn wrote:
> 
> On Sun, 22 Mar 2009, Justin Hibbits wrote:
> 
> >On Sun, Mar 22, 2009 at 01:41:18PM -0700, Marcel Moolenaar wrote:
> >>
> >>On Mar 22, 2009, at 11:06 AM, Justin Hibbits wrote:
> >>
> >>>Well, it seems I was bitten by the ATA DMA problems from a few
> >>>months back.
> >>
> >>Try disabling DMA for atapi in /boot/loader.conf and enable
> >>it in /etc/sysctl.conf. For some reason, on my Mac Mini at
> >>least, it helps to first program PIO and then program *DMA.
> >>
> >>YMMV,
> >>
> >
> >It appears hw.ata.atapi_dma is a read-only tunable, so /etc/sysctl.conf 
> >has no
> >effect on it, and only throws a warning about being unable to change it.  
> >It's
> >working sufficiently as PIO, though.
> >
> 
> So it looks like this issue is limited to ATAPI devices, and as a result I
> have one more stab in the dark. Apparently at least some of these 
> controllers die if you try to give them an ATAPI command with a length 
> that is not divisible by 16. I have a patch at 
> http://people.freebsd.org/~nwhitehorn/ata-alignment.diff that converts 
> such commands to PIO. Could you see if it works?
> 
> If this fails, I'll apply a sledgehammer and force all ATAPI devices on 
> Apple controllers to PIO.

FWIW I applied your patch then tried to rebuild kernel but it still
encountered a panic in my iBook G4 without hw.ata.atapi_dma=0 during
booting.  My bug was:

	http://lists.freebsd.org/pipermail/freebsd-ppc/2009-February/003539.html

regards,
Weongyo Jeong



More information about the freebsd-ppc mailing list