linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
To: linux-scsi@vger.kernel.org,
	James Bottomley <jejb@linux.vnet.ibm.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"Matthew R. Ochs" <mrochs@linux.vnet.ibm.com>,
	"Manoj N. Kumar" <manoj@linux.vnet.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org,
	Andrew Donnellan <andrew.donnellan@au1.ibm.com>,
	Frederic Barrat <fbarrat@linux.vnet.ibm.com>,
	Christophe Lombard <clombard@linux.vnet.ibm.com>
Subject: [PATCH 17/38] cxlflash: Support starting an adapter context
Date: Thu, 22 Feb 2018 16:25:04 -0600	[thread overview]
Message-ID: <1519338304-52398-1-git-send-email-ukrishn@linux.vnet.ibm.com> (raw)
In-Reply-To: <1519338010-51782-1-git-send-email-ukrishn@linux.vnet.ibm.com>

Once the adapter context is created, it needs to be started by assigning
the MMIO space for the context and by enabling the process element in the
link. This commit adds the skeleton for starting the context and assigns
the context specific MMIO space. Master contexts have access to the global
MMIO space while the rest have access to the context specific space.

Signed-off-by: Uma Krishnan <ukrishn@linux.vnet.ibm.com>
---
 drivers/scsi/cxlflash/ocxl_hw.c | 39 +++++++++++++++++++++++++++++++++++++++
 drivers/scsi/cxlflash/ocxl_hw.h |  3 +++
 2 files changed, 42 insertions(+)

diff --git a/drivers/scsi/cxlflash/ocxl_hw.c b/drivers/scsi/cxlflash/ocxl_hw.c
index 824d789..7d92df0 100644
--- a/drivers/scsi/cxlflash/ocxl_hw.c
+++ b/drivers/scsi/cxlflash/ocxl_hw.c
@@ -164,6 +164,44 @@ static int ocxlflash_process_element(void *ctx_cookie)
 }
 
 /**
+ * start_context() - local routine to start a context
+ * @ctx:	Adapter context to be started.
+ *
+ * Assign the context specific MMIO space.
+ *
+ * Return: 0 on success, -errno on failure
+ */
+static int start_context(struct ocxlflash_context *ctx)
+{
+	struct ocxl_hw_afu *afu = ctx->hw_afu;
+	struct ocxl_afu_config *acfg = &afu->acfg;
+	bool master = ctx->master;
+
+	if (master) {
+		ctx->psn_size = acfg->global_mmio_size;
+		ctx->psn_phys = afu->gmmio_phys;
+	} else {
+		ctx->psn_size = acfg->pp_mmio_stride;
+		ctx->psn_phys = afu->ppmmio_phys + (ctx->pe * ctx->psn_size);
+	}
+
+	return 0;
+}
+
+/**
+ * ocxlflash_start_context() - start a kernel context
+ * @ctx_cookie:	Adapter context to be started.
+ *
+ * Return: 0 on success, -errno on failure
+ */
+static int ocxlflash_start_context(void *ctx_cookie)
+{
+	struct ocxlflash_context *ctx = ctx_cookie;
+
+	return start_context(ctx);
+}
+
+/**
  * ocxlflash_set_master() - sets the context as master
  * @ctx_cookie:	Adapter context to set as master.
  */
