Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1690409

[PATCH v2 03/16] switchtec: add NTB hardware register definitions

From Logan Gunthorpe <logang@deltatee.com>
Newsgroups linux.kernel
Subject [PATCH v2 03/16] switchtec: add NTB hardware register definitions
Date 2017-07-18 18:10 +0200
Message-ID <u4Des-4yU-61@gated-at.bofh.it> (permalink)
References <u4Deq-4yU-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


There are two additional regions: ctrl and dbmsg. The first is
for generic NTB control and memory windows. The second is for doorbells
and message registers. This patch also adds a number of related
constants for using these registers.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Stephen Bates <sbates@raithlin.com>
Reviewed-by: Kurt Schwemmer <kurt.schwemmer@microsemi.com>
---
 include/linux/switchtec.h | 84 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/include/linux/switchtec.h b/include/linux/switchtec.h
index 18e388101855..9c2be7631257 100644
--- a/include/linux/switchtec.h
+++ b/include/linux/switchtec.h
@@ -156,6 +156,12 @@ struct flash_info_regs {
 	struct partition_info vendor[8];
 };
 
+enum {
+	SWITCHTEC_NTB_REG_INFO_OFFSET   = 0x0000,
+	SWITCHTEC_NTB_REG_CTRL_OFFSET   = 0x4000,
+	SWITCHTEC_NTB_REG_DBMSG_OFFSET  = 0x64000,
+};
+
 struct ntb_info_regs {
 	u8  partition_count;
 	u8  partition_id;
@@ -191,6 +197,84 @@ struct part_cfg_regs {
 } __packed;
 
 enum {
+	NTB_CTRL_PART_OP_LOCK = 0x1,
+	NTB_CTRL_PART_OP_CFG = 0x2,
+	NTB_CTRL_PART_OP_RESET = 0x3,
+
+	NTB_CTRL_PART_STATUS_NORMAL = 0x1,
+	NTB_CTRL_PART_STATUS_LOCKED = 0x2,
+	NTB_CTRL_PART_STATUS_LOCKING = 0x3,
+	NTB_CTRL_PART_STATUS_CONFIGURING = 0x4,
+	NTB_CTRL_PART_STATUS_RESETTING = 0x5,
+
+	NTB_CTRL_BAR_VALID = 1 << 0,
+	NTB_CTRL_BAR_DIR_WIN_EN = 1 << 4,
+	NTB_CTRL_BAR_LUT_WIN_EN = 1 << 5,
+
+	NTB_CTRL_REQ_ID_EN = 1 << 0,
+
+	NTB_CTRL_LUT_EN = 1 << 0,
+
+	NTB_PART_CTRL_ID_PROT_DIS = 1 << 0,
+};
+
+struct ntb_ctrl_regs {
+	u32 partition_status;
+	u32 partition_op;
+	u32 partition_ctrl;
+	u32 bar_setup;
+	u32 bar_error;
+	u16 lut_table_entries;
+	u16 lut_table_offset;
+	u32 lut_error;
+	u16 req_id_table_size;
+	u16 req_id_table_offset;
+	u32 req_id_error;
+	u32 reserved1[7];
+	struct {
+		u32 ctl;
+		u32 win_size;
+		u64 xlate_addr;
+	} bar_entry[6];
+	u32 reserved2[216];
+	u32 req_id_table[256];
+	u32 reserved3[512];
+	u64 lut_entry[512];
+} __packed;
+
+#define NTB_DBMSG_IMSG_STATUS BIT_ULL(32)
+#define NTB_DBMSG_IMSG_MASK   BIT_ULL(40)
+
+struct ntb_dbmsg_regs {
+	u32 reserved1[1024];
+	u64 odb;
+	u64 odb_mask;
+	u64 idb;
+	u64 idb_mask;
+	u8  idb_vec_map[64];
+	u32 msg_map;
+	u32 reserved2;
+	struct {
+		u32 msg;
+		u32 status;
+	} omsg[4];
+
+	struct {
+		u32 msg;
+		u8  status;
+		u8  mask;
+		u8  src;
+		u8  reserved;
+	} imsg[4];
+
+	u8 reserved3[3928];
+	u8 msix_table[1024];
+	u8 reserved4[3072];
+	u8 pba[24];
+	u8 reserved5[4072];
+} __packed;
+
+enum {
 	SWITCHTEC_PART_CFG_EVENT_RESET = 1 << 0,
 	SWITCHTEC_PART_CFG_EVENT_MRPC_CMP = 1 << 1,
 	SWITCHTEC_PART_CFG_EVENT_MRPC_ASYNC_CMP = 1 << 2,
-- 
2.11.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/16] Switchtec NTB Support Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 12/16] switchtec_ntb: add link management Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 04/16] switchtec: add link event notifier callback Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 11/16] switchtec_ntb: add skeleton NTB driver Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 15/16] switchtec_ntb: add memory window support Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 13/16] switchtec_ntb: implement doorbell registers Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 07/16] ntb: ntb_test: ensure the link is up before trying to configure the mws Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 02/16] switchtec: export class symbol for use in upper layer driver Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 03/16] switchtec: add NTB hardware register definitions Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 16/16] switchtec_ntb: update switchtec documentation with notes for NTB Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  [PATCH v2 01/16] switchtec: move structure definitions into a common header Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 18:10 +0200
  RE: [PATCH v2 00/16] Switchtec NTB Support "Allen Hubbe" <Allen.Hubbe@dell.com> - 2017-07-18 20:00 +0200
    Re: [PATCH v2 00/16] Switchtec NTB Support Logan Gunthorpe <logang@deltatee.com> - 2017-07-18 20:10 +0200

csiph-web