v6 software reset fails on 1176
Jamie Iles
jamie at jamieiles.com
Tue Aug 23 13:56:38 EDT 2011
On Tue, Aug 23, 2011 at 06:47:36PM +0100, Will Deacon wrote:
> You need to make sure you call cpu_reset by jumping to its *physical*
> address. If that happens to alias with the virtual address of the kernel, it
> won't currently work but I have a solution to this in my kexec branch.
>
> You can do something like:
>
> typedef void (*phys_reset_t)(unsigned long);
>
> phys_reset = (phys_reset_t)virt_to_phys(cpu_reset);
> phys_reset(0xffff0000);
OK, that makes perfect sense! I'll give it a go on my hardware tomorrow
when I'm back in the office.
All of the other mainline users of cpu_reset() just call it directly, so
I guess they need to do the same thing?
Jamie
More information about the linux-arm-kernel
mailing list