ahci: Add support for Cavium's ThunderX host controller
authorRobert Richter <rrichter@cavium.com>
Fri, 5 Jun 2015 17:49:26 +0000 (19:49 +0200)
committerTejun Heo <tj@kernel.org>
Tue, 16 Jun 2015 20:12:14 +0000 (16:12 -0400)
commitb7ae128d728c42583dac9db48dce9a44bc0fb900
tree494118f03defc72ac408613bfc13ddefd6463605
parentee2aad42e4b6eaa9721196f07f7d5d8d049e6530
ahci: Add support for Cavium's ThunderX host controller

This patch adds support for Cavium's ThunderX host controller. The
controller resides on the SoC and is a AHCI compatible SATA controller
with one port, compliant with Serial ATA 3.1 and AHCI Revision 1.31.
There can exists multiple SATA controllers on the SoC.

The controller depends on MSI-X support since the PCI ECAM controller
on the SoC does not implement MSI nor lagacy intx interrupt support.
Thus, during device initialization, if MSI fails MSI-X will be used to
enable the device's interrupts.

The controller uses non-standard BAR0 for its register range. The
already existing device lookup (vendor and device id) that is already
implemented for other host controllers is used to change the PCI BAR.

Signed-off-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/ahci.c