* [PATCH 0/3] Relax max-link-speed check to support PCIe Gen5/Gen6
@ 2025-05-19 16:04 Hans Zhang
2025-05-19 16:04 ` [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed " Hans Zhang
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Hans Zhang @ 2025-05-19 16:04 UTC (permalink / raw)
To: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt
Cc: robh, linux-pci, linux-kernel, devicetree, Hans Zhang
This patch series extends PCIe Gen5/Gen6 support for the max-link-speed
property across device tree bindings and kernel validation logic.
With PCIe 6.0 now supported in the Linux kernel and industry IP providers
like Synopsys/Cadence offering PCIe 6.0-compatible IPs, existing device
tree bindings and checks for max-link-speed (limited to Gen1~Gen4) no
longer align with hardware capabilities.
Documentation updates:
Patch 1/3 extends the PCI host controller binding (pci.txt) to explicitly
include Gen5/Gen6.
Patch 2/3 updates the PCI endpoint binding (pci-ep.yaml) with the same
extension.
Kernel validation fix:
Patch 3/3 relaxes the max-link-speed check in of_pci_get_max_link_speed()
to accept values up to 6, ensuring compatibility with newer generations.
These changes ensure that device tree configurations for modern PCIe
controllers (e.g., Synopsys/Cadence IP-based designs) can fully utilize
Gen5/Gen6 speeds without DT validation errors.
---
In my impression, they have already obtained the relevant certifications.
e.g.:
Synopsys:
https://www.synopsys.com/dw/ipdir.php?ds=dwc_pcie6_controller
Cadence:
https://www.cadence.com/en_US/home/tools/silicon-solutions/protocol-ip/pcie-and-compute-express-link/controller-for-pcie-and-cxl/controller-for-pcie.html
---
Hans Zhang (3):
dt-bindings: PCI: Extend max-link-speed to support PCIe Gen5/Gen6
dt-bindings: PCI: pci-ep: Extend max-link-speed to PCIe Gen5/Gen6
PCI: of: Relax max-link-speed check to support PCIe Gen5/Gen6
Documentation/devicetree/bindings/pci/pci-ep.yaml | 2 +-
Documentation/devicetree/bindings/pci/pci.txt | 5 +++--
drivers/pci/of.c | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
base-commit: fee3e843b309444f48157e2188efa6818bae85cf
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed to support PCIe Gen5/Gen6
2025-05-19 16:04 [PATCH 0/3] Relax max-link-speed check to support PCIe Gen5/Gen6 Hans Zhang
@ 2025-05-19 16:04 ` Hans Zhang
2025-05-27 19:35 ` Rob Herring
2025-05-19 16:04 ` [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to " Hans Zhang
2025-05-19 16:04 ` [PATCH 3/3] PCI: of: Relax max-link-speed check to support " Hans Zhang
2 siblings, 1 reply; 7+ messages in thread
From: Hans Zhang @ 2025-05-19 16:04 UTC (permalink / raw)
To: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt
Cc: robh, linux-pci, linux-kernel, devicetree, Hans Zhang
Update the device tree binding documentation for PCI to include
PCIe Gen5 and Gen6 support in the `max-link-speed` property.
The original documentation limited the value to 1~4 (Gen1~Gen4),
but the kernel now supports up to Gen6. This change ensures the
documentation aligns with the actual code implementation.
Signed-off-by: Hans Zhang <18255117159@163.com>
---
Documentation/devicetree/bindings/pci/pci.txt | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt
index 6a8f2874a24d..5ffd690e3fc7 100644
--- a/Documentation/devicetree/bindings/pci/pci.txt
+++ b/Documentation/devicetree/bindings/pci/pci.txt
@@ -22,8 +22,9 @@ driver implementation may support the following properties:
If present this property specifies PCI gen for link capability. Host
drivers could add this as a strategy to avoid unnecessary operation for
unsupported link speed, for instance, trying to do training for
- unsupported link speed, etc. Must be '4' for gen4, '3' for gen3, '2'
- for gen2, and '1' for gen1. Any other values are invalid.
+ unsupported link speed, etc. Must be '6' for gen6, '5' for gen5, '4' for
+ gen4, '3' for gen3, '2' for gen2, and '1' for gen1. Any other values are
+ invalid.
- reset-gpios:
If present this property specifies PERST# GPIO. Host drivers can parse the
GPIO and apply fundamental reset to endpoints.
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to PCIe Gen5/Gen6
2025-05-19 16:04 [PATCH 0/3] Relax max-link-speed check to support PCIe Gen5/Gen6 Hans Zhang
2025-05-19 16:04 ` [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed " Hans Zhang
@ 2025-05-19 16:04 ` Hans Zhang
2025-05-27 19:36 ` Rob Herring (Arm)
2025-05-19 16:04 ` [PATCH 3/3] PCI: of: Relax max-link-speed check to support " Hans Zhang
2 siblings, 1 reply; 7+ messages in thread
From: Hans Zhang @ 2025-05-19 16:04 UTC (permalink / raw)
To: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt
Cc: robh, linux-pci, linux-kernel, devicetree, Hans Zhang
Update the PCI Endpoint (EP) device tree binding documentation to
include PCIe Gen5 and Gen6 support for the `max-link-speed` property.
Similar to the Host Controller binding, the original EP binding
limited this value to 1~4 (Gen1~Gen4). With current SOCs requiring
Gen5/Gen6 support (e.g., Synopsys/Cadence IP), this change aligns
the EP binding with the kernel's PCIe 6.0 capabilities.
Signed-off-by: Hans Zhang <18255117159@163.com>
---
Documentation/devicetree/bindings/pci/pci-ep.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pci/pci-ep.yaml b/Documentation/devicetree/bindings/pci/pci-ep.yaml
index f75000e3093d..68aaad70b112 100644
--- a/Documentation/devicetree/bindings/pci/pci-ep.yaml
+++ b/Documentation/devicetree/bindings/pci/pci-ep.yaml
@@ -33,7 +33,7 @@ properties:
max-link-speed:
$ref: /schemas/types.yaml#/definitions/uint32
- enum: [ 1, 2, 3, 4 ]
+ enum: [ 1, 2, 3, 4, 5, 6]
num-lanes:
description: maximum number of lanes
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] PCI: of: Relax max-link-speed check to support PCIe Gen5/Gen6
2025-05-19 16:04 [PATCH 0/3] Relax max-link-speed check to support PCIe Gen5/Gen6 Hans Zhang
2025-05-19 16:04 ` [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed " Hans Zhang
2025-05-19 16:04 ` [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to " Hans Zhang
@ 2025-05-19 16:04 ` Hans Zhang
2 siblings, 0 replies; 7+ messages in thread
From: Hans Zhang @ 2025-05-19 16:04 UTC (permalink / raw)
To: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt
Cc: robh, linux-pci, linux-kernel, devicetree, Hans Zhang
The existing code restricted `max-link-speed` to values 1~4 (Gen1~Gen4),
but current SOCs using Synopsys/Cadence IP may require Gen5/Gen6 support.
This patch updates the validation in `of_pci_get_max_link_speed` to allow
values up to 6, ensuring compatibility with newer PCIe generations.
Signed-off-by: Hans Zhang <18255117159@163.com>
---
drivers/pci/of.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/of.c b/drivers/pci/of.c
index ab7a8252bf41..379d90913937 100644
--- a/drivers/pci/of.c
+++ b/drivers/pci/of.c
@@ -890,7 +890,7 @@ int of_pci_get_max_link_speed(struct device_node *node)
u32 max_link_speed;
if (of_property_read_u32(node, "max-link-speed", &max_link_speed) ||
- max_link_speed == 0 || max_link_speed > 4)
+ max_link_speed == 0 || max_link_speed > 6)
return -EINVAL;
return max_link_speed;
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed to support PCIe Gen5/Gen6
2025-05-19 16:04 ` [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed " Hans Zhang
@ 2025-05-27 19:35 ` Rob Herring
2025-05-28 5:41 ` Hans Zhang
0 siblings, 1 reply; 7+ messages in thread
From: Rob Herring @ 2025-05-27 19:35 UTC (permalink / raw)
To: Hans Zhang
Cc: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt, linux-pci, linux-kernel, devicetree
On Tue, May 20, 2025 at 12:04:46AM +0800, Hans Zhang wrote:
> Update the device tree binding documentation for PCI to include
> PCIe Gen5 and Gen6 support in the `max-link-speed` property.
> The original documentation limited the value to 1~4 (Gen1~Gen4),
> but the kernel now supports up to Gen6. This change ensures the
> documentation aligns with the actual code implementation.
>
> Signed-off-by: Hans Zhang <18255117159@163.com>
> ---
> Documentation/devicetree/bindings/pci/pci.txt | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
This file is now removed. Update the schema if you need to. It lives in
dtschema project.
>
> diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt
> index 6a8f2874a24d..5ffd690e3fc7 100644
> --- a/Documentation/devicetree/bindings/pci/pci.txt
> +++ b/Documentation/devicetree/bindings/pci/pci.txt
> @@ -22,8 +22,9 @@ driver implementation may support the following properties:
> If present this property specifies PCI gen for link capability. Host
> drivers could add this as a strategy to avoid unnecessary operation for
> unsupported link speed, for instance, trying to do training for
> - unsupported link speed, etc. Must be '4' for gen4, '3' for gen3, '2'
> - for gen2, and '1' for gen1. Any other values are invalid.
> + unsupported link speed, etc. Must be '6' for gen6, '5' for gen5, '4' for
> + gen4, '3' for gen3, '2' for gen2, and '1' for gen1. Any other values are
> + invalid.
> - reset-gpios:
> If present this property specifies PERST# GPIO. Host drivers can parse the
> GPIO and apply fundamental reset to endpoints.
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to PCIe Gen5/Gen6
2025-05-19 16:04 ` [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to " Hans Zhang
@ 2025-05-27 19:36 ` Rob Herring (Arm)
0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring (Arm) @ 2025-05-27 19:36 UTC (permalink / raw)
To: Hans Zhang
Cc: kw, krzk+dt, linux-pci, linux-kernel, lpieralisi, bhelgaas,
manivannan.sadhasivam, conor+dt, devicetree
On Tue, 20 May 2025 00:04:47 +0800, Hans Zhang wrote:
> Update the PCI Endpoint (EP) device tree binding documentation to
> include PCIe Gen5 and Gen6 support for the `max-link-speed` property.
> Similar to the Host Controller binding, the original EP binding
> limited this value to 1~4 (Gen1~Gen4). With current SOCs requiring
> Gen5/Gen6 support (e.g., Synopsys/Cadence IP), this change aligns
> the EP binding with the kernel's PCIe 6.0 capabilities.
>
> Signed-off-by: Hans Zhang <18255117159@163.com>
> ---
> Documentation/devicetree/bindings/pci/pci-ep.yaml | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed to support PCIe Gen5/Gen6
2025-05-27 19:35 ` Rob Herring
@ 2025-05-28 5:41 ` Hans Zhang
0 siblings, 0 replies; 7+ messages in thread
From: Hans Zhang @ 2025-05-28 5:41 UTC (permalink / raw)
To: Rob Herring
Cc: bhelgaas, lpieralisi, kw, krzk+dt, manivannan.sadhasivam,
conor+dt, linux-pci, linux-kernel, devicetree
On 2025/5/28 03:35, Rob Herring wrote:
> On Tue, May 20, 2025 at 12:04:46AM +0800, Hans Zhang wrote:
>> Update the device tree binding documentation for PCI to include
>> PCIe Gen5 and Gen6 support in the `max-link-speed` property.
>> The original documentation limited the value to 1~4 (Gen1~Gen4),
>> but the kernel now supports up to Gen6. This change ensures the
>> documentation aligns with the actual code implementation.
>>
>> Signed-off-by: Hans Zhang <18255117159@163.com>
>> ---
>> Documentation/devicetree/bindings/pci/pci.txt | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> This file is now removed. Update the schema if you need to. It lives in
> dtschema project.
>
Dear Rob,
Thank you very much for your reply and reminder. I will resubmit in the
next version.
Best regards,
Hans
>>
>> diff --git a/Documentation/devicetree/bindings/pci/pci.txt b/Documentation/devicetree/bindings/pci/pci.txt
>> index 6a8f2874a24d..5ffd690e3fc7 100644
>> --- a/Documentation/devicetree/bindings/pci/pci.txt
>> +++ b/Documentation/devicetree/bindings/pci/pci.txt
>> @@ -22,8 +22,9 @@ driver implementation may support the following properties:
>> If present this property specifies PCI gen for link capability. Host
>> drivers could add this as a strategy to avoid unnecessary operation for
>> unsupported link speed, for instance, trying to do training for
>> - unsupported link speed, etc. Must be '4' for gen4, '3' for gen3, '2'
>> - for gen2, and '1' for gen1. Any other values are invalid.
>> + unsupported link speed, etc. Must be '6' for gen6, '5' for gen5, '4' for
>> + gen4, '3' for gen3, '2' for gen2, and '1' for gen1. Any other values are
>> + invalid.
>> - reset-gpios:
>> If present this property specifies PERST# GPIO. Host drivers can parse the
>> GPIO and apply fundamental reset to endpoints.
>> --
>> 2.25.1
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-05-28 5:42 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-19 16:04 [PATCH 0/3] Relax max-link-speed check to support PCIe Gen5/Gen6 Hans Zhang
2025-05-19 16:04 ` [PATCH 1/3] dt-bindings: PCI: Extend max-link-speed " Hans Zhang
2025-05-27 19:35 ` Rob Herring
2025-05-28 5:41 ` Hans Zhang
2025-05-19 16:04 ` [PATCH 2/3] dt-bindings: PCI: pci-ep: Extend max-link-speed to " Hans Zhang
2025-05-27 19:36 ` Rob Herring (Arm)
2025-05-19 16:04 ` [PATCH 3/3] PCI: of: Relax max-link-speed check to support " Hans Zhang
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).