Skip site navigation (1)Skip section navigation (2)
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>