Replying to myself,

> Hi all,
> 
> on 4.3 GENERIC.MP (dmesg bellow), this is my disk:
> 
>       wd0 at pciide1 channel 0 drive 0: <WDC WD2500YS-01SHB1>
>       wd0: 16-sector PIO, LBA48, 239371MB, 490232639 sectors
>       wd0(pciide1:0:0): using PIO mode 4, Ultra-DMA mode 5
> 
> Now, atactl tells me that the disk can do ATA-7 (aka UDMA6):
> 
>       # atactl wd0 identify 
>       [...]
>       Device supports the following standards:
>       ATA-1 ATA-2 ATA-3 ATA-4 ATA-5 ATA-6 ATA-7 
>       [...]
> 
> The flags for the wd device are 0x0 in the kernel, which
> (as man wd says) means
> 
>       The special setting 0x0000 means ``use whatever the drive
>       claims to support''.
> 
> Hence my first question: why does wd0 only use Ultra-DMA mode 5
> (as per dmesg) when it is capable of Ulra-DMA mode 6 (as per atactl)?
> 
> Also, if I set the wd flags explicitly to 0x0eac (= 1110 1010 1100),
> it still user only Ultra-DMA mode 5 (instead ow 110 = 6 as specified).
> Why is that?
> 
> Also, how do people specify Ultra-DMA mode 7? The setting of 0x1111
> has the special meaning of disabling Ultra-DMA altogether (man wd says).

I also found that setting the wd0 flags to 0x0fac does _not_ disable
Ultra-DMA as it should according to the man page:

     For each set of four bits, the 3 lower bits define the mode to use and
     the last bit must be set to 1 for this setting to be used.  For DMA and
     UltraDMA, 0xf (1111) means ``disable''.  For example, a flags value of
     0x0fac (1111 1010 1100) means ``use PIO mode 4, DMA mode 2, disable
     UltraDMA''.  The special setting 0x0000 means ``use whatever the drive
     claims to support''.

Could it be that

     The flags are used only with controllers that support DMA operations and
     mode settings (like some pciide(4) controllers).  The lowest order
     (rightmost) nibble of the flags define the PIO mode to use.  The next
     four bits indicate the DMA mode and the third nibble the UltraDMA mode.

and my

pciide1 at pci0 dev 31 function 2 "Intel 82801I SATA" rev 0x02: DMA, channel 0 
configured to native-PCI, channel 1 configured to native-PCI
pciide1: using apic 4 int 19 (irq 0) for native-PCI interrupt

is _not_ on of "some pciide(4) controllers"?
How do I find out?

        Thanks

                Jan

Reply via email to