]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/kexec: Add kexec "hold" support for Book3e processors
authorJimi Xenidis <jimix@pobox.com>
Mon, 3 Dec 2012 17:05:47 +0000 (17:05 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 10 Jan 2013 06:00:39 +0000 (17:00 +1100)
commit9eb8151c43001c75315e2712caaea29931b5ff9f
tree7ed6a997c91b48d09d8312c247df0eb350c0dfc4
parente7ecc6096f82f3affc8c7946f62c9338d915df61
powerpc/kexec: Add kexec "hold" support for Book3e processors

Motivation:
IBM Blue Gene/Q comes with some very strange firmware that I'm trying to get out
of using in the kernel.  So instead I spin all the threads in the boot wrapper
(using the firmware) and have them enter the kexec stub, pre-translated at the
virtual "linear" address, never touching firmware again.

This works strategy works wonderfully, but I need the following patch in the
kexec stub. I believe it should not effect Book3S and Book3E does not appear
to be here yet so I'd love to get any criticisms up front.

This patch adds two items:

1) Book3e requires that GPR4 survive the "hold" process, so we make
   sure that happens.
2) Book3e has no real mode, and the hold code exploits this.  Since
   these processors ares always translated, we arrange for the kexeced
   threads to enter the hold code using the normal kernel linear mapping.

Signed-off-by: Jimi Xenidis <jimix@pobox.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/head_64.S