[ARM] Orion: fix PCIe inbound window programming when RAM size is not a power of two

The PCIe inbound window size is supposed to be a power of two.  If
the total amount of RAM installed in the system is not a power of two,
round it up such that it is.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
This commit is contained in:
Lennert Buytenhek 2009-12-23 16:19:56 +01:00 committed by Nicolas Pitre
parent 6b7b284958
commit 7788cd5557
1 changed files with 6 additions and 0 deletions

View File

@ -132,6 +132,12 @@ static void __init orion_pcie_setup_wins(void __iomem *base,
size += cs->size;
}
/*
* Round up 'size' to the nearest power of two.
*/
if ((size & (size - 1)) != 0)
size = 1 << fls(size);
/*
* Setup BAR[1] to all DRAM banks.
*/