Call for testers: Apple ATA DMA

Nathan Whitehorn nwhitehorn at freebsd.org
Thu Sep 11 05:56:38 UTC 2008


Marcel Moolenaar wrote:
> 
> On Sep 10, 2008, at 9:17 AM, Nathan Whitehorn wrote:
> 
> [snip -- great explanation by Marco]
> 
>>> In addition, to enable UDMA, you need to OR 1 to the UDMA timing mode.
>>> So for example for UDMA2, you need to write 0x00004a61 and not simply
>>> 0x00004a60 .
>>>
>> Thanks! I had just assumed that the NetBSD driver did the right thing, 
>> and only have a CD drive attached to a Shasta controller on which to 
>> test the Kauai driver. I'll change it to do things the right way.
> 
> Let me know when you have it. Your patch didn't work for me
> and caused a hard (enough) hang. It was right at the time ad0
> is normally found (and configured):
> BTW: I noticed with the patched kernel that the IRQ changed to 1
> (from 39). I guess this is related to the multiple IRQs for a PCI
> device problem (IRQ 1 being the DBDMA interrupt):
>       interrupts:
>         00 00 00 01 00 00 00 00

I've put somewhat-fixed versions at 
http://people.freebsd.org/~nwhitehorn/ata_dbdma.c and 
http://people.freebsd.org/~nwhitehorn/ata_kauai.c. This should work up 
to WDMA2. The UDMA modes seem to require the DBDMA interrupt to work, 
and we can't allocate it right now because of this issue with the PCI 
bus driver. Any thoughts on how to fix it?

Also, am I to understand that your Kauai controller doesn't export its 
interrupt either in the OF tree *or* in its PCI registers? I've hacked 
around this, assuming this is true, but it is pretty messed up...
-Nathan


More information about the freebsd-ppc mailing list