Hi, When looking into ppc440 support, I'm confused on the functionality of fixup_bigphys_addr() in syslib/ibm44x_common.c. It's called by ioremap() in arch/ppc/mm/pgtable.c. The prototype is as follows. phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size)
Why do we need this fixup? ioremap() takes a physical address as an argument and maps the physical address space to virtual address space with the specified size. Since it's already a physical address, which is 36-bit address in the case of 440, why do we need to fix up the ERPN? I must be missing something here. Thanks, -Shawn.