You need to compile your kernel with CONFIG_BOOT_PRINTK_DELAY set and pass the boot parameter 'boot_delay=X' where X is ms. I pass 100ms and it works without the need for serial-console R&D flag. Please keep us posted on your findings. I tried to kexec the 2.6.21 kernel from a kexec capable 2.6.28 and it only works with serial-console flag. On the other side a 2.6.28 kexeced kernel works without serial-console flag iff you insert the above printk delays. I didn't tried a 2.6.21 kernel with delays tho. BTW I have not tried to insert delays before jumping nor switching to slower CPU freqs as I'm not a very bright kernel hacker