summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2009-08-05 09:03:54 -0500
committerWolfgang Denk <wd@denx.de>2009-08-09 23:13:56 +0200
commitcfd700be9f5ed289fd57a9bd61e266319badcb0d (patch)
treee34dc8ba30df70bd9357f5d64d6e1fbb050c3bd3
parent59b4d7471c42e955bd9846892a0cc7478171778d (diff)
downloadu-boot-imx-cfd700be9f5ed289fd57a9bd61e266319badcb0d.zip
u-boot-imx-cfd700be9f5ed289fd57a9bd61e266319badcb0d.tar.gz
u-boot-imx-cfd700be9f5ed289fd57a9bd61e266319badcb0d.tar.bz2
fdt: Fix fdt_pci_dma_ranges handling of 64-bit ranges
If the size of a region equal to 4G it can't be represnted in a 32-bit BAR so we should have marked that case as MEM64. Additionally bump the number of inbound windows up to 4 to handle the fact that Freescale PPCs that have an implicit window for CCSRBAR. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r--common/fdt_support.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/common/fdt_support.c b/common/fdt_support.c
index fc077e8..89164a1 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -625,7 +625,7 @@ int fdt_resize(void *blob)
}
#ifdef CONFIG_PCI
-#define CONFIG_SYS_PCI_NR_INBOUND_WIN 3
+#define CONFIG_SYS_PCI_NR_INBOUND_WIN 4
#define FDT_PCI_PREFETCH (0x40000000)
#define FDT_PCI_MEM32 (0x02000000)
@@ -655,7 +655,7 @@ int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose) {
size = (u64)hose->regions[r].size;
dma_range[0] = 0;
- if (size > 0x100000000ull)
+ if (size >= 0x100000000ull)
dma_range[0] |= FDT_PCI_MEM64;
else
dma_range[0] |= FDT_PCI_MEM32;