-
Notifications
You must be signed in to change notification settings - Fork 115
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PCI: thunder: Add PCIe host driver for ThunderX processors
The root complexes used to access off-chip PCIe devices (called PEM units in the hardware manuals) on some Cavium ThunderX processors require quirky access methods for the config space of the PCIe bridge. Add a driver to provide these config space accessor functions. Use the pci-host-common code to configure the PCI machinery. Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rob Herring <robh@kernel.org> Acked-by: Arnd Bergmann <arnd@arndb.de>
- Loading branch information
1 parent
4e64dbe
commit f12b76e
Showing
5 changed files
with
405 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
* ThunderX PEM PCIe host controller | ||
|
||
Firmware-initialized PCI host controller found on some Cavium | ||
ThunderX processors. | ||
|
||
The properties and their meanings are identical to those described in | ||
host-generic-pci.txt except as listed below. | ||
|
||
Properties of the host controller node that differ from | ||
host-generic-pci.txt: | ||
|
||
- compatible : Must be "cavium,pci-host-thunder-pem" | ||
|
||
- reg : Two entries: First the configuration space for down | ||
stream devices base address and size, as accessed | ||
from the parent bus. Second, the register bank of | ||
the PEM device PCIe bridge. | ||
|
||
Example: | ||
|
||
pci@87e0,c2000000 { | ||
compatible = "cavium,pci-host-thunder-pem"; | ||
device_type = "pci"; | ||
msi-parent = <&its>; | ||
msi-map = <0 &its 0x10000 0x10000>; | ||
bus-range = <0x8f 0xc7>; | ||
#size-cells = <2>; | ||
#address-cells = <3>; | ||
|
||
reg = <0x8880 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
<0x87e0 0xc2000000 0x0 0x00010000>; /* PEM space */ | ||
ranges = <0x01000000 0x00 0x00020000 0x88b0 0x00020000 0x00 0x00010000>, /* I/O */ | ||
<0x03000000 0x00 0x10000000 0x8890 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
<0x43000000 0x10 0x00000000 0x88a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
<0x03000000 0x87e0 0xc2f00000 0x87e0 0xc2000000 0x00 0x00100000>; /* mem64 PEM BAR4 */ | ||
|
||
#interrupt-cells = <1>; | ||
interrupt-map-mask = <0 0 0 7>; | ||
interrupt-map = <0 0 0 1 &gic0 0 0 0 24 4>, /* INTA */ | ||
<0 0 0 2 &gic0 0 0 0 25 4>, /* INTB */ | ||
<0 0 0 3 &gic0 0 0 0 26 4>, /* INTC */ | ||
<0 0 0 4 &gic0 0 0 0 27 4>; /* INTD */ | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.