{"id":2197136,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2197136/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260217080102.206581-4-sunlightlinux@gmail.com>","date":"2026-02-17T08:00:58","name":"[RFC,1/3] PCI: Add PCIe Gen 7 (128 GT/s) register and speed definitions","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"25fd49bb180da080a97a565a2f194a74b32adf1a","submitter":{"id":92653,"url":"http://patchwork.ozlabs.org/api/1.0/people/92653/?format=json","name":"Ionut Nechita (Sunlight Linux)","email":"sunlightlinux@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260217080102.206581-4-sunlightlinux@gmail.com/mbox/","series":[{"id":492389,"url":"http://patchwork.ozlabs.org/api/1.0/series/492389/?format=json","date":"2026-02-17T08:00:56","name":"PCI: Add PCIe Gen 7 (128 GT/s) speed support","version":1,"mbox":"http://patchwork.ozlabs.org/series/492389/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2197136/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-47422-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20230601 header.b=ZU/pKziZ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-47422-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"ZU/pKziZ\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.54","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFXDN0lLDz1xwD\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 19:02:12 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id E1583301224B\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 08:01:32 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 9A9722D9EE8;\n\tTue, 17 Feb 2026 08:01:32 +0000 (UTC)","from mail-wm1-f54.google.com (mail-wm1-f54.google.com\n [209.85.128.54])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 44F1F2D0C7B\n\tfor <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 08:01:31 +0000 (UTC)","by mail-wm1-f54.google.com with SMTP id\n 5b1f17b1804b1-48068127f00so41410655e9.3\n        for <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 00:01:31 -0800 (PST)","from ionutnechita-arz2022.localdomain\n ([2a02:2f07:6006:8800:54ea:a0a1:e16b:9ca4])\n        by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48371a21cbesm153558775e9.5.2026.02.17.00.01.28\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Tue, 17 Feb 2026 00:01:29 -0800 (PST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771315292; cv=none;\n b=U1Ts2u6yC1t2+uAVj2UN4wAA4a8odFsKPPNh/UWF4BbrNAI3kPw4LWhkVdn+q95jZLOjvUqriIiMJeSR1fgkWzENopizSkOddf3wlYplyxrpfidU1xcpLNdJVH6Wd1qVsfjj4BTbGIye0VJzzujIuq+9YqGEBWFPKDfgGreS/L8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771315292; c=relaxed/simple;\n\tbh=l/XFNhsX7ERB7yaujlgzJEC3/+9JE4SydtkgZp8Bemg=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=NwVK6sVSGqOucD6+cXCr39QFMZrxMYEzFh2BMIfSuWPeuPvnvuGWhXWnABTdhBbmZLE5RySUP+f560nX0FVUqGMh0bxXK5qdP7u44wdG4q29i7nFTPoZcnG3z6qpGRIxxso+tylqRCce1u+2GcciS6zhGQin8r0HaTyn5H+zKmE=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=ZU/pKziZ; arc=none smtp.client-ip=209.85.128.54","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20230601; t=1771315290; x=1771920090;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=kF6ZhZceexRomvWkubldKlsxvta1sWwN/u0Zy1Qrmak=;\n        b=ZU/pKziZLd2CumEKBPlwgIGSbeZw35K3R3k1vs9uQ+VcfMGslVuPteJhXSopvViZy8\n         B6WzQO72TAxRhGovpNEaiAjMmHHf41Or7UUxD708DrnsSPtnOCVbWabdPoCPqTrZBZuz\n         2X9M5+oPaKGq4hwZ3nMjmcrkMBet/L5YZaEajEK1K1PnEm1lM+NJRb2YNtvRdb6jASd5\n         eba4UYuooAuX7XvSrGUToNt7GHhmVkTsj1AweqYhPTQpMaCQlinLSRC7X59sP9Vk6UMg\n         gDpdOyp3h0hqBK7Wv5BbOS4QUMbPNr1Sw3Fl5aYjUtArazE3B3U067xUQziZ9w0Ch5yN\n         fW+w==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1771315290; x=1771920090;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=kF6ZhZceexRomvWkubldKlsxvta1sWwN/u0Zy1Qrmak=;\n        b=rmGqIqOtA4AvIWSgCwrjiTsDhyvKQX3PV2ixGR0M+cQM7C/nwvQ8FSSTkBgTTC2AeX\n         f1DaszQXL5dkatll6qCyb2yn+NhaEEDIDEpusxiz1UnNEVMsoojtdMyUlhASBAT2oxY8\n         yb2EAElZ4kwjno11gASH7atwQZDbVcFTJ55EHCjNufYPCCYNJYeCey/+namREHL/kuLR\n         OB1CuF84QE6ZkT9irsm6ibiYrz3L2u4R5hY+2GO1WfhWkJ0ugcB3VpCMHCI6TuQBTQuI\n         Rxrr7xk6z+DWeWeK0EpZehkXv7OqB0AVzkUPMrfVKoSAFFG79LYroMUtUmQAUl5nKWm8\n         B5eg==","X-Forwarded-Encrypted":"i=1;\n AJvYcCVj2WWeB0/AI22Nw00PLfC3em5EIEHCif69kBrDPeniQAinx4br2cPWcwEOMXrSW6MHplZ1mNr0z80=@vger.kernel.org","X-Gm-Message-State":"AOJu0YwV4+lOJDc+T+n0i6gjYZrEd3hFBEbHnWXssw7VVu9CgZSAwrYO\n\t9m3ohhXzlBNcQxgIDZqqv9z+3CgaE1RpwUMnjkUcqQVCM7SZTfbFYW85","X-Gm-Gg":"AZuq6aJR/WE/pYvNYm0CeK1mU0vLuMYAdjT9cOC8Wi6GhJ2OLBdOkZ67dD6hS7T1MAU\n\tCkvN71nSgQh3MXi+rKF0Vp6lagvqXoMRc6t0gbHG93ajxoel8cPPPECpeS7j+2N0P+YHG16Cy2L\n\t2UD1pmm5IGORpKrNbUoJjqcsEBfRsF88VmoSaNxsAqmM7rUjwlIc7DifQPTAmIebn1ejiswxktV\n\tReS3/7AXa06bIrEoH4noUBBYpDi/3h5tEYscNXjFVtZ51hNvxNylEw4jAmCWNU39G/h/WM9Df4H\n\tLo6NUKzRmu8cJ/eTdBvX5oQwnxgqUbCBahqt5fCdbKE8zVdOQxDxLUIEXXTzMB0n9M70ky0J7mV\n\t1ZVPuMvO5CdoejIBQiwUHr4wx61vXQbW/6ZxOZen5rmBnAcGki9S/JjIrE0zTIgcAXrCo+q/2ft\n\tPFDIJSsNtl7g6Nftmx36nZPqCCveUSa+CQ+bOKk89kKJHtyJzeZ/0/bsw0fqM=","X-Received":"by 2002:a05:600c:a08c:b0:477:6374:6347 with SMTP id\n 5b1f17b1804b1-48373a5bad7mr216247045e9.22.1771315289461;\n        Tue, 17 Feb 2026 00:01:29 -0800 (PST)","From":"\"Ionut Nechita (Sunlight Linux)\" <sunlightlinux@gmail.com>","To":"Bjorn Helgaas <bhelgaas@google.com>,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n \"Rafael J . Wysocki\" <rafael@kernel.org>,\n Daniel Lezcano <daniel.lezcano@linaro.org>","Cc":"Zhang Rui <rui.zhang@intel.com>,\n\tLukasz Luba <lukasz.luba@arm.com>,\n\tLukas Wunner <lukas@wunner.de>,\n\tIonut Nechita <sunlightlinux@gmail.com>,\n\tlinux-pci@vger.kernel.org,\n\tlinux-pm@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tIonut Nechita <ionut_n2001@yahoo.com>","Subject":"[RFC PATCH 1/3] PCI: Add PCIe Gen 7 (128 GT/s) register and speed\n definitions","Date":"Tue, 17 Feb 2026 10:00:58 +0200","Message-ID":"<20260217080102.206581-4-sunlightlinux@gmail.com>","X-Mailer":"git-send-email 2.53.0","In-Reply-To":"<20260217080102.206581-2-sunlightlinux@gmail.com>","References":"<20260217080102.206581-2-sunlightlinux@gmail.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"From: Ionut Nechita <ionut_n2001@yahoo.com>\n\nAdd register definitions for PCIe Gen 7 128 GT/s link speed:\n\n  - PCI_EXP_LNKCAP_SLS_128_0GB (encoding 0x7)\n  - PCI_EXP_LNKCAP2_SLS_128_0GB (bit 6 in Supported Link Speeds Vector)\n  - PCI_EXP_LNKCTL2_TLS_128_0GT (Target Link Speed 0x7)\n  - PCIE_SPEED_128_0GT enum value (0x1a)\n\nWiden pci_dev.supported_speeds from u8 to u16 to accommodate the\nexpanded Supported Link Speeds Vector which now uses bits 1-7.\n\nPCIe Gen 7 doubles the data rate to 128 GT/s using PAM4 signaling\nwith mandatory Flit mode encoding (1:1, no overhead), providing\nup to 256 GB/s unidirectional (512 GB/s bi-directional) bandwidth\non an x16 link.\n\nNote: Based on the PCIe 7.0 specification announced by PCI-SIG in\n2022, targeted for member release in 2025. No hardware exists yet\nto validate these definitions.\n\nSigned-off-by: Ionut Nechita <ionut_n2001@yahoo.com>\n---\n include/linux/pci.h           | 3 ++-\n include/uapi/linux/pci_regs.h | 3 +++\n 2 files changed, 5 insertions(+), 1 deletion(-)","diff":"diff --git a/include/linux/pci.h b/include/linux/pci.h\nindex b5cc0c2b99065..21dd6ea5beb6d 100644\n--- a/include/linux/pci.h\n+++ b/include/linux/pci.h\n@@ -303,6 +303,7 @@ enum pci_bus_speed {\n \tPCIE_SPEED_16_0GT\t\t= 0x17,\n \tPCIE_SPEED_32_0GT\t\t= 0x18,\n \tPCIE_SPEED_64_0GT\t\t= 0x19,\n+\tPCIE_SPEED_128_0GT\t\t= 0x1a,\n \tPCI_SPEED_UNKNOWN\t\t= 0xff,\n };\n \n@@ -558,7 +559,7 @@ struct pci_dev {\n \tstruct pci_tsm *tsm;\t\t/* TSM operation state */\n #endif\n \tu16\t\tacs_cap;\t/* ACS Capability offset */\n-\tu8\t\tsupported_speeds; /* Supported Link Speeds Vector */\n+\tu16\t\tsupported_speeds; /* Supported Link Speeds Vector */\n \tphys_addr_t\trom;\t\t/* Physical address if not from BAR */\n \tsize_t\t\tromlen;\t\t/* Length if not from BAR */\n \t/*\ndiff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h\nindex 3add74ae25948..fa00c6ca9f382 100644\n--- a/include/uapi/linux/pci_regs.h\n+++ b/include/uapi/linux/pci_regs.h\n@@ -545,6 +545,7 @@\n #define  PCI_EXP_LNKCAP_SLS_16_0GB 0x00000004 /* LNKCAP2 SLS Vector bit 3 */\n #define  PCI_EXP_LNKCAP_SLS_32_0GB 0x00000005 /* LNKCAP2 SLS Vector bit 4 */\n #define  PCI_EXP_LNKCAP_SLS_64_0GB 0x00000006 /* LNKCAP2 SLS Vector bit 5 */\n+#define  PCI_EXP_LNKCAP_SLS_128_0GB 0x00000007 /* LNKCAP2 SLS Vector bit 6 */\n #define  PCI_EXP_LNKCAP_MLW\t0x000003f0 /* Maximum Link Width */\n #define  PCI_EXP_LNKCAP_ASPMS\t0x00000c00 /* ASPM Support */\n #define  PCI_EXP_LNKCAP_ASPM_L0S 0x00000400 /* ASPM L0s Support */\n@@ -693,6 +694,7 @@\n #define  PCI_EXP_LNKCAP2_SLS_16_0GB\t0x00000010 /* Supported Speed 16GT/s */\n #define  PCI_EXP_LNKCAP2_SLS_32_0GB\t0x00000020 /* Supported Speed 32GT/s */\n #define  PCI_EXP_LNKCAP2_SLS_64_0GB\t0x00000040 /* Supported Speed 64GT/s */\n+#define  PCI_EXP_LNKCAP2_SLS_128_0GB\t0x00000080 /* Supported Speed 128GT/s */\n #define  PCI_EXP_LNKCAP2_CROSSLINK\t0x00000100 /* Crosslink supported */\n #define PCI_EXP_LNKCTL2\t\t0x30\t/* Link Control 2 */\n #define  PCI_EXP_LNKCTL2_TLS\t\t0x000f\n@@ -702,6 +704,7 @@\n #define  PCI_EXP_LNKCTL2_TLS_16_0GT\t0x0004 /* Supported Speed 16GT/s */\n #define  PCI_EXP_LNKCTL2_TLS_32_0GT\t0x0005 /* Supported Speed 32GT/s */\n #define  PCI_EXP_LNKCTL2_TLS_64_0GT\t0x0006 /* Supported Speed 64GT/s */\n+#define  PCI_EXP_LNKCTL2_TLS_128_0GT\t0x0007 /* Supported Speed 128GT/s */\n #define  PCI_EXP_LNKCTL2_ENTER_COMP\t0x0010 /* Enter Compliance */\n #define  PCI_EXP_LNKCTL2_TX_MARGIN\t0x0380 /* Transmit Margin */\n #define  PCI_EXP_LNKCTL2_HASD\t\t0x0020 /* HW Autonomous Speed Disable */\n","prefixes":["RFC","1/3"]}