Skip to content

Commit 0ed2b8a

Browse files
committed
Merge: Update kernel's PCI subsystem to v6.10
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/5025 ``` This series updates RHEL9's PCI subsystem with content from upstream v6.10 - Merge tag 'pci-v6.10-fixes-2' of git://git.kernel.org/pub/.../pci/pci https://lkml.org/lkml/2024/7/5/1008 commit d270dd2 Merge: b673f2b 419d57d 2 files changed, 4 insertions, 3 deletions Merge tag 'pci-v6.10-fixes-1' of git://git.kernel.org/pub/.../pci/pci https://lkml.org/lkml/2024/6/6/1342 commit d91e656 Merge: d30d0e4 c9d52fb 5 files changed, 15 deletions Merge tag 'pci-v6.10-changes' of git://git.kernel.org/pub/scm/../pci/pci https://lkml.org/lkml/2024/5/20/872 commit f0bae24 Merge: fa8151c 7ecf13f 130 files changed, 1232 insertions, 761 deletions The vast majority of patches within the series back-ported cleanly. However, there were a few back-ports where some changes were made to the originating upstream patch due to it either not being quite up to date with more recent changes, or subsequent changes were made during its merge commit. All such occurances are noted in the back-port's commit message with the same changes that occurred upstream being made in the back-port to keep things in sync. JIRA: https://issues.redhat.com/browse/RHEL-50255 Omitted-Fix: 26641b3 "PCI: Fix CONFIG_PCI_DYNAMIC_OF_NODES kconfig dependencies". This is related to the back-port of upstream commit 407d1a5 (patch 7/100). As mentioned in that commit, this series is not intending to enable new functionality, thus the updates to both the Makefile and Kconfig files were skipped. However, taking the updates for the remaining patch's files does help with this, and future, back-port efforts, enabling them to be cleaner overall. As such, this ommitted-fix target is also being skipped. Signed-off-by: Myron Stowe <[email protected]> ``` Approved-by: John W. Linville <[email protected]> Approved-by: Eric Chanudet <[email protected]> Approved-by: Jerry Snitselaar <[email protected]> Approved-by: Michal Schmidt <[email protected]> Approved-by: Andrew Halaney <[email protected]> Approved-by: Ivan Vecera <[email protected]> Approved-by: Mika Penttilä <[email protected]> Approved-by: David Arcari <[email protected]> Approved-by: CKI KWF Bot <[email protected]> Merged-by: Rado Vrbovsky <[email protected]>
2 parents 87d22f9 + 57bfaa7 commit 0ed2b8a

File tree

117 files changed

+1814
-816
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+1814
-816
lines changed

Documentation/PCI/msi-howto.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ min_vecs argument set to this limit, and the PCI core will return -ENOSPC
103103
if it can't meet the minimum number of vectors.
104104

105105
The flags argument is used to specify which type of interrupt can be used
106-
by the device and the driver (PCI_IRQ_LEGACY, PCI_IRQ_MSI, PCI_IRQ_MSIX).
106+
by the device and the driver (PCI_IRQ_INTX, PCI_IRQ_MSI, PCI_IRQ_MSIX).
107107
A convenient short-hand (PCI_IRQ_ALL_TYPES) is also available to ask for
108108
any possible kind of interrupt. If the PCI_IRQ_AFFINITY flag is set,
109109
pci_alloc_irq_vectors() will spread the interrupts around the available CPUs.

Documentation/PCI/pci.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ causes the PCI support to program CPU vector data into the PCI device
335335
capability registers. Many architectures, chip-sets, or BIOSes do NOT
336336
support MSI or MSI-X and a call to pci_alloc_irq_vectors with just
337337
the PCI_IRQ_MSI and PCI_IRQ_MSIX flags will fail, so try to always
338-
specify PCI_IRQ_LEGACY as well.
338+
specify PCI_IRQ_INTX as well.
339339

340340
Drivers that have different interrupt handlers for MSI/MSI-X and
341341
legacy INTx should chose the right one based on the msi_enabled

Documentation/PCI/pcieaer-howto.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ After reboot with new kernel or insert the module, a device file named
241241
Then, you need a user space tool named aer-inject, which can be gotten
242242
from:
243243

244-
https://git.kernel.org/cgit/linux/kernel/git/gong.chen/aer-inject.git/
244+
https://github.com/intel/aer-inject.git
245245

246246
More information about aer-inject can be found in the document in
247247
its source code.

Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ maintainers:
1010
- Tom Joseph <[email protected]>
1111

1212
allOf:
13-
- $ref: "cdns-pcie-ep.yaml#"
14-
- $ref: "pci-ep.yaml#"
13+
- $ref: cdns-pcie-ep.yaml#
1514

1615
properties:
1716
compatible:

Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ maintainers:
1010
- Tom Joseph <[email protected]>
1111

