You usually can't take existing firmware and run it on a new CPU, because the new CPU requires different bringup code anyway. Take a look at https://github.com/coreboot/coreboot/tree/master/src/soc/int... to get some idea of how many different implementations there are for modern Intel alone (there's a bunch more for the pre-SoC style Intels). If you already have to port your firmware to a new CPU, you can deal with the CPU starting in a different mode - it is entirely an implementation detail that can be handled in the firmware.