forked from Minki/linux
7b6e7ba8e8
The cavium,pci-thunder-ecam devices are exactly ECAM-based PCI root complexes. These root complexes (loosely referred to as ECAM units in the hardware manuals) are used to access the Thunder on-chip devices. They are special in that all the BARs on devices behind these root complexes are at fixed addresses. Add a driver for these devices that synthesizes Enhanced Allocation (EA) capability entries for each BAR. Since this EA synthesis is needed for exactly two chip models, we can hard- code some assumptions about the device topology and the layout of the config space of specific DEVFNs in the driver. [bhelgaas: changelog, whitespace] Signed-off-by: David Daney <david.daney@cavium.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rob Herring <robh@kernel.org>
31 lines
1023 B
Plaintext
31 lines
1023 B
Plaintext
* ThunderX PCI host controller for pass-1.x silicon
|
|
|
|
Firmware-initialized PCI host controller to on-chip devices found on
|
|
some Cavium ThunderX processors. These devices have ECAM-based config
|
|
access, but the BARs are all at fixed addresses. We handle the fixed
|
|
addresses by synthesizing Enhanced Allocation (EA) capabilities for
|
|
these devices.
|
|
|
|
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-ecam"
|
|
|
|
Example:
|
|
|
|
pcie@84b000000000 {
|
|
compatible = "cavium,pci-host-thunder-ecam";
|
|
device_type = "pci";
|
|
msi-parent = <&its>;
|
|
msi-map = <0 &its 0x30000 0x10000>;
|
|
bus-range = <0 31>;
|
|
#size-cells = <2>;
|
|
#address-cells = <3>;
|
|
#stream-id-cells = <1>;
|
|
reg = <0x84b0 0x00000000 0 0x02000000>; /* Configuration space */
|
|
ranges = <0x03000000 0x8180 0x00000000 0x8180 0x00000000 0x80 0x00000000>; /* mem ranges */
|
|
};
|