1212
allOf:
13-
- $ref: /schemas/pci/pci-bus.yaml#
14-
- $ref: "cdns-pcie-host.yaml#"
13+
- $ref: cdns-pcie-host.yaml#
1514

1615
properties:
1716
compatible:
@@ -25,8 +24,6 @@ properties:
2524
- const: reg
2625
- const: cfg
2726

28-
msi-parent: true
29-
3027
required:
3128
- reg
3229
- reg-names

Documentation/devicetree/bindings/pci/cdns-pcie-ep.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22
%YAML 1.2
33
---
4-
$id: "http://devicetree.org/schemas/pci/cdns-pcie-ep.yaml#"
5-
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
4+
$id: http://devicetree.org/schemas/pci/cdns-pcie-ep.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

77
title: Cadence PCIe Device
88

99
maintainers:
1010
- Tom Joseph <[email protected]>
1111

1212
allOf:
13-
- $ref: "cdns-pcie.yaml#"
13+
- $ref: cdns-pcie.yaml#
14+
- $ref: pci-ep.yaml#
1415

1516
properties:
1617
cdns,max-outbound-regions:

Documentation/devicetree/bindings/pci/cdns-pcie-host.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22
%YAML 1.2
33
---
4-
$id: "http://devicetree.org/schemas/pci/cdns-pcie-host.yaml#"
5-
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
4+
$id: http://devicetree.org/schemas/pci/cdns-pcie-host.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

77
title: Cadence PCIe Host
88

99
maintainers:
1010
- Tom Joseph <[email protected]>
1111

1212
allOf:
13-
- $ref: "/schemas/pci/pci-bus.yaml#"
14-
- $ref: "cdns-pcie.yaml#"
13+
- $ref: /schemas/pci/pci-bus.yaml#
14+
- $ref: cdns-pcie.yaml#
1515

1616
properties:
1717
cdns,max-outbound-regions:

Documentation/devicetree/bindings/pci/cdns-pcie.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22
%YAML 1.2
33
---
4-
$id: "http://devicetree.org/schemas/pci/cdns-pcie.yaml#"
5-
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
4+
$id: http://devicetree.org/schemas/pci/cdns-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

