Skip to content
Snippets Groups Projects
Commit cfd700be authored by Kumar Gala's avatar Kumar Gala Committed by Wolfgang Denk
Browse files

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: default avatarKumar Gala <galak@kernel.crashing.org>
parent 59b4d747
No related branches found
No related tags found
No related merge requests found
...@@ -625,7 +625,7 @@ int fdt_resize(void *blob) ...@@ -625,7 +625,7 @@ int fdt_resize(void *blob)
} }
#ifdef CONFIG_PCI #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_PREFETCH (0x40000000)
#define FDT_PCI_MEM32 (0x02000000) #define FDT_PCI_MEM32 (0x02000000)
...@@ -655,7 +655,7 @@ int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose) { ...@@ -655,7 +655,7 @@ int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose) {
size = (u64)hose->regions[r].size; size = (u64)hose->regions[r].size;
dma_range[0] = 0; dma_range[0] = 0;
if (size > 0x100000000ull) if (size >= 0x100000000ull)
dma_range[0] |= FDT_PCI_MEM64; dma_range[0] |= FDT_PCI_MEM64;
else else
dma_range[0] |= FDT_PCI_MEM32; dma_range[0] |= FDT_PCI_MEM32;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment