[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#462488: kernel: Promise PDC40718-based SATA card -- port numbering problem



Package: kernel
Severity: important

I'm having a problem with inconsistent numbering of the four internal
SATA ports on a Promise SATA300 TX4 controller (PCI, non-RAID, uses
Promise PDC40718 chip).

The ports are physically labelled 1, 2, 3, 4 on the card -- but the
ports are logically treated by the driver as if they were labelled
4, 2, 1, and 3, respectively.

If that were all that was going on, I could live with it by just
ignoring the labels printed on the card.  However, when my system's
BIOS is told to boot from "SCSI", it boots off the drive on the
PHYSICALLY lowest-numbered port (i.e., based on the labels printed
on the card).  The driver, on the other hand, assigns drive names
(sda, sdb, etc.) based on the logical port numbers.

Thus, /dev/sda may not necessarily be the same as the boot drive.
If, for instance, I have two SATA drives plugged into physically
labelled ports 1 and 2, the computer will try to boot off the drive
plugged into port #1 -- but Debian will consider that drive to be
/dev/sdb (and treat the drive plugged into port #2 as /dev/sda).

If I want two drives to be treated the same by the BIOS and by
Debian, I need to plug them into ports #2 and #4, or #3 and #4,
so that the two conflicting enumerations of the ports will give
consistent results.  This also means that it is impossible to
connect more than two drives to the card and have the system boot
from the drive that Debian will consider to be /dev/sda.

I suppose I could work around this issue by setting up my "second"
drive to be bootable, and by installing GRUB on that drive (which,
even though it's the boot drive, will be treated as /dev/sdb by
Debian).  Or, I could include a PATA drive in my system and use
it as the boot drive, instead of one of the SATA drives.

But I would think the "real" solution should be for the driver
to number the ports to match what the printing on the card (and
apparently also the BIOS) thinks -- so that if a disk is plugged
into the port labelled "Port 1", that disk will be /dev/sda.

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-5-k7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)



Reply to: