Build a relocatable kernel

modulename: machine_kexec_reloc.ko

and/or

relocate.ko

configname: CONFIG_RELOCATABLE

Linux Kernel Configuration
└─>Processor type and features
└─>Build a relocatable kernel
In linux kernel since version 2.6.20 (release Date: 2007-02-04)  
This builds a kernel image that retains relocation information
so it can be loaded someplace besides the default 1MB.
The relocations tend to make the kernel binary about 10% larger,
but are discarded at runtime.

One use is for the kexec on panic case where the recovery kernel
must live at a different physical address than the primary
kernel.

Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
it has been loaded at and the compile time physical address
(CONFIG_PHYSICAL_START) is used as the minimum location.