Hui Shao

iMX53 QSB kernel memory map ( PHY vs VIRT)

Discussion created by Hui Shao on May 7, 2012

Noticed that AIPS1_BASE_ADDR in mx5x.h is defined to 0x73F00000 while iMX53RM.pdf states it as 0x53F00000. A 0x20000000 difference exists. 

 

Digging into it a bit and found that

        if (cpu_is_mx53() || cpu_is_mx50()) {
                for (i = 0; i < ARRAY_SIZE(mx5_io_desc); i++)
                        mx5_io_desc[i].pfn -= __phys_to_pfn(0x20000000);
        }

in mach-mx5/mm.c. Seems like there is a offset value of 0x20000000 to fix it.

 

Does anyone know why there is such a offset fix? If I pass something to IO_ADDRESS(x) to get virtual address, should I use the true physical address or the address added with 0x2000000?

 

Thanks!

Outcomes