Subject: Re: [PATCH 0/5] Relocatable 64-bit kernel using linker PIE support

From: Mohan Kumar M <[email-masked]>
Date: Mon, 18 Aug 2008 22:49:25 +0530

Hi Paul,

I can't boot zImage with your patches. I'm getting the following error 
message from prom_init.c

Error: You can't boot a kdump kernel from OF!

This is due to the check:
if (PHYSICAL_START > 0)
             prom_panic("Error: You can't boot a kdump kernel from OF!\n");

where PHYSICAL_START is kernstart_addr, and this variable needs to be 
referred through RELOC macro

But even after commenting the above check, I am not able to boot zImage.

<snip boot message>

Building dt structure...
Device tree strings 0x0000000002ce4000 -> 0×0000000002ce5034
Device tree struct 0×0000000002ce6000 -> 0×0000000002cf0000
Calling quiesce …
returning from prom_init

<snip>

and the system hangs

It has CONFIG_RELOCATABLE set, (CONFIG_CRASH_DUMP is not set).

I even tried booting zImage through netboot, it also fails at the same 
place.

If you need, I can give the .config I use.

Regards,
Mohan.

Paul Mackerras wrote:
> The following series of patches implement support for a relocatable
> kernel by building it as a position-independent executable (PIE).
> When the linker is given the -pie flag, it creates an executable that
> contains dynamic relocations which can be used to relocate the image
> at boot time for any desired base address.  This patch series adds a
> CONFIG_RELOCATABLE config option for 64-bit which links the kernel
> with -pie and arranges to process the relocations in early boot.
> 
> With the first 4 patches applied, a relocatable kernel will still copy
> itself down to real address 0.  The last patch changes things so that
> a relocatable kernel will run wherever it was loaded.  This last patch
> is pretty much just a proof of concept since it doesn't do anything to
> ensure appropriate alignment of the base address (the base address
> needs to be 16kB aligned).  We probably want to work out whether we
> are a kdump kernel and run in-place if so, or copy down to 0 if not.
> 
> Paul.
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev