diff options
author | Honghui Zhang <honghui.zhang@mediatek.com> | 2019-02-01 00:36:07 -0500 |
---|---|---|
committer | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | 2019-03-01 06:22:21 -0500 |
commit | cbe3a7728c7ad4721677208e155db06f67eb57d2 (patch) | |
tree | 919e48c3264e73bfbb411f0cc2e38018586a6417 | |
parent | c61df57343bf05743f8abbb31eec9a6f05820dd1 (diff) |
PCI: mediatek: Enlarge PCIe2AHB window size to support 4GB DRAM
The PCIE_AXI_WINDOW0 register defines the inbound window size for
requests coming from PCI endpoints. Requests outside of this window will
be treated as unsupported requests.
Enlarge this window size from 2^31 to 2^33 to support a 8GB address
space (which gives endpoints DMA access to full 4GB DRAM address range
- physical DRAM starts at 0x40000000).
Reported-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Honghui Zhang <honghui.zhang@mediatek.com>
[lorenzo.pieralisi@arm.com: updated commit log]
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
-rw-r--r-- | drivers/pci/controller/pcie-mediatek.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c index c42fe5c4319f..0b6c72804e03 100644 --- a/drivers/pci/controller/pcie-mediatek.c +++ b/drivers/pci/controller/pcie-mediatek.c | |||
@@ -90,6 +90,12 @@ | |||
90 | #define AHB2PCIE_SIZE(x) ((x) & GENMASK(4, 0)) | 90 | #define AHB2PCIE_SIZE(x) ((x) & GENMASK(4, 0)) |
91 | #define PCIE_AXI_WINDOW0 0x448 | 91 | #define PCIE_AXI_WINDOW0 0x448 |
92 | #define WIN_ENABLE BIT(7) | 92 | #define WIN_ENABLE BIT(7) |
93 | /* | ||
94 | * Define PCIe to AHB window size as 2^33 to support max 8GB address space | ||
95 | * translate, support least 4GB DRAM size access from EP DMA(physical DRAM | ||
96 | * start from 0x40000000). | ||
97 | */ | ||
98 | #define PCIE2AHB_SIZE 0x21 | ||
93 | 99 | ||
94 | /* PCIe V2 configuration transaction header */ | 100 | /* PCIe V2 configuration transaction header */ |
95 | #define PCIE_CFG_HEADER0 0x460 | 101 | #define PCIE_CFG_HEADER0 0x460 |
@@ -713,7 +719,7 @@ static int mtk_pcie_startup_port_v2(struct mtk_pcie_port *port) | |||
713 | writel(val, port->base + PCIE_AHB_TRANS_BASE0_H); | 719 | writel(val, port->base + PCIE_AHB_TRANS_BASE0_H); |
714 | 720 | ||
715 | /* Set PCIe to AXI translation memory space.*/ | 721 | /* Set PCIe to AXI translation memory space.*/ |
716 | val = fls(0xffffffff) | WIN_ENABLE; | 722 | val = PCIE2AHB_SIZE | WIN_ENABLE; |
717 | writel(val, port->base + PCIE_AXI_WINDOW0); | 723 | writel(val, port->base + PCIE_AXI_WINDOW0); |
718 | 724 | ||
719 | return 0; | 725 | return 0; |