For memory reaching the end of the address space
phys + bank->size overflows to 0. Fix this by right shifting
phys and bank->size before adding them.

Signed-off-by: Sascha Hauer <[email protected]>
---
 arch/arm/cpu/mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
index 84daa3d..bf0141b 100644
--- a/arch/arm/cpu/mmu.c
+++ b/arch/arm/cpu/mmu.c
@@ -200,7 +200,7 @@ static int arm_mmu_remap_sdram(struct memory_bank *bank)
 {
        unsigned long phys = (unsigned long)bank->start;
        unsigned long ttb_start = phys >> 20;
-       unsigned long ttb_end = (phys + bank->size) >> 20;
+       unsigned long ttb_end = (phys >> 20) + (bank->size >> 20);
        unsigned long num_ptes = bank->size >> 10;
        int i, pte;
        u32 *ptes;
-- 
1.9.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to