All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Ben Widawsky <ben.widawsky@intel.com>
Cc: linux-cxl@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvdimm@lists.01.org, linux-pci@vger.kernel.org,
	Bjorn Helgaas <helgaas@kernel.org>,
	daniel.lll@alibaba-inc.com, jgroves <John@ml01.01.org>,
	Sean V <sean.v.kelley@intel.com>
Subject: Re: [PATCH 01/14] cxl/mem: Introduce a driver for CXL-2.0-Type-3 endpoints
Date: Mon, 1 Feb 2021 17:21:18 +0000	[thread overview]
Message-ID: <20210201172118.0000673f@Huawei.com> (raw)
In-Reply-To: <20210130002438.1872527-2-ben.widawsky@intel.com>

On Fri, 29 Jan 2021 16:24:25 -0800
Ben Widawsky <ben.widawsky@intel.com> wrote:

> From: Dan Williams <dan.j.williams@intel.com>
> 
> The CXL.mem protocol allows a device to act as a provider of "System
> RAM" and/or "Persistent Memory" that is fully coherent as if the memory
> was attached to the typical CPU memory controller.
> 
> With the CXL-2.0 specification a PCI endpoint can implement a "Type-3"
> device interface and give the operating system control over "Host
> Managed Device Memory". See section 2.3 Type 3 CXL Device.
> 
> The memory range exported by the device may optionally be described by
> the platform firmware memory map, or by infrastructure like LIBNVDIMM to
> provision persistent memory capacity from one, or more, CXL.mem devices.
> 
> A pre-requisite for Linux-managed memory-capacity provisioning is this
> cxl_mem driver that can speak the mailbox protocol defined in section
> 8.2.8.4 Mailbox Registers.
> 
> For now just land the initial driver boiler-plate and Documentation/
> infrastructure.
> 
> Link: https://www.computeexpresslink.org/download-the-specification
> Cc: Jonathan Corbet <corbet@lwn.net>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
Hi Ben,

One thing below about using defs from generic PCI headers where
they are not CXL specific.


> diff --git a/drivers/cxl/pci.h b/drivers/cxl/pci.h
> new file mode 100644
> index 000000000000..a8a9935fa90b
> --- /dev/null
> +++ b/drivers/cxl/pci.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/* Copyright(c) 2020 Intel Corporation. All rights reserved. */
> +#ifndef __CXL_PCI_H__
> +#define __CXL_PCI_H__
> +
> +#define PCI_CLASS_MEMORY_CXL	0x050210
> +
> +/*
> + * See section 8.1 Configuration Space Registers in the CXL 2.0
> + * Specification
> + */
> +#define PCI_EXT_CAP_ID_DVSEC		0x23
> +#define PCI_DVSEC_VENDOR_ID_CXL		0x1E98
> +#define PCI_DVSEC_VENDOR_ID_OFFSET	0x4
> +#define PCI_DVSEC_ID_CXL		0x0
> +#define PCI_DVSEC_ID_OFFSET		0x8

include/uapi/linux/pci-regs.h includes equivalents of generic parts of
this already though PCI_DVSEC_HEADER1 isn't exactly informative naming.

> +
> +#define PCI_DVSEC_ID_CXL_REGLOC		0x8
> +
> +#endif /* __CXL_PCI_H__ */
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Ben Widawsky <ben.widawsky@intel.com>
Cc: <linux-cxl@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	Jonathan Corbet <corbet@lwn.net>, <linux-acpi@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-nvdimm@lists.01.org>,
	<linux-pci@vger.kernel.org>, Bjorn Helgaas <helgaas@kernel.org>,
	"Chris Browy" <cbrowy@avery-design.com>,
	Christoph Hellwig <hch@infradead.org>,
	"Ira Weiny" <ira.weiny@intel.com>,
	Jon Masters <jcm@jonmasters.org>,
	"Rafael Wysocki" <rafael.j.wysocki@intel.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	Vishal Verma <vishal.l.verma@intel.com>,
	<daniel.lll@alibaba-inc.com>,
	"John Groves (jgroves)" <jgroves@micron.com>,
	"Kelley, Sean V" <sean.v.kelley@intel.com>
Subject: Re: [PATCH 01/14] cxl/mem: Introduce a driver for CXL-2.0-Type-3 endpoints
Date: Mon, 1 Feb 2021 17:21:18 +0000	[thread overview]
Message-ID: <20210201172118.0000673f@Huawei.com> (raw)
In-Reply-To: <20210130002438.1872527-2-ben.widawsky@intel.com>

