From owner-freebsd-ppc@FreeBSD.ORG Tue Sep 23 17:54:21 2008 Return-Path: Delivered-To: freebsd-ppc@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E2F2106566C for ; Tue, 23 Sep 2008 17:54:21 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from mail.icecube.wisc.edu (ice.icecube.wisc.edu [128.104.255.119]) by mx1.freebsd.org (Postfix) with ESMTP id 1D8A58FC12 for ; Tue, 23 Sep 2008 17:54:20 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 4799B86D59; Tue, 23 Sep 2008 12:54:20 -0500 (CDT) Received: from mail.icecube.wisc.edu ([127.0.0.1]) by localhost (ice.icecube.wisc.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 17680-06; Tue, 23 Sep 2008 12:54:19 -0500 (CDT) Received: from wanderer.tachypleus.net (i3-dhcp-172-16-55-165.icecube.wisc.edu [172.16.55.165]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 8277286B19; Tue, 23 Sep 2008 12:54:19 -0500 (CDT) Message-ID: <48D92D44.6080807@freebsd.org> Date: Tue, 23 Sep 2008 12:54:12 -0500 From: Nathan Whitehorn User-Agent: Thunderbird 2.0.0.16 (X11/20080804) MIME-Version: 1.0 To: Marcel Moolenaar 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> In-Reply-To: <0DD89065-9CF3-45E4-89A0-70D6BBB9621D@mac.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: amavisd-new at ice.icecube.wisc.edu Cc: freebsd-ppc@FreeBSD.org Subject: Re: Call for testers: Apple ATA DMA X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2008 17:54:21 -0000 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 at ata1-master UDMA100 >>> acd0: DVDR 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