Instead of shifting phys right by 20 and then again left by the same
amount, just convert the code to expect it to be in unit of bytes all
the time.

Signed-off-by: Andrey Smirnov <[email protected]>
---
 arch/arm/cpu/mmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
index 5600cfbe2..40bef016b 100644
--- a/arch/arm/cpu/mmu.c
+++ b/arch/arm/cpu/mmu.c
@@ -196,9 +196,8 @@ void *map_io_sections(unsigned long phys, void *_start, 
size_t size)
 {
        unsigned long start = (unsigned long)_start, sec;
 
-       phys >>= 20;
-       for (sec = start; sec < start + size; sec += (1 << 20))
-               ttb[sec >> 20] = (phys++ << 20) | PMD_SECT_DEF_UNCACHED;
+       for (sec = start; sec < start + size; sec += (1 << 20), phys += SZ_1M)
+               ttb[sec >> 20] = phys | PMD_SECT_DEF_UNCACHED;
 
        dma_flush_range((unsigned long)ttb, (unsigned long)ttb + 0x4000);
        tlb_invalidate();
-- 
2.17.0


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

Reply via email to