• Mikael Pettersson's avatar
    sata_promise: SATAII-150/300 TX4 port numbering fix · 5ac2fe57
    Mikael Pettersson authored
    There is a known problem with sata_promise on SATAII-150/300 TX4
    controller cards: it enumerates drives in an order that differs
    from the port numbers printed on the controller cards. However,
    Promise's BIOS and Linux driver both get the order right.
    
    I investigated Promise's Linux driver (v1.01.0.23), and found
    that it explicitly changes the mapping from logical port number
    to ATA engine MMIO address on the SATAII TX4 cards. It does this
    on all SATAII TX4 cards, without inspecting revision etc. The
    SATAII TX2plus cards continue to use the same mapping that was
    used for the first-generation chips.
    
    This patch updates sata_promise to use the new port number to
    ATA engine mapping on SATAII TX4 cards, which fixes the drive
    enumeration order problem on those cards. Tested on several
    1st and 2nd generation TX2plus and TX4 chips.
    Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    5ac2fe57
sata_promise.c 26.9 KB