Subject: [PATCH 0/5] Relocatable kernel support for PPC64

From: Mohan Kumar M <[email-masked]>
Date: Tue, 12 Aug 2008 01:41:20 +0530

Hi,

Following five patches enable the "relocatable kernel" feature for
PPC64 kernels.
	1. Extract list of relocation offsets.patch
	2. Build files needed for relocation.patch
	3. Apply relocation.patch
	4. Relocation support.patch
	5. Relocation support for kdump kernel.patch

Paul, can you please merge these patches to the powerpc git tree?

With the patchset, vmcore image of a crashed system can be captured
using the same kernel binary.

Still the kernel is not a fully relocatable kernel. It can either run at
0 or 32MB based on which address its loaded. If its loaded by 'kexec -p',
it behaves as a relocatable kernel and runs at 32MB(even though its
compiled for 0). If the same kernel is loaded by yaboot or kexec -l, it
will behave as a normal kernel and will run at the compiled address.

Difference between previous patchset and current
* The problem kdump kernel boot fail on some specific systems is fixed now.
* Kdump kernel boot failed with git tree kernels, its fixed now.

Issues:
* Relocatable vmlinux image is built in arch/powerpc/boot as
  vmlinux.reloc. But it should be built in top level directory of kernel
  source as vmlinux instead of vmlinux.reloc

Limitation:

* During kdump kernel boot, all secondary processors are stuck up. But
  during yaboot all secondary processors are brought online.

Since relocatable kernel is used only for kdump kernels and kdump
kernel is always booted with "maxcpus=1" kernel parameter, there is no
significant difference. It can be marked as a known issue.
(I am trying to fix this issue)

Tested on POWER5 systems.

Regards,
Mohan.