diff options
author | Tiejun Chen <tiejun.chen@windriver.com> | 2015-10-07 05:48:15 +0200 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2015-10-28 00:13:27 +0100 |
commit | 1cb6e064924857e600d13b4f6be5511145ecb560 (patch) | |
tree | 95c33bcfee818811a94def404737f5bfeeb9bd38 /arch/powerpc/include | |
parent | powerpc/booke64: Fix args to copy_and_flush (diff) | |
download | linux-1cb6e064924857e600d13b4f6be5511145ecb560.tar.xz linux-1cb6e064924857e600d13b4f6be5511145ecb560.zip |
powerpc/book3e: support CONFIG_RELOCATABLE
book3e is different with book3s since 3s includes the exception
vectors code in head_64.S as it relies on absolute addressing
which is only possible within this compilation unit. So we have
to get that label address with got.
And when boot a relocated kernel, we should reset ipvr properly again
after .relocate.
Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
[scottwood: cleanup and ifdef removal]
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/exception-64e.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/exception-64e.h b/arch/powerpc/include/asm/exception-64e.h index a8b52b61043f..344fc43a7076 100644 --- a/arch/powerpc/include/asm/exception-64e.h +++ b/arch/powerpc/include/asm/exception-64e.h @@ -204,8 +204,8 @@ exc_##label##_book3e: #endif #define SET_IVOR(vector_number, vector_offset) \ - li r3,vector_offset@l; \ - ori r3,r3,interrupt_base_book3e@l; \ + LOAD_REG_ADDR(r3,interrupt_base_book3e);\ + ori r3,r3,vector_offset@l; \ mtspr SPRN_IVOR##vector_number,r3; #endif /* _ASM_POWERPC_EXCEPTION_64E_H */ |