SATA300 Controllers

Jia-Shiun Li jiashiun at
Sun Jul 9 16:03:30 UTC 2006

On 7/7/06, Søren Schmidt <sos at> wrote:
> Rick C. Petty wrote:
> > I'm using a few "Promise PDC40718 SATA300 controller" with identical
> > SATA300 drives and it seems to work well.  My only gripe is the channels
> > are misnumbered:
> >       port #1 maps to channel 3
> >       port #2 maps to channel 1
> >       port #3 maps to channel 0
> >       port #4 maps to channel 2
> >
> > I had to use the serial numbers to make sure I was writing on the correct
> > drives, so that was annoying.
> >
> Actually its the channel numbering printed on the card thats flawed, it
> doesn't match the physical channel numbers that the chip uses (and hence
> ATA channel numbers).
> I have no idea why they did that on some of their controllers, but I
> suspect historical reasons as they older controllers had the physical
> connectors in that order (3 1 0 2), but the guy that did the silkscreen
> layout probably ordered them "nicely" at some point :)

  Maybe they did it in order to be pin-compatible with older 20318 and
40518. On SATA150 TX4 (which used 20318) chip is directly connected to
ports in parallel circuits but labeled in correct order (4, 2, 1, 3).
On SATAII150 TX4 (40518) instead they 'worked around' switching the
order in BIOS, windows and linux driver, and label the same ports as
(1, 2, 3, 4). I did not know if this make any sense, since they sells
most add-on cards with their own brand. Changing the board layout
would be a lot easier and eliminate confusions. But if any OEM
customers use these chips and did not notice odd channel order, it
could be the only way to be backward 'compatible'. ;) In contrast it
would be inconvenient to unofficial driver vendors like FreeBSD, which
has a generic architecture for all ATA derivatives.


More information about the freebsd-hackers mailing list