1) In the SD U-Boot configure code, the default CONFIG_DEFAULT_IMMR is 0xe000_0000, it should be set to 0xfff0_0000 for SD boot.
It is needed to compile mpc8309 ramboot(disable DDR init at u-boot, it is a must), MPC8309 ROM code will copy the sd-uboot to the Target Address (DDR address) 0x01000000 and the Execution Starting Address is set to 0x 01000100.
CFG_RESET_SOURCE[0:3]=1101 or 1110.
The RCW is configured as:
RCWL0x44050008
RCWH0xA4200000
2) U-Boot locates the microcode binary according to the configuration macro CONFIG_SYS_QE_FW_ADDR.
It is possible change the CONFIG_SYS_QE_FW_ADDR to a DDR address and “bundle” the microcode to the U-Boot image, so the ROM code will load both to DDR memory.
Example configuration file for the boot_format is attached.
In case of further questions, it will be convenient to create a Technical Case:
https://community.freescale.com/thread/381898