git: 0b8f21e8d1f7 - main - nvme: Add LPA bits

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 05 Apr 2024 22:57:48 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=0b8f21e8d1f749bd03532f90656e2a5cf01800c0

commit 0b8f21e8d1f749bd03532f90656e2a5cf01800c0
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-04-03 17:26:17 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-04-05 22:53:47 +0000

    nvme: Add LPA bits
    
    Add all the bits from the NVMe 2.0 base specification: CMD_EFFECTS to
    indicate the commands and effects log page is supported, TELEMETRY to
    indicate that the telemetry log pages and protocols are supported,
    PERSISTENT_EVENTS to indicate the persistent event log is supported,
    LOG_PAGES_PAGE to indicate that various log pages related to log page
    and command support are supported: L0, L5, L12, and L13. and
    DA4_TELEMETRY to indicate that the DA4 area is supported for telemetry
    data.
    
    Sponsored by:           Netflix
---
 sys/dev/nvme/nvme.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/sys/dev/nvme/nvme.h b/sys/dev/nvme/nvme.h
index 46956d5f54cf..706b77507b61 100644
--- a/sys/dev/nvme/nvme.h
+++ b/sys/dev/nvme/nvme.h
@@ -390,9 +390,24 @@ enum nvme_psdt {
 /* per namespace smart/health log page */
 #define NVME_CTRLR_DATA_LPA_NS_SMART_SHIFT		(0)
 #define NVME_CTRLR_DATA_LPA_NS_SMART_MASK		(0x1)
+/* Commands Supported and Effects log page */
+#define NVME_CTRLR_DATA_LPA_CMD_EFFECTS_SHIFT		(1)
+#define NVME_CTRLR_DATA_LPA_CMD_EFFECTS_MASK		(0x1)
 /* extended data for Get Log Page command */
 #define NVME_CTRLR_DATA_LPA_EXT_DATA_SHIFT		(2)
 #define NVME_CTRLR_DATA_LPA_EXT_DATA_MASK		(0x1)
+/* telemetry */
+#define NVME_CTRLR_DATA_LPA_TELEMETRY_SHIFT		(3)
+#define NVME_CTRLR_DATA_LPA_TELEMETRY_MASK		(0x1)
+/* persistent event */
+#define NVME_CTRLR_DATA_LPA_PERSISTENT_EVENT_SHIFT	(4)
+#define NVME_CTRLR_DATA_LPA_PERSISTENT_EVENT_MASK	(0x1)
+/* Supported log pages, etc */
+#define NVME_CTRLR_DATA_LPA_LOG_PAGES_PAGE_SHIFT	(5)
+#define NVME_CTRLR_DATA_LPA_LOG_PAGES_PAGE_MASK		(0x1)
+/* Data Area 4 for Telemetry */
+#define NVME_CTRLR_DATA_LPA_DA4_TELEMETRY_SHIFT		(6)
+#define NVME_CTRLR_DATA_LPA_DA4_TELEMETRY_MASK		(0x1)
 
 /** AVSCC - admin vendor specific command configuration */
 /* admin vendor specific commands use spec format */