I realize this isn't a solution, but can you document what you did here. This is great progress and there's an outside chance that I could help. Thanks.
so 2.6.21 from latest Diablo is old or recent regarding this serial code? I guess still the old one. I forgot you run recent kernels so the one doing the kexec for you was not the old one. I'm trying this with 2.6.21. I see. What about delay just before jumping to new kernel or what about switching to slower CPU clock before?