Re: [PATCH 0/5] Relocatable 64-bit kernel using linker PIE support
From: Mohan Kumar M <hidden>
Date: 2008-08-18 17:20:52
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 Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev