Re: ata_piix and combined mode

From: Jeff Garzik
Date: Mon Mar 22 2004 - 13:16:58 EST


Jeff Garzik wrote:
c) hardware pretends that SATA0/1 are master/slave.
This last introduces nastiness into most drivers, since sata
is _really_ point-to-point. Faking non-PTP this way leads
to a disconnect, because you must now map master to
port 0 or 1, and slave to the other port (yes ordering
is dynamic too).

Just to be more clear, the assignment (routing) of PATA and SATA ports on the ICH5 too dynamic for its own good. You must deal with

* PATA and SATA on separate PCI devices (as it should be)
* PATA and SATA on the same PCI device, where
c0 == pata0 master (master), pata1 master (slave)
c1 == sata0 (master), sata1 (master)
or
c0 == pata0 master (master), pata1 master (slave)
c1 == sata1 (master), sata0 (master)

the ICH6 follows the horror of combined mode, where c0 or c1 might be sata ports 0/2 or 1/3 (it has 4 sata ports rather than ICH5's 2). and PATA might be c0 or c1.

(c0 == ata channel zero, c1 == ata channel one)

Sigh.

Although not with libata, with other drivers I belive that combined mode is fundamentally flawed. Pretending a SATA device is a PATA device eliminates SATA-specific knowledge, such as avoiding soft-reset (SRST) on certain SATA devices, since they will lock up on probe.

I always recommend that users avoid combined mode when their configuration permits.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/