Call for testers: Apple ATA DMA

Marcel Moolenaar xcllnt at mac.com
Wed Sep 10 20:52:28 UTC 2008


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):

	...
FreeBSD 8.0-CURRENT #5 r182738: Thu Sep  4 02:11:48 PDT 2008
     marcelm at mini-g4:/usr/obj/nfs/freebsd/base/head/sys/MINI-G4
WARNING: WITNESS option enabled, expect reduced performance.
cpu0: Motorola PowerPC 7447A revision 1.5, 1500.00 MHz
cpu0: HID0 8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT>
real memory  = 1059041280 (1009 MB)
avail memory = 1027227648 (979 MB)
nexus0: <Open Firmware Nexus device>
	...
pcib2: <Apple UniNorth Host-PCI bridge> on nexus0
pci2: <PCI bus> on pcib2
ata1: <Intrepid Kauai ATA Controller> mem 0xf5004000-0xf5007fff irq 39  
at device 13.0 on pci2
ata1: [ITHREAD]
	...
ad0: 76319MB <Seagate ST9808211A 3.07> at ata1-master BIOSPIO
acd0: DVDR <MATSHITACD-RW CW-8124/DACD> at ata1-slave BIOSPIO
acd0: FAILURE - READ_BIG ILLEGAL REQUEST asc=0x64 ascq=0x00
GEOM_LABEL: Label for provider acd0 is iso9660/CDROM.
WARNING: WITNESS option enabled, expect reduced performance.
	...


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):

     Node 0xff9b6298: ata-6
       vendor-id:
         00 00 10 6b
       device-id:
         00 00 00 3b
       revision-id:
         00 00 00 00
       class-code:
         00 ff 00 00
       min-grant:
         00 00 00 00
       max-latency:
         00 00 00 00
       devsel-speed:
         00 00 00 01
       name:
         61 74 61 2d 36 00
         'ata-6'
       model:
         61 74 61 2d 36 00
         'ata-6'
       device_type:
         61 74 61 00
         'ata'
       AAPL,connector:
         61 74 61 00
         'ata'
       AAPL,bus-id:
         00 00 00 03
       cable-type:
         38 30 2d 63 6f 6e 64 75 63 74 6f 72 00
         '80-conductor'
       #address-cells:
         00 00 00 01
       #size-cells:
         00 00 00 00
       AAPL,pio-timing:
         00 00 05 26 00 00 00 85 00 00 00 25 00 00 00 25 00 00 00 25
         00 00 00 00 00 00 00 00 00 00 00 00
       lba-48:
       interrupts:
         00 00 00 01 00 00 00 00
       AAPL,requested-priorities:
         00 00 00 02 00 00 00 04
       compatible:
         6b 61 75 61 69 2d 61 74 61 00
         'kauai-ata'
       reg:
         00 00 68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
         02 00 68 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00
       assigned-addresses:
         82 00 68 10 00 00 00 00 f5 00 40 00 00 00 00 00 00 00 40 00


mini-g4% sudo atacontrol list
ATA channel 0:
     Master:      no device present
     Slave:       no device present
ATA channel 1:
     Master:  ad0 <ST9808211A/3.07> ATA/ATAPI revision 6
     Slave:  acd0 <MATSHITACD-RW CW-8124/DACD> ATA/ATAPI revision 6

mini-g4% sudo atacontrol mode ad0
current mode = BIOSPIO

mini-g4% sudo atacontrol cap ad0

Protocol              ATA/ATAPI revision 6
device model          ST9808211A
serial number         3LF2PW9F
firmware revision     3.07
cylinders             16383
heads                 16
sectors/track         63
lba supported         156301488 sectors
lba48 not supported       156301488 sectors
dma supported
overlap not supported

Feature                      Support  Enable    Value           Vendor
write cache                    yes	yes
read ahead                     yes	yes
Tagged Command Queuing (TCQ)   no	no	0/0x00
SMART                          yes	yes
microcode download             yes	yes
security                       yes	no
power management               yes	yes
advanced power management      yes	yes	32896/0x8080
automatic acoustic management  no	no	0/0x00	254/0xFE

FYI,

-- 
Marcel Moolenaar
xcllnt at mac.com





More information about the freebsd-ppc mailing list