MIPS: Octeon: Allow more than 3.75GB of memory with PCIe
We reserve the 3.75GB - 4GB region of PCIe address space for device to device transfers, making the corresponding physical memory under direct mapping unavailable for DMA. To allow for PCIe DMA to all physical memory we map this chunk of physical memory with BAR1. Because of the resulting discontinuity in the mapping function, we remove a page of memory at each end of the range so multi-page DMA buffers can never be allocated that span the range. Signed-off-by: David Daney <ddaney@caviumnetworks.com> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/1535/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
70dc6f045f
commit
2b5987abaf
@ -14,6 +14,19 @@
|
||||
/* Some PCI cards require delays when accessing config space. */
|
||||
#define PCI_CONFIG_SPACE_DELAY 10000
|
||||
|
||||
/*
|
||||
* The physical memory base mapped by BAR1. 256MB at the end of the
|
||||
* first 4GB.
|
||||
*/
|
||||
#define CVMX_PCIE_BAR1_PHYS_BASE ((1ull << 32) - (1ull << 28))
|
||||
#define CVMX_PCIE_BAR1_PHYS_SIZE (1ull << 28)
|
||||
|
||||
/*
|
||||
* The RC base of BAR1. gen1 has a 39-bit BAR2, gen2 has 41-bit BAR2,
|
||||
* place BAR1 so it is the same for both.
|
||||
*/
|
||||
#define CVMX_PCIE_BAR1_RC_BASE (1ull << 41)
|
||||
|
||||
/*
|
||||
* pcibios_map_irq() is defined inside pci-octeon.c. All it does is
|
||||
* call the Octeon specific version pointed to by this variable. This
|
||||
|
Reference in New Issue
Block a user