powerpc/64: Add an option to force run-at-load to test relocation

This adds a config option that can help exercise the case when
the kernel is not running at PAGE_OFFSET.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Balbir Singh <bsingharora@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Nicholas Piggin 2016-10-14 18:31:33 +11:00 committed by Michael Ellerman
parent 5246adec59
commit 70839d2077
2 changed files with 17 additions and 1 deletions

View File

@ -479,6 +479,15 @@ config RELOCATABLE
setting can still be useful to bootwrappers that need to know the setting can still be useful to bootwrappers that need to know the
load address of the kernel (eg. u-boot/mkimage). load address of the kernel (eg. u-boot/mkimage).
config RELOCATABLE_TEST
bool "Test relocatable kernel"
depends on (PPC64 && RELOCATABLE)
default n
help
This runs the relocatable kernel at the address it was initially
loaded at, which tends to be non-zero and therefore test the
relocation code.
config CRASH_DUMP config CRASH_DUMP
bool "Build a kdump crash kernel" bool "Build a kdump crash kernel"
depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP) depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP)

View File

@ -107,12 +107,19 @@ __secondary_hold_acknowledge:
* crash_kernel region. The loader is responsible for * crash_kernel region. The loader is responsible for
* observing the alignment requirement. * observing the alignment requirement.
*/ */
#ifdef CONFIG_RELOCATABLE_TEST
#define RUN_AT_LOAD_DEFAULT 1 /* Test relocation, do not copy to 0 */
#else
#define RUN_AT_LOAD_DEFAULT 0x72756e30 /* "run0" -- relocate to 0 by default */
#endif
/* Do not move this variable as kexec-tools knows about it. */ /* Do not move this variable as kexec-tools knows about it. */
. = 0x5c . = 0x5c
.globl __run_at_load .globl __run_at_load
__run_at_load: __run_at_load:
DEFINE_FIXED_SYMBOL(__run_at_load) DEFINE_FIXED_SYMBOL(__run_at_load)
.long 0x72756e30 /* "run0" -- relocate to 0 by default */ .long RUN_AT_LOAD_DEFAULT
#endif #endif
. = 0x60 . = 0x60