aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2021-10-01 15:53:10 +0000
committerWarner Losh <imp@FreeBSD.org>2021-10-01 16:56:10 +0000
commit77054a897f6440632267e75ebe31793c7555b79e (patch)
tree069840a69f75759783449af4f5280cfad6d188e6
parenta245627a4e9553c84eddea07570daaf85c1067b6 (diff)
nvme: Explain a workaround a little better
The don't touch the mmio of the drive after we do a EN 1->0 transition is only for a tiny number of dirves that have this unforunate issue. Sponsored by: Netflix
-rw-r--r--sys/dev/nvme/nvme_ctrlr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index 10b30c584f71..eb95fa33b90b 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -318,10 +318,10 @@ nvme_ctrlr_disable(struct nvme_controller *ctrlr)
cc &= ~NVME_CC_REG_EN_MASK;
nvme_mmio_write_4(ctrlr, cc, cc);
+
/*
- * Some drives have issues with accessing the mmio after we
- * disable, so delay for a bit after we write the bit to
- * cope with these issues.
+ * A few drives have firmware bugs that freeze the drive if we access
+ * the mmio too soon after we disable.
*/
if (ctrlr->quirks & QUIRK_DELAY_B4_CHK_RDY)
pause("nvmeR", MSEC_2_TICKS(B4_CHK_RDY_DELAY_MS));