77
title: Cadence PCIe Core
88

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie-ep.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale Layerscape PCIe Endpoint(EP) controller
8+
9+
maintainers:
10+
- Frank Li <[email protected]>
11+
12+
description:
13+
This PCIe EP controller is based on the Synopsys DesignWare PCIe IP.
14+
15+
This controller derives its clocks from the Reset Configuration Word (RCW)
16+
which is used to describe the PLL settings at the time of chip-reset.
17+
18+
Also as per the available Reference Manuals, there is no specific 'version'
19+
register available in the Freescale PCIe controller register set,
20+
which can allow determining the underlying DesignWare PCIe controller version
21+
information.
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- fsl,ls2088a-pcie-ep
27+
- fsl,ls1088a-pcie-ep
28+
- fsl,ls1046a-pcie-ep
29+
- fsl,ls1028a-pcie-ep
30+
- fsl,lx2160ar2-pcie-ep
31+
32+
reg:
33+
maxItems: 2
34+
35+
reg-names:
36+
items:
37+
- const: regs
38+
- const: addr_space
39+
40+
fsl,pcie-scfg:
41+
$ref: /schemas/types.yaml#/definitions/phandle
42+
description: A phandle to the SCFG device node. The second entry is the
43+
physical PCIe controller index starting from '0'. This is used to get
44+
SCFG PEXN registers.
45+
46+
big-endian:
47+
$ref: /schemas/types.yaml#/definitions/flag
48+
description: If the PEX_LUT and PF register block is in big-endian, specify
49+
this property.
50+
51+
dma-coherent: true
52+
53+
interrupts:
54+
minItems: 1
55+
maxItems: 2
56+
57+
interrupt-names:
58+
minItems: 1
59+
maxItems: 2
60+
61+
required:
62+
- compatible
63+
- reg
64+
- reg-names
65+
66+
allOf:
67+
- if:
68+
properties:
69+
compatible:
70+
enum:
71+
- fsl,ls1028a-pcie-ep
72+
- fsl,ls1046a-pcie-ep
73+
- fsl,ls1088a-pcie-ep
74+
then:
75+
properties:
76+
interrupt-names:
77+
items:
78+
- const: pme
79+
80+
unevaluatedProperties: false
81+
82+
examples:
83+
- |
84+
#include <dt-bindings/interrupt-controller/arm-gic.h>
85+
86+
soc {
87+
#address-cells = <2>;
88+
#size-cells = <2>;
89+
90+
pcie_ep1: pcie-ep@3400000 {
91+
compatible = "fsl,ls1028a-pcie-ep";
92+
reg = <0x00 0x03400000 0x0 0x00100000
93+
0x80 0x00000000 0x8 0x00000000>;
94+
reg-names = "regs", "addr_space";
95+
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
96+
interrupt-names = "pme";
97+
num-ib-windows = <6>;
98+
num-ob-windows = <8>;
99+
status = "disabled";
100+
};
101+
};
102+
...
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Freescale Layerscape PCIe Root Complex(RC) controller
8+
9+
maintainers:
10+
- Frank Li <[email protected]>
11+
12+
description:
13+
This PCIe RC controller is based on the Synopsys DesignWare PCIe IP
14+
15+
This controller derives its clocks from the Reset Configuration Word (RCW)
16+
which is used to describe the PLL settings at the time of chip-reset.
17+
18+
Also as per the available Reference Manuals, there is no specific 'version'
19+
register available in the Freescale PCIe controller register set,
20+
which can allow determining the underlying DesignWare PCIe controller version
21+
information.
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- fsl,ls1021a-pcie
27+
- fsl,ls2080a-pcie
28+
- fsl,ls2085a-pcie
29+
- fsl,ls2088a-pcie
30+
- fsl,ls1088a-pcie
31+
- fsl,ls1046a-pcie
32+
- fsl,ls1043a-pcie
33+
- fsl,ls1012a-pcie
34+
- fsl,ls1028a-pcie
35+
- fsl,lx2160a-pcie
36+
37+
reg:
38+
maxItems: 2
39+
40+
reg-names:
41+
items:
42+
- const: regs
43+
- const: config
44+
45+
fsl,pcie-scfg:
46+
$ref: /schemas/types.yaml#/definitions/phandle
47+
description: A phandle to the SCFG device node. The second entry is the
48+
physical PCIe controller index starting from '0'. This is used to get
49+
SCFG PEXN registers.
50+
51+
big-endian:
52+
$ref: /schemas/types.yaml#/definitions/flag
53+
description: If the PEX_LUT and PF register block is in big-endian, specify
54+
this property.
55+
56+
dma-coherent: true
57+
58+
msi-parent: true
59+
60+
iommu-map: true
61+
62+
interrupts:
63+
minItems: 1
64+
maxItems: 2
65+
66+
interrupt-names:
67+
minItems: 1
68+
maxItems: 2
69+
70+
required:
71+
- compatible
72+
- reg
73+
- reg-names
74+
- "#address-cells"
75+
- "#size-cells"
76+
- device_type
77+
- bus-range
78+
- ranges
79+
- interrupts
80+
- interrupt-names
81+
- "#interrupt-cells"
82+
- interrupt-map-mask
83+
- interrupt-map
84+
85+
allOf:
86+
- $ref: /schemas/pci/pci-bus.yaml#
87+
88+
- if:
89+
properties:
90+
compatible:
91+
enum:
92+
- fsl,ls1028a-pcie
93+
- fsl,ls1046a-pcie
94+
- fsl,ls1043a-pcie
95+
- fsl,ls1012a-pcie
96+
then:
97+
properties:
98+
interrupts:
99+
maxItems: 2
100+
interrupt-names:
101+
items:
102+
- const: pme
103+
- const: aer
104+
105+
- if:
106+
properties:
107+
compatible:
108+
enum:
109+
- fsl,ls2080a-pcie
110+
- fsl,ls2085a-pcie
111+
- fsl,ls2088a-pcie
112+
then:
113+
properties:
114+
interrupts:
115+
maxItems: 1
116+
interrupt-names:
117+
items:
118+
- const: intr
119+
120+
- if:
121+
properties:
122+
compatible:
123+
enum:
124+
- fsl,ls1088a-pcie
125+
then:
126+
properties:
127+
interrupts:
128+
maxItems: 1
129+
interrupt-names:
130+
items:
131+
- const: aer
132+
133+
unevaluatedProperties: false
134+
135+
examples:
136+
- |
137+
#include <dt-bindings/interrupt-controller/arm-gic.h>
138+
139+
soc {
140+
#address-cells = <2>;
141+
#size-cells = <2>;
142+
143+
pcie@3400000 {
144+
compatible = "fsl,ls1088a-pcie";
145+
reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
146+
<0x20 0x00000000 0x0 0x00002000>; /* configuration space */
147+
reg-names = "regs", "config";
148+
interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
149+
interrupt-names = "aer";
150+
#address-cells = <3>;
151+
#size-cells = <2>;
152+
dma-coherent;
153+
device_type = "pci";
154+
bus-range = <0x0 0xff>;
155+
ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */
156+
0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
157+
msi-parent = <&its>;
158+
#interrupt-cells = <1>;
159+
interrupt-map-mask = <0 0 0 7>;
160+
interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>,
161+
<0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>,
162+
<0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>,
163+
<0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>;
164+
iommu-map = <0 &smmu 0 1>; /* Fixed-up by bootloader */
165+
};
166+
};
167+
...

0 commit comments

Comments
 (0)