Index: ahcisata_core.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/ahcisata_core.c,v retrieving revision 1.73 diff -u -p -r1.73 ahcisata_core.c --- ahcisata_core.c 12 Jan 2019 15:16:51 -0000 1.73 +++ ahcisata_core.c 16 Jan 2019 19:43:27 -0000 @@ -774,8 +774,12 @@ ahci_exec_fis(struct ata_channel *chp, i 0) return 0; is = AHCI_READ(sc, AHCI_P_IS(chp->ch_channel)); + AHCI_WRITE(sc, AHCI_P_IS(chp->ch_channel), is); + if (is > 0) + printf("is %x ", is); + if (is & (AHCI_P_IX_TFES | AHCI_P_IX_HBFS | AHCI_P_IX_HBDS | - AHCI_P_IX_IFS | + AHCI_P_IX_IFS | AHCI_P_IX_IPMS | AHCI_P_IX_OFS | AHCI_P_IX_UFS)) { if ((is & (AHCI_P_IX_DHRS|AHCI_P_IX_TFES)) == (AHCI_P_IX_DHRS|AHCI_P_IX_TFES)) { @@ -863,7 +867,7 @@ ahci_do_reset_drive(struct ata_channel * * controllers fail to process the SRST clear operation unless * we wait for at least this period between the set and clear commands. */ - ata_delay(chp, 10, "ahcirstw", flags); + ata_delay(chp, 100, "ahcirstw", flags); cmd_h->cmdh_flags = htole16(RHD_FISLEN / 4 | (drive << AHCI_CMDH_F_PMP_SHIFT));