On Fri, 29 Jan 2021 16:24:25 -0800
Ben Widawsky <ben.widawsky@intel.com> wrote:

> From: Dan Williams <dan.j.williams@intel.com>
> 
> The CXL.mem protocol allows a device to act as a provider of "System
> RAM" and/or "Persistent Memory" that is fully coherent as if the memory
> was attached to the typical CPU memory controller.
> 
> With the CXL-2.0 specification a PCI endpoint can implement a "Type-3"
> device interface and give the operating system control over "Host
> Managed Device Memory". See section 2.3 Type 3 CXL Device.
> 
> The memory range exported by the device may optionally be described by
> the platform firmware memory map, or by infrastructure like LIBNVDIMM to
> provision persistent memory capacity from one, or more, CXL.mem devices.
> 
> A pre-requisite for Linux-managed memory-capacity provisioning is this
> cxl_mem driver that can speak the mailbox protocol defined in section
> 8.2.8.4 Mailbox Registers.
> 
> For now just land the initial driver boiler-plate and Documentation/
> infrastructure.
> 
> Link: https://www.computeexpresslink.org/download-the-specification
> Cc: Jonathan Corbet <corbet@lwn.net>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Ben Widawsky <ben.widawsky@intel.com>
Hi Ben,

One thing below about using defs from generic PCI headers where
they are not CXL specific.


> diff --git a/drivers/cxl/pci.h b/drivers/cxl/pci.h
> new file mode 100644
> index 000000000000..a8a9935fa90b
> --- /dev/null
> +++ b/drivers/cxl/pci.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/* Copyright(c) 2020 Intel Corporation. All rights reserved. */
> +#ifndef __CXL_PCI_H__
> +#define __CXL_PCI_H__
> +
> +#define PCI_CLASS_MEMORY_CXL	0x050210
> +
> +/*
> + * See section 8.1 Configuration Space Registers in the CXL 2.0
> + * Specification
> + */
> +#define PCI_EXT_CAP_ID_DVSEC		0x23
> +#define PCI_DVSEC_VENDOR_ID_CXL		0x1E98
> +#define PCI_DVSEC_VENDOR_ID_OFFSET	0x4
> +#define PCI_DVSEC_ID_CXL		0x0
> +#define PCI_DVSEC_ID_OFFSET		0x8

include/uapi/linux/pci-regs.h includes equivalents of generic parts of
this already though PCI_DVSEC_HEADER1 isn't exactly informative naming.

> +
> +#define PCI_DVSEC_ID_CXL_REGLOC		0x8
> +
> +#endif /* __CXL_PCI_H__ */


  parent reply	other threads:[~2021-02-01 17:22 UTC|newest]