@@ -573,6 +611,7 @@ static void *ocxlflash_fops_get_context(struct file *file)
 const struct cxlflash_backend_ops cxlflash_ocxl_ops = {
 	.module			= THIS_MODULE,
 	.process_element	= ocxlflash_process_element,
+	.start_context		= ocxlflash_start_context,
 	.set_master		= ocxlflash_set_master,
 	.get_context		= ocxlflash_get_context,
 	.dev_context_init	= ocxlflash_dev_context_init,
diff --git a/drivers/scsi/cxlflash/ocxl_hw.h b/drivers/scsi/cxlflash/ocxl_hw.h
index fbe9741..6912dd1 100644
--- a/drivers/scsi/cxlflash/ocxl_hw.h
+++ b/drivers/scsi/cxlflash/ocxl_hw.h
@@ -40,4 +40,7 @@ struct ocxlflash_context {
 	struct address_space *mapping;	/* Mapping for pseudo filesystem */
 	bool master;			/* Whether this is a master context */
 	int pe;				/* Process element */
+
+	phys_addr_t psn_phys;		/* Process mapping */
+	u64 psn_size;			/* Process mapping size */
 };
-- 
2.1.0

  parent reply	other threads:[~2018-02-22 22:25 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-22 22:20 [PATCH 00/38] cxlflash: OpenCXL transport support Uma Krishnan
2018-02-22 22:21 ` [PATCH 01/38] cxlflash: Preserve number of interrupts for master contexts Uma Krishnan
2018-02-22 22:22 ` [PATCH 02/38] cxlflash: Avoid clobbering context control register value Uma Krishnan
2018-02-22 22:22 ` [PATCH 03/38] cxlflash: Add argument identifier names Uma Krishnan
2018-02-22 22:22 ` [PATCH 04/38] cxlflash: Introduce OpenCXL backend Uma Krishnan
2018-02-23  4:28   ` Andrew Donnellan
2018-02-23 19:36     ` Uma Krishnan
2018-02-22 22:23 ` [PATCH 05/38] cxlflash: Hardware AFU for OpenCXL Uma Krishnan
2018-02-22 22:23 ` [PATCH 06/38] cxlflash: Read host function configuration Uma Krishnan
2018-02-22 22:23 ` [PATCH 07/38] cxlflash: Setup function acTag range Uma Krishnan
2018-02-22 22:23 ` [PATCH 08/38] cxlflash: Read host AFU configuration Uma Krishnan
2018-02-22 22:23 ` [PATCH 09/38] cxlflash: Setup AFU acTag range Uma Krishnan
2018-02-22 22:24 ` [PATCH 10/38] cxlflash: Setup AFU PASID Uma Krishnan
2018-02-22 22:24 ` [PATCH 11/38] cxlflash: Adapter context support for OpenCXL Uma Krishnan
2018-02-22 22:24 ` [PATCH 12/38] cxlflash: Use IDR to manage adapter contexts Uma Krishnan
2018-02-22 22:24 ` [PATCH 13/38] cxlflash: Support adapter file descriptors for OpenCXL Uma Krishnan
2018-02-22 22:24 ` [PATCH 14/38] cxlflash: Support adapter context discovery Uma Krishnan
2018-02-22 22:24 ` [PATCH 15/38] cxlflash: Support image reload policy modification Uma Krishnan
2018-02-22 22:24 ` [PATCH 16/38] cxlflash: MMIO map the AFU Uma Krishnan
2018-02-22 22:25 ` Uma Krishnan [this message]
2018-02-22 22:25 ` [PATCH 18/38] cxlflash: Support process specific mappings Uma Krishnan
2018-02-22 22:25 ` [PATCH 19/38] cxlflash: Support AFU state toggling Uma Krishnan
2018-02-22 22:25 ` [PATCH 20/38] cxlflash: Support reading adapter VPD data Uma Krishnan
2018-02-22 22:25 ` [PATCH 21/38] cxlflash: Setup function OpenCXL link Uma Krishnan
2018-02-22 22:26 ` [PATCH 22/38] cxlflash: Setup OpenCXL transaction layer Uma Krishnan
2018-02-22 22:26 ` [PATCH 23/38] cxlflash: Support process element lifecycle Uma Krishnan
2018-02-22 22:26 ` [PATCH 24/38] cxlflash: Support AFU interrupt management Uma Krishnan
2018-02-22 22:26 ` [PATCH 25/38] cxlflash: Support AFU interrupt mapping and registration Uma Krishnan
2018-02-22 22:26 ` [PATCH 26/38] cxlflash: Support starting user contexts Uma Krishnan
2018-02-22 22:27 ` [PATCH 27/38] cxlflash: Support adapter context polling Uma Krishnan
2018-02-22 22:27 ` [PATCH 28/38] cxlflash: Support adapter context reading Uma Krishnan
2018-02-22 22:27 ` [PATCH 29/38] cxlflash: Support adapter context mmap and release Uma Krishnan
2018-02-22 22:27 ` [PATCH 30/38] cxlflash: Support file descriptor mapping Uma Krishnan
2018-02-22 22:27 ` [PATCH 31/38] cxlflash: Introduce object handle fop Uma Krishnan
2018-02-22 22:27 ` [PATCH 32/38] cxlflash: Setup LISNs for user contexts Uma Krishnan
2018-02-22 22:27 ` [PATCH 33/38] cxlflash: Setup LISNs for master contexts Uma Krishnan
2018-02-22 22:28 ` [PATCH 34/38] cxlflash: Update synchronous interrupt status bits Uma Krishnan
2018-02-22 22:28 ` [PATCH 35/38] cxlflash: Introduce OCXL context state machine Uma Krishnan
2018-02-22 22:28 ` [PATCH 36/38] cxlflash: Register for translation errors Uma Krishnan
2018-02-22 22:28 ` [PATCH 37/38] cxlflash: Support AFU reset Uma Krishnan
2018-02-22 22:28 ` [PATCH 38/38] cxlflash: Enable OpenCXL operations Uma Krishnan
2018-02-23  4:13 ` [PATCH 00/38] cxlflash: OpenCXL transport support Andrew Donnellan
2018-02-23 18:05   ` Uma Krishnan
2018-02-23 19:38   ` Uma Krishnan
2018-02-26 14:43 ` Matthew R. Ochs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1519338304-52398-1-git-send-email-ukrishn@linux.vnet.ibm.com \
    --to=ukrishn@linux.vnet.ibm.com \
    --cc=andrew.donnellan@au1.ibm.com \
    --cc=clombard@linux.vnet.ibm.com \
    --cc=fbarrat@linux.vnet.ibm.com \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=manoj@linux.vnet.ibm.com \
    --cc=martin.petersen@oracle.com \
    --cc=mrochs@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).