From: Alastair D'Silva <alast...@d-silva.org>

These values have been taken from the device specifications.

Signed-off-by: Alastair D'Silva <alast...@d-silva.org>
---
 drivers/nvdimm/ocxl/scm_internal.h | 72 ++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/drivers/nvdimm/ocxl/scm_internal.h 
b/drivers/nvdimm/ocxl/scm_internal.h
index 6340012e0f8a..d6ab361f5de9 100644
--- a/drivers/nvdimm/ocxl/scm_internal.h
+++ b/drivers/nvdimm/ocxl/scm_internal.h
@@ -6,6 +6,78 @@
 #include <linux/libnvdimm.h>
 #include <linux/mm.h>
 
+#define GLOBAL_MMIO_CHI                0x000
+#define GLOBAL_MMIO_CHIC       0x008
+#define GLOBAL_MMIO_CHIE       0x010
+#define GLOBAL_MMIO_CHIEC      0x018
+#define GLOBAL_MMIO_HCI                0x020
+#define GLOBAL_MMIO_HCIC       0x028
+#define GLOBAL_MMIO_IMA0_OHP   0x040
+#define GLOBAL_MMIO_IMA0_CFP   0x048
+#define GLOBAL_MMIO_IMA1_OHP   0x050
+#define GLOBAL_MMIO_IMA1_CFP   0x058
+#define GLOBAL_MMIO_ACMA_CREQO 0x100
+#define GLOBAL_MMIO_ACMA_CRSPO 0x104
+#define GLOBAL_MMIO_ACMA_CDBO  0x108
+#define GLOBAL_MMIO_ACMA_CDBS  0x10c
+#define GLOBAL_MMIO_NSCMA_CREQO        0x120
+#define GLOBAL_MMIO_NSCMA_CRSPO        0x124
+#define GLOBAL_MMIO_NSCMA_CDBO 0x128
+#define GLOBAL_MMIO_NSCMA_CDBS 0x12c
+#define GLOBAL_MMIO_CSTS       0x140
+#define GLOBAL_MMIO_FWVER      0x148
+#define GLOBAL_MMIO_CCAP0      0x160
+#define GLOBAL_MMIO_CCAP1      0x168
+
+#define GLOBAL_MMIO_CHI_ACRA   BIT_ULL(0)
+#define GLOBAL_MMIO_CHI_NSCRA  BIT_ULL(1)
+#define GLOBAL_MMIO_CHI_CRDY   BIT_ULL(4)
+#define GLOBAL_MMIO_CHI_CFFS   BIT_ULL(5)
+#define GLOBAL_MMIO_CHI_MA     BIT_ULL(6)
+#define GLOBAL_MMIO_CHI_ELA    BIT_ULL(7)
+#define GLOBAL_MMIO_CHI_CDA    BIT_ULL(8)
+#define GLOBAL_MMIO_CHI_CHFS   BIT_ULL(9)
+
+#define GLOBAL_MMIO_CHI_ALL    (GLOBAL_MMIO_CHI_ACRA | \
+                                GLOBAL_MMIO_CHI_NSCRA | \
+                                GLOBAL_MMIO_CHI_CRDY | \
+                                GLOBAL_MMIO_CHI_CFFS | \
+                                GLOBAL_MMIO_CHI_MA | \
+                                GLOBAL_MMIO_CHI_ELA | \
+                                GLOBAL_MMIO_CHI_CDA | \
+                                GLOBAL_MMIO_CHI_CHFS)
+
+#define GLOBAL_MMIO_HCI_ACRW                           BIT_ULL(0)
+#define GLOBAL_MMIO_HCI_NSCRW                          BIT_ULL(1)
+#define GLOBAL_MMIO_HCI_AFU_RESET                      BIT_ULL(2)
+#define GLOBAL_MMIO_HCI_FW_DEBUG                       BIT_ULL(3)
+#define GLOBAL_MMIO_HCI_CONTROLLER_DUMP                        BIT_ULL(4)
+#define GLOBAL_MMIO_HCI_CONTROLLER_DUMP_COLLECTED      BIT_ULL(5)
+#define GLOBAL_MMIO_HCI_REQ_HEALTH_PERF                        BIT_ULL(6)
+
+#define ADMIN_COMMAND_HEARTBEAT                0x00u
+#define ADMIN_COMMAND_SHUTDOWN         0x01u
+#define ADMIN_COMMAND_FW_UPDATE                0x02u
+#define ADMIN_COMMAND_FW_DEBUG         0x03u
+#define ADMIN_COMMAND_ERRLOG           0x04u
+#define ADMIN_COMMAND_SMART            0x05u
+#define ADMIN_COMMAND_CONTROLLER_STATS 0x06u
+#define ADMIN_COMMAND_CONTROLLER_DUMP  0x07u
+#define ADMIN_COMMAND_CMD_CAPS         0x08u
+#define ADMIN_COMMAND_MAX              0x08u
+
+#define STATUS_SUCCESS         0x00
+#define STATUS_MEM_UNAVAILABLE 0x20
+#define STATUS_BAD_OPCODE      0x50
+#define STATUS_BAD_REQUEST_PARM        0x51
+#define STATUS_BAD_DATA_PARM   0x52
+#define STATUS_DEBUG_BLOCKED   0x70
+#define STATUS_FAIL            0xFF
+
+#define STATUS_FW_UPDATE_BLOCKED 0x21
+#define STATUS_FW_ARG_INVALID  0x51
+#define STATUS_FW_INVALID      0x52
+
 #define SCM_LABEL_AREA_SIZE    (1UL << PA_SECTION_SHIFT)
 
 struct scm_function_0 {
-- 
2.23.0

Reply via email to