I see that ATF sets up the MMU in its code. Are these settings carried forward to the OS. Or will the OS overwrite the settings when it loads its MMU driver?
Short answer: No.
Longer answer: The ARMv8-A architecture defines multiple levels of privilege that each have their own MMU settings; the OS kernel (such as Linux) runs at EL1/EL2 whereas ARM Trusted Firmware runs at a higher level of privilege, EL3, and therefore these components have separate MMU settings.