On Tuesday 27 May 2008 10:51:01 you wrote:
> I'm trying to use kexec on a ASUS WL-500gP router (BCM47XX, little
> endian MIPS) with a 22.214.171.124 kernel with some additional changes from
> Unfortunately, it doesn't work for me - when I load a new kernel and try
> to execute it, it just says "Bye" and the router is dead:
> # kexec -l vmlinux
> # kexec -e
> I signalled the issue before in the past, with a 126.96.36.199 kernel:
> Ideas? Ways to debug it?
I am using a 2.6.20 kernel on a 32bit mips platform and it is working fine. however I am using this userland code (make CROSS=$(your cross-compiler prefix) to compile it) :
Could you try to add the following line in machine_kexec.c, just before jumping to the trampoline:
This disables caching on KSEG0, but I would be suprised to find the bcm47xx in the list of machines for which this line could be a "one way ticket to hell" :)
(Well I still have my doubts regarding the issue of not flushing the instruction cache completely before jumping to the new kernel in the trampoline code).