Kernel-4.18.0-80.el8_versatile

  • ARM Versatile Platform Baseboard PCI interface

PCI host controller found on the ARM Versatile PB board’s FPGA.

Required properties:

  • compatible: should contain “arm,versatile-pci” to identify the Versatile PCI
    controller.
  • reg: base addresses and lengths of the PCI controller. There must be 3
    entries:
    • Versatile-specific registers
    • Self Config space
    • Config space
  • #address-cells: set to <3>
  • #size-cells: set to <2>
  • device_type: set to “pci”
  • bus-range: set to <0 0xff>
  • ranges: ranges for the PCI memory and I/O regions
  • #interrupt-cells: set to <1>
  • interrupt-map-mask and interrupt-map: standard PCI properties to define
    the mapping of the PCI interface to interrupt numbers.

Example:

pci-controller@10001000 {
compatible = “arm,versatile-pci”;
device_type = “pci”;
reg = <0x10001000 0x1000
0x41000000 0x10000
0x42000000 0x100000>;
bus-range = <0 0xff>;
#address-cells = <3>;
#size-cells = <2>;
#interrupt-cells = <1>;

ranges = <0x01000000 0 0x00000000 0x43000000 0 0x00010000   /* downstream I/O */
      0x02000000 0 0x50000000 0x50000000 0 0x10000000   /* non-prefetchable memory */
      0x42000000 0 0x60000000 0x60000000 0 0x10000000>; /* prefetchable memory */

interrupt-map-mask = <0x1800 0 0 7>;
interrupt-map = <0x1800 0 0 1 &sic 28
         0x1800 0 0 2 &sic 29
         0x1800 0 0 3 &sic 30
         0x1800 0 0 4 &sic 27

         0x1000 0 0 1 &sic 27
         0x1000 0 0 2 &sic 28
         0x1000 0 0 3 &sic 29
         0x1000 0 0 4 &sic 30

         0x0800 0 0 1 &sic 30
         0x0800 0 0 2 &sic 27
         0x0800 0 0 3 &sic 28
         0x0800 0 0 4 &sic 29

         0x0000 0 0 1 &sic 29
         0x0000 0 0 2 &sic 30
         0x0000 0 0 3 &sic 27
         0x0000 0 0 4 &sic 28>;

};