PCI: dwc: al: Add Amazon Annapurna Labs PCIe controller driver
authorJonathan Chocron <jonnyc@amazon.com>
Thu, 12 Sep 2019 13:02:37 +0000 (16:02 +0300)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 16 Sep 2019 13:16:44 +0000 (14:16 +0100)
commita8daea94754989f6c48dafda840482cbc9f882f9
treefbea2be178db3c6f22586f24aa5b19fd9e3c3f70
parented4381da34d4765626aefc9b9ef084cd8e6bb749
PCI: dwc: al: Add Amazon Annapurna Labs PCIe controller driver

This driver is DT based and utilizes the DesignWare APIs.

It allows using a smaller ECAM range for a larger bus range -
usually an entire bus uses 1MB of address space, but the driver
can use it for a larger number of buses. This is achieved by using a HW
mechanism which allows changing the BUS part of the "final" outgoing
config transaction. There are 2 HW regs, one which is basically a
bitmask determining which bits to take from the AXI transaction itself
and another which holds the complementary part programmed by the
driver.

All link initializations are handled by the boot FW.

Signed-off-by: Jonathan Chocron <jonnyc@amazon.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
drivers/pci/controller/dwc/Kconfig
drivers/pci/controller/dwc/pcie-al.c