Thread overview: 193+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-30  0:24 [PATCH 00/14] CXL 2.0 Support Ben Widawsky
2021-01-30  0:24 ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 01/14] cxl/mem: Introduce a driver for CXL-2.0-Type-3 endpoints Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30 23:51   ` David Rientjes
2021-01-30 23:51     ` David Rientjes
2021-02-01 17:21   ` Jonathan Cameron [this message]
2021-02-01 17:21     ` Jonathan Cameron
2021-02-01 17:34   ` Konrad Rzeszutek Wilk
2021-02-01 17:34     ` Konrad Rzeszutek Wilk
2021-02-02 17:58     ` Christoph Hellwig
2021-02-02 17:58       ` Christoph Hellwig
2021-02-02 18:00   ` Christoph Hellwig
2021-02-02 18:00     ` Christoph Hellwig
2021-01-30  0:24 ` [PATCH 02/14] cxl/mem: Map memory device registers Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30 23:51   ` David Rientjes
2021-01-30 23:51     ` David Rientjes
2021-02-01 16:46     ` Ben Widawsky
2021-02-01 16:46       ` Ben Widawsky
2021-02-01 18:19       ` Jonathan Cameron
2021-02-01 18:19         ` Jonathan Cameron
2021-02-01 17:36   ` Konrad Rzeszutek Wilk
2021-02-01 17:36     ` Konrad Rzeszutek Wilk
2021-02-02 18:04   ` Christoph Hellwig
2021-02-02 18:04     ` Christoph Hellwig
2021-02-02 18:31     ` Ben Widawsky
2021-02-02 18:31       ` Ben Widawsky
2021-02-03 17:12       ` Christoph Hellwig
2021-02-03 17:12         ` Christoph Hellwig
2021-01-30  0:24 ` [PATCH 03/14] cxl/mem: Find device capabilities Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30 23:51   ` David Rientjes
2021-01-30 23:51     ` David Rientjes
2021-02-01 16:53     ` Ben Widawsky
2021-02-01 16:53       ` Ben Widawsky
2021-02-01 21:51       ` David Rientjes
2021-02-01 21:51         ` David Rientjes
2021-02-01 21:58         ` Ben Widawsky
2021-02-01 21:58           ` Ben Widawsky
2021-02-01 22:23           ` David Rientjes
2021-02-01 22:23             ` David Rientjes
2021-02-01 22:28             ` Ben Widawsky
2021-02-01 22:28               ` Ben Widawsky
2021-02-01 22:33               ` Ben Widawsky
2021-02-01 22:33                 ` Ben Widawsky
2021-02-01 22:45                 ` David Rientjes
2021-02-01 22:45                   ` David Rientjes
2021-02-01 22:50                   ` Ben Widawsky
2021-02-01 22:50                     ` Ben Widawsky
2021-02-01 23:09                     ` David Rientjes
2021-02-01 23:09                       ` David Rientjes
2021-02-01 23:17                       ` Ben Widawsky
2021-02-01 23:17                         ` Ben Widawsky
2021-02-01 23:58                         ` David Rientjes
2021-02-01 23:58                           ` David Rientjes
2021-02-02  0:11                           ` Ben Widawsky
2021-02-02  0:11                             ` Ben Widawsky
2021-02-02  0:14                             ` Dan Williams
2021-02-02  0:14                               ` Dan Williams
2021-02-02  1:09                               ` David Rientjes
2021-02-02  1:09                                 ` David Rientjes
2021-02-01 22:02         ` Dan Williams
2021-02-01 22:02           ` Dan Williams
2021-02-01 17:41   ` Konrad Rzeszutek Wilk
2021-02-01 17:41     ` Konrad Rzeszutek Wilk
2021-02-01 17:50     ` Ben Widawsky
2021-02-01 17:50       ` Ben Widawsky
2021-02-01 18:08       ` Konrad Rzeszutek Wilk
2021-02-01 18:08         ` Konrad Rzeszutek Wilk
2021-02-02 18:10   ` Christoph Hellwig
2021-02-02 18:10     ` Christoph Hellwig
2021-02-02 18:24     ` Ben Widawsky
2021-02-02 18:24       ` Ben Widawsky
2021-02-03 17:15       ` Christoph Hellwig
2021-02-03 17:15         ` Christoph Hellwig
2021-02-03 17:23         ` Ben Widawsky
2021-02-03 17:23           ` Ben Widawsky
2021-02-03 21:23           ` Dan Williams
2021-02-03 21:23             ` Dan Williams
2021-02-04  7:16             ` Christoph Hellwig
2021-02-04  7:16               ` Christoph Hellwig
2021-02-04 15:29               ` Ben Widawsky
2021-02-04 15:29                 ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 04/14] cxl/mem: Implement polled mode mailbox Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30 23:51   ` David Rientjes
2021-01-30 23:51     ` David Rientjes
2021-02-01 20:00     ` Dan Williams
2021-02-01 20:00       ` Dan Williams
2021-02-02 22:57       ` Ben Widawsky
2021-02-02 22:57         ` Ben Widawsky
2021-02-02 23:54         ` Dan Williams
2021-02-02 23:54           ` Dan Williams
2021-02-03  0:54           ` Ben Widawsky
2021-02-03  0:54             ` Ben Widawsky
2021-02-02 22:50     ` Ben Widawsky
2021-02-02 22:50       ` Ben Widawsky
2021-02-01 17:54   ` Konrad Rzeszutek Wilk
2021-02-01 17:54     ` Konrad Rzeszutek Wilk
2021-02-01 19:13     ` Ben Widawsky
2021-02-01 19:13       ` Ben Widawsky
2021-02-01 19:28       ` Dan Williams
2021-02-01 19:28         ` Dan Williams
2021-02-04 21:53         ` [EXT] " John Groves (jgroves)
2021-02-04 22:24           ` Ben Widawsky
2021-02-04 22:24             ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 05/14] cxl/mem: Register CXL memX devices Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30  0:31   ` Dan Williams
2021-01-30  0:31     ` Dan Williams
2021-01-30 23:52   ` David Rientjes
2021-01-30 23:52     ` David Rientjes
2021-02-01 17:10     ` Ben Widawsky
2021-02-01 17:10       ` Ben Widawsky
2021-02-01 21:53       ` David Rientjes
2021-02-01 21:53         ` David Rientjes
2021-02-01 21:55         ` Dan Williams
2021-02-01 21:55           ` Dan Williams
2021-02-02 18:13   ` Christoph Hellwig
2021-02-02 18:13     ` Christoph Hellwig
2021-01-30  0:24 ` [PATCH 06/14] cxl/mem: Add basic IOCTL interface Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-02-02 18:15   ` Christoph Hellwig
2021-02-02 18:15     ` Christoph Hellwig
2021-02-02 18:33     ` Ben Widawsky
2021-02-02 18:33       ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 07/14] cxl/mem: Add send command Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-02-01 18:15   ` Konrad Rzeszutek Wilk
2021-02-01 18:15     ` Konrad Rzeszutek Wilk
2021-02-02 23:08     ` Ben Widawsky
2021-02-02 23:08       ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 08/14] taint: add taint for direct hardware access Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-02-01 18:18   ` Konrad Rzeszutek Wilk
2021-02-01 18:18     ` Konrad Rzeszutek Wilk
2021-02-01 18:34     ` Ben Widawsky
2021-02-01 18:34       ` Ben Widawsky
2021-02-01 19:01       ` Dan Williams
2021-02-01 19:01         ` Dan Williams
2021-02-02  2:49         ` Konrad Rzeszutek Wilk
2021-02-02  2:49           ` Konrad Rzeszutek Wilk
2021-02-02 17:46           ` Dan Williams
2021-02-02 17:46             ` Dan Williams
2021-02-08 22:00   ` Dan Williams
2021-02-08 22:00     ` Dan Williams
2021-02-08 22:09     ` Kees Cook
2021-02-08 22:09       ` Kees Cook
2021-02-08 23:05       ` Ben Widawsky
2021-02-08 23:05         ` Ben Widawsky
2021-02-08 23:36       ` Dan Williams
2021-02-08 23:36         ` Dan Williams
2021-02-09  1:03         ` Dan Williams
2021-02-09  1:03           ` Dan Williams
2021-02-09  3:36           ` Ben Widawsky
2021-02-09  3:36             ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 09/14] cxl/mem: Add a "RAW" send command Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-02-01 18:24   ` Konrad Rzeszutek Wilk
2021-02-01 18:24     ` Konrad Rzeszutek Wilk
2021-02-01 19:27     ` Ben Widawsky
2021-02-01 19:27       ` Ben Widawsky
2021-02-01 19:34       ` Konrad Rzeszutek Wilk
2021-02-01 19:34         ` Konrad Rzeszutek Wilk
2021-02-01 21:20         ` Dan Williams
2021-02-01 21:20           ` Dan Williams
2021-01-30  0:24 ` [PATCH 10/14] cxl/mem: Create concept of enabled commands Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 11/14] cxl/mem: Use CEL for enabling commands Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 12/14] cxl/mem: Add set of informational commands Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-01-30  0:24 ` [PATCH 13/14] cxl/mem: Add limited Get Log command (0401h) Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky
2021-02-01 18:28   ` Konrad Rzeszutek Wilk
2021-02-01 18:28     ` Konrad Rzeszutek Wilk
2021-02-02 23:51     ` Ben Widawsky
2021-02-02 23:51       ` Ben Widawsky
2021-02-02 23:57       ` Dan Williams
2021-02-02 23:57         ` Dan Williams
2021-02-03 17:16         ` Ben Widawsky
2021-02-03 17:16           ` Ben Widawsky
2021-02-03 18:14           ` Konrad Rzeszutek Wilk
2021-02-03 18:14             ` Konrad Rzeszutek Wilk
2021-02-03 20:31             ` Dan Williams
2021-02-03 20:31               ` Dan Williams
2021-02-04 18:55               ` Ben Widawsky
2021-02-04 18:55                 ` Ben Widawsky
2021-02-04 21:01                 ` Dan Williams
2021-02-04 21:01                   ` Dan Williams
2021-01-30  0:24 ` [PATCH 14/14] MAINTAINERS: Add maintainers of the CXL driver Ben Widawsky
2021-01-30  0:24   ` Ben Widawsky

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=20210201172118.0000673f@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=John@ml01.01.org \
    --cc=ben.widawsky@intel.com \
    --cc=corbet@lwn.net \
    --cc=daniel.lll@alibaba-inc.com \
    --cc=helgaas@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-cxl@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=sean.v.kelley@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.