mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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>
This commit is contained in:
parent
59b4d7471c
commit
cfd700be9f
1 changed files with 2 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue