linux/drivers/pci
Kishon Vijay Abraham I 2a9a801620 PCI: endpoint: Add support to specify alignment for buffers allocated to BARs
The address that is allocated using pci_epf_alloc_space() is
directly written to the target address of the Inbound Address
Translation unit (ie the HW component implementing inbound address
decoding) on endpoint controllers.

Designware IP [1] has a configuration parameter (CX_ATU_MIN_REGION_SIZE
[2]) which has 64KB as default value and the lower 16 bits of the Base,
Limit and Target registers of the Inbound ATU are fixed to zero. If the
programmed memory address is not aligned to 64 KB boundary this causes
memory corruption.

Modify pci_epf_alloc_space() API to take alignment size as argument in
order to allocate buffers to be mapped to BARs with an alignment that
suits the platform where they are used.

Add an 'align' parameter to epc_features which can be used by platform
drivers to specify the BAR allocation alignment requirements and use
this while invoking pci_epf_alloc_space().

[1] "I/O and MEM Match Modes" section in DesignWare Cores PCI Express
     Controller Databook version 4.90a
[2]  http://www.ti.com/lit/ug/spruid7c/spruid7c.pdf

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2019-04-15 13:24:02 +01:00
..
controller PCI: keystone: Add support to set the max link speed from DT 2019-04-15 13:24:02 +01:00
endpoint PCI: endpoint: Add support to specify alignment for buffers allocated to BARs 2019-04-15 13:24:02 +01:00
hotplug Merge branch 'pci/pm' 2019-03-06 15:30:15 -06:00
pcie Merge branch 'pci/pm' 2019-03-06 15:30:15 -06:00
switch cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
access.c
ats.c PCI/ATS: Add pci_ats_page_aligned() interface 2019-02-26 11:08:07 +01:00
bus.c
ecam.c
host-bridge.c
iov.c PCI/IOV: Add flag so platforms can skip VF scanning 2019-01-01 19:04:37 -06:00
irq.c
Kconfig PCI: Fix PCI kconfig menu organization 2019-01-14 17:01:20 -06:00
Makefile PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers 2019-04-15 13:24:02 +01:00
mmap.c
msi.c PCI/MSI: Remove obsolete sanity checks for multiple interrupt sets 2019-02-18 11:21:29 +01:00
of.c PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers 2019-04-15 13:24:02 +01:00
p2pdma.c pci-v4.21-changes 2019-01-05 17:57:34 -08:00
pci-acpi.c PCI / ACPI: Identify untrusted PCI devices 2018-12-05 12:01:55 +03:00
pci-bridge-emul.c PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags 2019-02-22 10:51:14 +00:00
pci-bridge-emul.h PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags 2019-02-22 10:51:14 +00:00
pci-driver.c PCI: Clean up usage of __u32 type 2019-02-08 13:40:36 -06:00
pci-label.c
pci-mid.c
pci-pf-stub.c
pci-stub.c
pci-sysfs.c PCI: pci-sysfs.c: convert to use BUS_ATTR_WO 2019-01-22 14:25:26 +01:00
pci.c pci-v5.1-changes 2019-03-09 14:57:08 -08:00
pci.h PCI: Add missing include to drivers/pci.h 2018-12-06 14:55:41 -06:00
probe.c Merge branch 'pci/enumeration' 2019-03-06 15:30:11 -06:00
proc.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
quirks.c pci-v5.1-changes 2019-03-09 14:57:08 -08:00
remove.c
rom.c
search.c
setup-bus.c PCI: Rely on config space header type, not class code 2019-01-30 10:57:08 -06:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c