I downloaded the angstrom kexec-tools and manually installed them, which includes adding a "kexec -e" just before "/sbin/reboot" in /etc/init.d/reboot. This is because kexec doesn't gracefully shut down the system before launching a new kernel, so the trick is to load a kernel using "kexec -l", reboot, and then have the modified /etc/init.d/reboot launch the new kernel after everything is shut down nicely. If you haven't loaded a kernel in that session then kexec fails and the reboot happens as normal. So don't use "kexec -f" like I've seen in a few places! (except in an altboot script, of course.)
Anyway, after kexec was installed I loaded the old pdaxii13 kernel, rebooted, started the new kernel successfully, failed to find an initial console, then kernel panicked.
Damn.
It seems like it isn't correctly mapping the nand; a normal pdaxii13 boot for me looks like:
CODE
0x00000000-0x00700000 : "smf"
0x00700000-0x08000000 : "root"
0x08000000-0x08000000 : "home"
0x00700000-0x08000000 : "root"
0x08000000-0x08000000 : "home"
but the kexec'd boot displays:
CODE
0x00000000-0x00700000 : "smf"
0x00700000-0x03c00000 : "root"
0x03c00000-0x08000000 : "home"
0x00700000-0x03c00000 : "root"
0x03c00000-0x08000000 : "home"
Reflashing the pdaxii13 kernel works, but of course I'd like to avoid doing that.
Any ideas? (I might just reinstall pdaxii13 from scratch with the layout that the kexec'd kernel expects...)
(oh and edit: fixed my working nand details, I don't have a /home)
