From patchwork Tue Aug 9 23:22:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Williams X-Patchwork-Id: 12940066 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 637FBC25B08 for ; Tue, 9 Aug 2022 23:22:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229684AbiHIXW1 (ORCPT ); Tue, 9 Aug 2022 19:22:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229599AbiHIXWY (ORCPT ); Tue, 9 Aug 2022 19:22:24 -0400 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DAFF96FA3D; Tue, 9 Aug 2022 16:22:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660087335; x=1691623335; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=olZOrVVd02acxZ86sJD3dvlGq+RfCIOtZp2mu6G45gM=; b=clbVRykY6Mfg/wsXkET9bg6Tokb0HpoWrAWnlQdLGIoA3nCF/gNhMPAH icerP3v7Mp7RFpvQTNrzujA7oPUIK9wAmvjiRee6/7pUMV4JZ6PKj8Yi7 RwWUTxOv3ZC9QAnwDj/yx3yxPz4tKYGA/HgPuTJVocSVQvh9KSk4D+mGz 2pracnQM4wmUINeH06MyDgbK32ydqW4aPjK4Kq42GmQpKemKF3JEZMmfI d1+PT7M6Sgu9JOQvkW6bh6CInDx3us8sAz3dArMJeVbpbtC22yuy2ZsKt vItGcpJTSuGa5mZIygSdIf6QMTSlACQ4/vYOGifR+hLywEIjfNE7vEpcz g==; X-IronPort-AV: E=McAfee;i="6400,9594,10434"; a="352687170" X-IronPort-AV: E=Sophos;i="5.93,225,1654585200"; d="scan'208";a="352687170" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2022 16:22:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,225,1654585200"; d="scan'208";a="637898339" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 09 Aug 2022 16:22:15 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Tue, 9 Aug 2022 16:22:14 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Tue, 9 Aug 2022 16:22:14 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Tue, 9 Aug 2022 16:22:14 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.103) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Tue, 9 Aug 2022 16:22:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VrDErfbu5GGeV2fNLkkIq280RpHK9ijDrH/Y3Z1xeCqGKbUGCgGBOpDeUr8YtKTQxb04XI0HW4ozrnOjDkG7sUzdJZca8ezetgWGGflhBqiZzOwBA5NOY3U1yb2/1V5vRUogYeGBqhZsL8M149lv0GkDtNdJe6mXe6/vdyDT5rT4Lm7SSBFSc2wyWuSzFFLBZdOE/vEFOfcXEVO7eZwMjJLTzHz6Ne2HG/zGQVU92z7cvc04mnloIySM5fRdUQ2l/FqSYamsHJWpj3D6DY9diIxFArx88qKZjDomi04ZOQk2wwUguTAgkzZmH87stDWRKUXSVCXVYzdXV21ExHlwOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=olZOrVVd02acxZ86sJD3dvlGq+RfCIOtZp2mu6G45gM=; b=NxkHVQ8pXv3JBzkDPel0pKIfprDOKgeDuy8JMuCB6gNfxDlQg2j//1vnqK1XpdzRtVZwpZmuyW4nxdLpatn2yXQhBnfc1zr7VRd0rDP+0Q8LaHp8+U73kdMz8OXpxPo5C0rsZFT9J/Ja8wTn+qUIFopMMfTk6eLSVeiSMxzYBZa6yFyv2S+WZukqcYXPtIiWWXu1Q6ugKVWTC+j3pdl2Qmgy9OmW37ifKQpdbzgf0OiCafPQ+EESfV7FEyu1U8mDcod3B5xnSlNPK85K1A3jFHVFSo/HekWYfBeJxm3YqAmuHtvqZDdSdrAs66D5zLRTH4peZH4ZLgWUAX7HhSvd6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MWHPR1101MB2126.namprd11.prod.outlook.com (2603:10b6:301:50::20) by CO1PR11MB4836.namprd11.prod.outlook.com (2603:10b6:303:9d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.10; Tue, 9 Aug 2022 23:22:05 +0000 Received: from MWHPR1101MB2126.namprd11.prod.outlook.com ([fe80::9847:345e:4c5b:ca12]) by MWHPR1101MB2126.namprd11.prod.outlook.com ([fe80::9847:345e:4c5b:ca12%6]) with mapi id 15.20.5504.020; Tue, 9 Aug 2022 23:22:05 +0000 From: "Williams, Dan J" To: "Torvalds, Linus" CC: "linux-pci@vger.kernel.org" , "linux-cxl@vger.kernel.org" , "nvdimm@lists.linux.dev" , "linux-kernel@vger.kernel.org" Subject: [GIT PULL] Compute Express Link for 6.0 Thread-Topic: [GIT PULL] Compute Express Link for 6.0 Thread-Index: AQHYrEbWInMMcbza0UiZR7nHNxxrWA== Date: Tue, 9 Aug 2022 23:22:05 +0000 Message-ID: <5b0d82d63ebd24f454c5459a0ff9e2e12f1e37ac.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.42.4 (3.42.4-2.module_f35+14217+587aad52) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 704820a8-0034-48ca-c1a9-08da7a5df90c x-ms-traffictypediagnostic: CO1PR11MB4836:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VLRHCHkUFv3fhvEB2U0TZz+E4bC23eD0NGBvLfABuyIDpo7GmnViouqu1UXyZSJVE4OcVrjqYPfZXJumsnQ2938F88iihJfwPprS3vNvOio7RNXqOtE5qAqTIPUarQy7YKLuB1XSyP23s/5oE6Ms4EN3CvJ4IRHYgFCDQ4ADxKsX7zXzPztTSRvA8R69Iml1gq9XkOBsjFkjJjQBSmdRUMsk/W96qvFF8q9p/99VGsKFWzPA0JVNguFpn+lo68i3U2AolCyoPiNMboLEG9AxF64ZZpoeT0PENBWc2zW8BX2bDAkru7KSiq+IJB9iPrOujAmanYxWLhK1+mUcQrAPxDWr2vyWF/0o8tHCsjdE3DthV70eMawepbvqNY7jUspUnnDwFgdZSi0cVyVi4ll+pWybgfHbw+e/MX2774L5J8/emznBS5r33VN2K0SIF6SlZ+K+/TgUk8azEUx7HhBjnHkCMrbfWhqNKIeJdwzUh+TJo1AJi0iPG8V/PIT338TtiaMs6Q2rXUUTEsaKHMJVM7FV4eeaZZqrvQq3FYN1L+JYUwhWv3NZeBrMtqF7FgDXsUU1BpPdnu6BjOE92VLaquwfRakpLp8+sHBJCtS7s562wKl247Pj1IP0spHmj0rRzTWpUXk3/diGtihR87nfw2+XEEtp6vjIT9MRSppQfZHFMqYyg9B3lnSNQQX9DdyKRL856n+Qn080ddSy5DS5BHvfMSdydO6GARIz5AcQqnD8aI7esOzS6Aag1HzxIsK+4Ial5GigEr/qfL19qkSl81bvzfqknEXX2/inKMerFio= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1101MB2126.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(39860400002)(346002)(376002)(136003)(396003)(76116006)(71200400001)(26005)(8676002)(91956017)(54906003)(4326008)(86362001)(316002)(6916009)(66556008)(64756008)(66946007)(82960400001)(66446008)(38070700005)(6486002)(478600001)(66476007)(41300700001)(8936002)(186003)(36756003)(5660300002)(122000001)(83380400001)(6506007)(6512007)(2906002)(2616005)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?0IqYitJ1CELl08huFPMdBE6Xqznj?= =?utf-8?q?Zt9/UwaDoWTgZ6lset+Lzh9d0DY3qeJhc2EQ/GIyrvWBVIksqwM22PNp785kWg7NY?= =?utf-8?q?IUJky6tVfar3K2fZZYY4Lh25y4TmuGjYJl8WyFRw9k81IBOtANxdYhz+RfFSsBlE/?= =?utf-8?q?hBLViurWFgIX3mv4kt8ZG3HPqct5DEXgomiCoRmAi2xykuSLVsLDu1dHOu1U4A/du?= =?utf-8?q?1Ab84SbrvAOYn1Ad2S3st6diLl5OMN2mX8hOQK8fNSshGptgQJbdjuOvWhW6qbW4+?= =?utf-8?q?he54+XQs14+AIydSFQDHbH1Rx1duCzMOsKWt2y4mc9lAlF2Nfa1aP5oqP/aZe0pKU?= =?utf-8?q?a8DnywmKL3Uga0cfjJC4/TxdGMVB3P564NxvLqfyIZ5/miva2GQlPg1fngy238vlS?= =?utf-8?q?a+SC/7DAIU/2z/jaQ3iC0TT/k9Ei0O4WZvvyZqqfdjQPUjs8OMHDWdicne4q5xuOB?= =?utf-8?q?mnsv0colrGcij0b3yz2b2vwRQfPtMc3k3FQNRUanyK9MuRecYNmBQIOCXo2VM0FaG?= =?utf-8?q?XKwP+zCPTDZ0XsPWHnc4NHBLAEhNONk5K1msbbkzetdp5Ehd9mlMVMTbU6xUcnFPT?= =?utf-8?q?/XC8GG0qtnT9w9UTdzBvuUHTIJPHcRbdmbCIS5RsqMxpNHFNsUmluqE03RhLmyaRL?= =?utf-8?q?CqW5k0HsOYpCDpyGL/m3q1ndSyXihgkT8DqF3KygqygNIE+y2rMwKLiMQ0Ri8+urA?= =?utf-8?q?Wridrxf4MrvidHfkR9R+hr3jYHHOE6Zk2vw65ejcnDwFtMdZ813KZSp2zq6NCBbZO?= =?utf-8?q?z35D5y0sRenCWKdS2UVEFrwKgVLQnYAwaXoVnfAyv0uSWYSMfuQHLkPIkwgwFf0yQ?= =?utf-8?q?x5X9qUib91YsJfTJGNJ8sgGzevJqeYV9rYZcFFzPHlXbv63/bROeaEKpsO1DFDbKr?= =?utf-8?q?8Ae4u+lnFkhreYT3WPgZbGzZueKevySiymW4pG4yUg4yG7qZQjRUBX6gOihjsEtYk?= =?utf-8?q?1wnJm57+xbMzAnZKP1ZzeQ52aCCt+Jy2YcqKfJ7A0Vrp09946IuqW4T1XXiiKC2VE?= =?utf-8?q?bnxXnEBGyA6fA/sl8FwhPP1ZOsL/cnXcA6dCjlHCAP6JiO/5YmTq5bv6hxd8KBSD7?= =?utf-8?q?nWOvPotPpirQf28BI0oBkscFC0xRbJt5x9CZHhc4maAjEbQVSBmTR5e44I6SLUWNF?= =?utf-8?q?/JHQsfsvV86VmV6TZDSpHRB3VckXcFUzZGFbTGsnCET14Fa2An1XAzkChf6q/47Tp?= =?utf-8?q?gv7mdY0ouUyZr2MQwAbT2teuT0KsA4fPhVvpsEho1ORpb6V8O5qMiSjNJg/TQLgWe?= =?utf-8?q?T4AjugRCL84Ioa8iSJmTz3U4HozGDRnLDFXo2OLoXK1M2xaVaivma/abusZqBb1Js?= =?utf-8?q?iOHM5mLejofFYCoWuIbzQaHqAwPSYOL3mdngDcOgYyGg4lbh6VWSZrphwsmM9BaJA?= =?utf-8?q?mjhbGueg1D0bIagHZUaKj+ZsTN5eBhvHrlYTujIjpgyeOdf++3bgt1XepKp0QbiLW?= =?utf-8?q?rmQyRNssdHOCJf7Ur75lEsV/z7P8MtBp1tvNGA+uGyNsw5ah7JwDzEa2ZRAZ66vY9?= =?utf-8?q?1fBgaPCBRgMEUMayBfc0+RsZ4YiwM6vhqw=3D=3D?= Content-ID: <63D03A422ED4464284EA1422854032BB@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1101MB2126.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 704820a8-0034-48ca-c1a9-08da7a5df90c X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2022 23:22:05.4631 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: C6K+9g/GC5qTUYdmzS6BSMiSVEDyvhQuw61xGimNr4D3s6GZ1pfcO6E3MsdIsMuJo8fRn7Y984dNbX0dfUB/yf5eOSqn7+6cUxmG1lME59g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4836 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.0 ...to receive initial support and infrastructure for dynamic CXL region provisioning and other updates. The support is considered "initial" because it only tackles persistent memory provisioning, and only for the decode setup portion of the process. This is important to merge in this form because it is foundational for other development that depends on the new 'struct cxl_region' object. That follow-on development for features like region assembly from labels, address translation for error handling, and RAM region provisioning will play out over the next several development cycles. Addtionally the recently released CXL 3.0 specification adds more complexity like "dynamic capacity devices" (think "thin provisioning for memory") that builds on top of the 'struct cxl_region' object. There is new core driver infrastructure to note in this pull. First, alloc_free_mem_region() is introduced as a straightforward enhancement of request_free_mem_region() as a generic allocator of physical memory address space. Recall that CXL provides platform "windows" where CXL regions can be dynamically provisioned, and that provisioning flow needs an allocator. Related to that is the new export of insert_resource_expand_to_fit(), but only into the 'CXL' symbol namespace. That lets the CXL subsystem advertise the platform ranges to exclude from request_free_mem_region() requests. Lastly, there is a new PCI core driver service for DOE (Data Object Exchange) mailboxes. This is a mailbox built over configuration cycles* that has many use cases, one of which is retrieving the CDAT (Coherent Device Attribute Table) from CXL endpoints. This has appeared in linux-next and has attracted several fixes and cleanups. There is debug in-flight for a recent problem report of configuring 4-way regions under a single host-bridge, but these commits have otherwise passed testing on several emulation platforms including but not limited to QEMU and the in-kernel cxl_test infrastructure. There are no other known issues or conflicts. The new driver infrastructure has acks from Greg (resource APIs) and Bjorn (PCI DOE). A few tags also arrived after the branch was cut for soaking in linux-next: 910bc55da828 cxl/region: Move HPA setup to cxl_region_attach() Reviewed-by: Jonathan Cameron 298d44d04b2b cxl/region: Fix x1 interleave to greater than x1 interleave routing Reviewed-by: Jonathan Cameron Tested-by: Jonathan Cameron #via qemu 4d8e4ea5bb39 cxl/region: Disallow region granularity != window granularity Reviewed-by: Jonathan Cameron Please pull, thanks. * Note, I am uneasy that DOE seems to have both use cases where a kernel driver is appropriate, and some where a userspace driver over PCI-sysfs is sufficient. As DOE proliferates I expect Linux will need to be more explicit about managing those potential conflicts. --- The following changes since commit e35f5718903b093be4b1d3833aa8a32f864a3ef1: cxl/mbox: Fix missing variable payload checks in cmd size validation (2022-06-28 22:03:18 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.0 for you to fetch changes up to 1cd8a2537eb07751d405ab7e2223f20338a90506: cxl/hdm: Fix skip allocations vs multiple pmem allocations (2022-08-05 16:11:38 -0700) ---------------------------------------------------------------- cxl for 6.0 - Introduce a 'struct cxl_region' object with support for provisioning and assembling persistent memory regions. - Introduce alloc_free_mem_region() to accompany the existing request_free_mem_region() as a method to allocate physical memory capacity out of an existing resource. - Export insert_resource_expand_to_fit() for the CXL subsystem to late-publish CXL platform windows in iomem_resource. - Add a polled mode PCI DOE (Data Object Exchange) driver service and use it in cxl_pci to retrieve the CDAT (Coherent Device Attribute Table). ---------------------------------------------------------------- Bagas Sanjaya (3): cxl/regions: add padding for cxl_rr_ep_add nested lists cxl/region: describe targets and nr_targets members of cxl_region_params Documentation: cxl: remove dangling kernel-doc reference Ben Widawsky (6): cxl/hdm: Use local hdm variable cxl/hdm: Require all decoders to be enumerated cxl/hdm: Add sysfs attributes for interleave ways + granularity cxl/region: Add region creation support cxl/region: Add a 'uuid' attribute cxl/region: Add interleave geometry attributes Dan Carpenter (4): cxl/region: uninitialized variable in alloc_hpa() cxl/region: prevent underflow in ways_to_cxl() cxl/region: decrement ->nr_targets on error in cxl_region_attach() cxl/region: Fix IS_ERR() vs NULL check Dan Williams (54): tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention cxl/port: Keep port->uport valid for the entire life of a port cxl/core: Rename ->decoder_range ->hpa_range cxl/core: Drop ->platform_res attribute for root decoders cxl/core: Drop is_cxl_decoder() cxl: Introduce cxl_to_{ways,granularity} cxl/mem: Convert partition-info to resources cxl/Documentation: List attribute permissions cxl/debug: Move debugfs init to cxl_core_init() cxl/mem: Add a debugfs version of 'iomem' for DPA, 'dpamem' tools/testing/cxl: Move cxl_test resources to the top of memory tools/testing/cxl: Expand CFMWS windows tools/testing/cxl: Add partition support tools/testing/cxl: Fix decoder default state cxl/port: Cache CXL host bridge data cxl/hdm: Initialize decoder type for memory expander devices cxl/pmem: Delete unused nvdimm attribute Documentation/cxl: Use a double line break between entries cxl/core: Define a 'struct cxl_switch_decoder' cxl/acpi: Track CXL resources in iomem_resource cxl/core: Define a 'struct cxl_root_decoder' cxl/core: Define a 'struct cxl_endpoint_decoder' cxl/hdm: Enumerate allocated DPA cxl/hdm: Add 'mode' attribute to decoder objects cxl/hdm: Track next decoder to allocate cxl/hdm: Add support for allocating DPA to an endpoint decoder cxl/port: Record dport in endpoint references cxl/port: Record parent dport when adding ports cxl/port: Move 'cxl_ep' references to an xarray per port cxl/port: Move dport tracking to an xarray cxl/mem: Enumerate port targets before adding endpoints resource: Introduce alloc_free_mem_region() cxl/region: Allocate HPA capacity to regions cxl/region: Enable the assignment of endpoint decoders to regions cxl/acpi: Add a host-bridge index lookup mechanism cxl/region: Attach endpoint decoders cxl/region: Program target lists cxl/hdm: Commit decoder state to hardware cxl/region: Add region driver boiler plate cxl/pmem: Fix offline_nvdimm_bus() to offline by bridge cxl/region: Introduce cxl_pmem_region objects cxl/acpi: Autoload driver for 'cxl_acpi' test devices cxl/region: Delete 'region' attribute from root decoders cxl/acpi: Minimize granularity for x1 interleaves cxl/hdm: Fix DPA reservation vs cxl_endpoint_decoder lifetime cxl/region: Stop initializing interleave granularity cxl/region: Fix port setup uninitialized variable warnings cxl/region: Fix region commit uninitialized variable warning cxl/region: Fix region reference target accounting cxl/region: Fix decoder interleave programming cxl/region: Move HPA setup to cxl_region_attach() cxl/region: Fix x1 interleave to greater than x1 interleave routing cxl/region: Disallow region granularity != window granularity cxl/hdm: Fix skip allocations vs multiple pmem allocations Ira Weiny (4): PCI: Replace magic constant for PCI Sig Vendor ID cxl/pci: Create PCI DOE mailbox's for memory devices driver-core: Introduce BIN_ATTR_ADMIN_{RO,RW} cxl/port: Read CDAT table Jonathan Cameron (2): PCI: Add vendor ID for the PCI SIG PCI/DOE: Add DOE mailbox support functions Michael Ellerman (1): powerpc/mm: Export memory_add_physaddr_to_nid() for modules .clang-format | 1 + Documentation/ABI/testing/sysfs-bus-cxl | 305 +++- Documentation/driver-api/cxl/memory-devices.rst | 8 + arch/powerpc/mm/mem.c | 1 + drivers/cxl/Kconfig | 9 + drivers/cxl/acpi.c | 243 ++- drivers/cxl/core/Makefile | 1 + drivers/cxl/core/core.h | 51 +- drivers/cxl/core/hdm.c | 691 ++++++++- drivers/cxl/core/mbox.c | 95 +- drivers/cxl/core/memdev.c | 4 +- drivers/cxl/core/pci.c | 181 ++- drivers/cxl/core/pmem.c | 4 +- drivers/cxl/core/port.c | 738 ++++++--- drivers/cxl/core/region.c | 1896 +++++++++++++++++++++++ drivers/cxl/cxl.h | 312 +++- drivers/cxl/cxlmem.h | 42 +- drivers/cxl/cxlpci.h | 1 + drivers/cxl/mem.c | 49 +- drivers/cxl/pci.c | 46 +- drivers/cxl/pmem.c | 259 +++- drivers/cxl/port.c | 53 + drivers/nvdimm/region_devs.c | 28 +- drivers/pci/Kconfig | 3 + drivers/pci/Makefile | 1 + drivers/pci/doe.c | 536 +++++++ drivers/pci/probe.c | 2 +- include/linux/ioport.h | 3 + include/linux/libnvdimm.h | 5 + include/linux/pci-doe.h | 77 + include/linux/pci_ids.h | 1 + include/linux/sysfs.h | 16 + include/uapi/linux/pci_regs.h | 29 +- kernel/resource.c | 185 ++- mm/Kconfig | 5 + tools/testing/cxl/Kbuild | 1 + tools/testing/cxl/test/cxl.c | 131 +- tools/testing/cxl/test/mem.c | 53 +- tools/testing/cxl/test/mock.c | 8 +- 39 files changed, 5498 insertions(+), 576 deletions(-) create mode 100644 drivers/cxl/core/region.c create mode 100644 drivers/pci/doe.c create mode 100644 include/linux/pci-doe.h