Date: Tue, 23 Sep 2008 12:54:12 -0500 From: Nathan Whitehorn <nwhitehorn@freebsd.org> To: Marcel Moolenaar <xcllnt@mac.com> Cc: freebsd-ppc@FreeBSD.org Subject: Re: Call for testers: Apple ATA DMA Message-ID: <48D92D44.6080807@freebsd.org> In-Reply-To: <0DD89065-9CF3-45E4-89A0-70D6BBB9621D@mac.com> References: "b9c23c9f0809100322n1659cb36oa05acf2f13f3c7e1@mail.gmail.com" <48D389EE.9000207@FreeBSD.org> <48D3AD50.8070505@freebsd.org> <48D69679.1080701@freebsd.org> <48D7F437.1040603@FreeBSD.org> <645CD2B8-11A0-42E8-B5F9-C04DCF21F763@mac.com> <48D84C12.7070207@freebsd.org> <0DD89065-9CF3-45E4-89A0-70D6BBB9621D@mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcel Moolenaar wrote: > > On Sep 22, 2008, at 6:53 PM, Nathan Whitehorn wrote: > >> Marcel Moolenaar wrote: >>> On Sep 22, 2008, at 12:38 PM, Maxim Sobolev wrote: >>>> Nathan Whitehorn wrote: >>>>> Nathan Whitehorn wrote: >>>>>> Maxim Sobolev wrote: >>>>>>> Nathan, >>>>>>> >>>>>>> Do you have any news regarding the patch in question? I hope you >>>>>>> did not give up, the lack of ATA DMA support is IMHO probably >>>>>>> the biggest issue for the FreeBSD on PowerMacs now. The hardware >>>>>>> is very attractive for SOHO applications, so that having this >>>>>>> feature is important. >>>>>> Right now, modes up to WDMA2 work. The UDMA modes cause hangs for >>>>>> reasons not entirely clear. I'm investigating it, but am in the >>>>>> Netherlands at the moment and it will have to wait until I get back. >>>>> I now have UDMA modes working on my Shasta controller -- there was >>>>> a stupid bug where I forgot to set the device to accept transfers >>>>> in the selected mode. Please give this patch a test: I expect that >>>>> UDMA modes now work everywhere. >>>>> http://people.freebsd.org/~nwhitehorn/apple-ata-dma.patch >>>> >>>> Nathan, >>>> >>>> The patch works here (G4 Mac Mini, 1.25GHz), however, I see some >>>> weird things happening in the interrupt domain. >>> Interesting. My G4 Mac Mini 1.5Ghz is hanging hard: >>> : >>> ad0: 76319MB <Seagate ST9808211A 3.07> at ata1-master UDMA100 >>> acd0: DVDR <MATSHITACD-RW CW-8124/DACD> at ata1-slave UDMA33 >>> *hang* >>> Could be related... >> >> If it is, removing the USE_DBDMA_IRQ stuff in ata_macio.c should >> solve it. This might solve Peter's problem too. > > It improves things, but it's still not good: [Smacking forehead] The Kauai/MacIO controller cannot support multiple modes of the same class (DMA/PIO) simultaneously on the same bus for different devices. You have to reprogram the timing register whenever you select a new device... Ways to check if this is the problem: 1) Limit devices to UDMA33. 2) Disable DMA on acd0. Our ATA stack doesn't seem to support a hook for doing things on a device select, so I'm not sure how to fix this. -Nathan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48D92D44.6080807>