Hi experts,
I meet with a problem of SATA Gen2 HDD recognition by DM8165. The HDD is Seagate 7200.12 model ST3250318AS, which is a Gen2 HDD. It is connected to DM8165 HBA port 1 directly and not through any PMP.
But the system cannot recognize the HDD. Following is the details. It seems the port interrupt with IFS(fatal error) caused the failure. Further, it seems SERR.DIAG_S is set, which caused the SERR.ERR_P and so the fatal error status.
Besides, if set the jumper on HDD to limit it to 1.5Gbps, the recognition passes ok.
Thanks.
Debug information:
ahci ahci.0: forcing PORTS_IMPL to 0x3
ahci_port_init: PORT_SCR_ERR 0x0
ahci_port_init: PORT_IRQ_STAT 0x0
ahci_port_init: PORT_SCR_ERR 0x4050002
ahci_port_init: PORT_IRQ_STAT 0x0
ahci_init_controller: HOST_CTL 0x80000000
ahci_init_controller: HOST_CTL 0x80000002
ahci ahci.0: AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl platform mode
ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc
scsi0 : ahci_platform
scsi1 : ahci_platform
ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16
ata2: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x180 irq 16
.............
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
ahci_hardreset: EXIT, rc=0, class="0"
ata_eh_thaw_port: ata1 port thawed
ata_std_postreset: ENTER
ata1: SATA link down (SStatus 0 SControl 300)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
ata_scsi_error: EXIT
ata2: link is slow to respond, please be patient (ready=0)
ata2: COMRESET failed (errno=-16)
sata_link_hardreset: EXIT, rc=-16
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
ata_dev_classify: found ATA device by sig
ahci_hardreset: EXIT, rc=0, class="1"
ata_eh_thaw_port: ata2 port thawed
ata_std_postreset: ENTER
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_sg_setup: ENTER, ata2
ata_sg_setup: 1 sg elements mapped
ahci_fill_sg: ENTER
ahci_interrupt: ENTER
ahci_port_intr: port 1 port_mmio = 0xcf8a0180
ahci_port_intr: Raf status 0x8000000, serr 0x800500, portstat 0x123 phystat 0x3
ahci_error_intr: Raf freeze
ata_port_freeze: Enter
__ata_port_freeze: ata2 port frozen
ata_sg_clean: unmapping 1 sg elements
ata_port_freeze: Exit
ahci_interrupt: port 1
ahci_interrupt: EXIT
ata2.00: failed to IDENTIFY (I/O error, err_mask=0x100)
ata_eh_revalidate_and_attach: EXIT rc=-5
ata_eh_freeze_port: ENTER
__ata_port_freeze: ata2 port frozen
ata_eh_freeze_port: EXIT
ahci_hardreset: ENTER
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
ata_dev_classify: found ATA device by sig
ahci_hardreset: EXIT, rc=0, class="1"
ata_eh_thaw_port: ata2 port thawed
ata_std_postreset: ENTER
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_sg_setup: ENTER, ata2
ata_sg_setup: 1 sg elements mapped
ahci_fill_sg: ENTER
ahci_interrupt: ENTER
ahci_port_intr: port 1 port_mmio = 0xcf8a0180
ahci_port_intr: Raf status 0x8000000, serr 0x800500, portstat 0x123 phystat 0x3
ahci_error_intr: Raf freeze
ata_port_freeze: Enter
__ata_port_freeze: ata2 port frozen
ata_sg_clean: unmapping 1 sg elements
ata_port_freeze: Exit
ahci_interrupt: port 1
ahci_interrupt: EXIT
ata2.00: failed to IDENTIFY (I/O error, err_mask=0x100)
ata_eh_revalidate_and_attach: EXIT rc=-5
ata2: limiting SATA link speed to 1.5 Gbps
ata_eh_freeze_port: ENTER
__ata_port_freeze: ata2 port frozen
ata_eh_freeze_port: EXIT
ahci_hardreset: ENTER
sata_link_hardreset: ENTER
sata_link_hardreset: EXIT, rc=0
ata_dev_classify: found ATA device by sig
ahci_hardreset: EXIT, rc=0, class="1"
ata_eh_thaw_port: ata2 port thawed
ata_std_postreset: ENTER
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_sg_setup: ENTER, ata2
ata_sg_setup: 1 sg elements mapped
ahci_fill_sg: ENTER
ahci_interrupt: ENTER
ahci_port_intr: port 1 port_mmio = 0xcf8a0180
ahci_port_intr: Raf status 0x8000000, serr 0x280100, portstat 0x113 phystat 0x3
ahci_error_intr: Raf freeze
ata_port_freeze: Enter
__ata_port_freeze: ata2 port frozen
ata_sg_clean: unmapping 1 sg elements
ata_port_freeze: Exit
ahci_interrupt: port 1
ahci_interrupt: EXIT
ata2.00: failed to IDENTIFY (I/O error, err_mask=0x100)
ata_eh_revalidate_and_attach: EXIT rc=-5
ata_eh_freeze_port: ENTER
__ata_port_freeze: ata2 port frozen
ata_eh_freeze_port: EXIT
ahci_hardreset: ENTER
sata_link_hardreset: ENTER
Link established after 1 retries
sata_link_hardreset: EXIT, rc=0
ata_dev_classify: found ATA device by sig
ahci_hardreset: EXIT, rc=0, class="1"
ata_eh_thaw_port: ata2 port thawed
ata_std_postreset: ENTER
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata_std_postreset: EXIT
ata_eh_revalidate_and_attach: ENTER
ata_eh_recover: EXIT, rc=0
ata_scsi_error: EXIT