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!