FreeBSD 8 - Port Multiplier problem: 'error reading PM port' on Asus P5Q Pro Turbo

FreeBSD 8 (FreeBSD 8.2-STABLE #0: Thu Dec 1 23:44:53 CET 2011) is having problems recognizing all disks on the Asus P5Q Pro Turbo. Any help appreciated, since this disks were visible under Linux.

If you need more information, just shout :)

The message in dmesg is
Code:
atapci0: <Intel ICH10 SATA300 controller> port 0xbc00-0xbc07,0xb880-0xb883,0xb800-0xb807,0xb480-0xb483,0xb400-0xb41f mem 0xfe8fe800-
0xfe8fefff irq 19 at device 31.2 on pci0
atapci0: [ITHREAD]
atapci0: AHCI called from vendor specific driver
atapci0: AHCI v1.20 controller with 6 3Gbps ports, PM supported
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
ata4: <ATA channel 2> on atapci0
ata4: [ITHREAD]
ata5: <ATA channel 3> on atapci0
ata5: [ITHREAD]
ata6: <ATA channel 4> on atapci0
ata6: [ITHREAD]
ata7: <ATA channel 5> on atapci0
ata7: error reading PM port
ata7: error getting PM vendor data
ata7: [ITHREAD]
Code:
atapci0@pci0:0:31:2:	class=0x010601 card=0x82d41043 chip=0x3a228086 rev=0x00 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '6 port SATA AHCI Controller'
    class      = mass storage
    subclass   = SATA
 
Interesting, after adding
Code:
ahci_load="YES"
to /boot/loader.conf the multiplier sort of works, showing 1 of the 2 drives attached to it:

Code:
pmp0 at ahcich5 bus 0 scbus5 target 15 lun 0
pmp0: <Port Multiplier 57231095 2106> ATA-0 device
pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
pmp0: 1 fan-out ports[/quote]
And subsequently
[quote]ada5 at ahcich5 bus 0 scbus5 target 0 lun 0
ada5: <SAMSUNG HD753LJ 1AA01113> ATA-7 SATA 2.x device
ada5: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada5: Command Queueing enabled
ada5: 715404MB (1465149168 512 byte sectors: 16H 63S/T 16383C)
 
Without ahci(4) driver you were used old ata(4) subsystem. It has very rudimentary support for port multipliers, so I am not surprised it is not worked.

With ahci(4) it usually works well. Unluckily it seems like in your case one of workarounds worked improperly hiding second drive. To get it you may try to remove
Code:
softc->pm_pid == 0x57231095 ||
from the ata_pmp.c and rebuild the kernel.
 
That, sir, indeed fixed the problem. Thanks!
Code:
pmp0 at ahcich5 bus 0 scbus5 target 15 lun 0
pmp0: <Port Multiplier 57231095 2106> ATA-0 device
pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
pmp0: 2 fan-out ports
Confirmation:
Code:
ada5: <SAMSUNG HD753LJ 1AA01113> ATA-7 SATA 2.x device
ada5: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada5: Command Queueing enabled
ada5: 715404MB (1465149168 512 byte sectors: 16H 63S/T 16383C)
ada6 at ahcich5 bus 0 scbus5 target 1 lun 0
ada6: <SAMSUNG HD753LJ 1AA01113> ATA-7 SATA 2.x device
ada6: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada6: Command Queueing enabled
ada6: 715404MB (1465149168 512 byte sectors: 16H 63S/T 16383C)
 
Back
Top