diff options
author | Thomas Bogendoerfer <tbogendoerfer@suse.de> | 2019-10-09 15:27:13 +0200 |
---|---|---|
committer | Paul Burton <paul.burton@mips.com> | 2019-10-09 14:55:51 -0700 |
commit | ce6c0a593b3cbeb35269c701fc90fc491dc3a348 (patch) | |
tree | d1ac7ada8ae5ba26fedeaa267ca0a02dc07dd4f3 /arch/mips/fw | |
parent | d11646b5ce930c4d5e933c4d97db5a06a67a211b (diff) |
MIPS: fw: arc: use call_o32 to call ARC prom from 64bit kernel
When using a 64bit kernel with generic spaces setup stack is
also placed in XKPYHS, which the 32bit PROM can't handle.
By using call_o32 for ARC_CALLs a stack placed in KSEG0 is used
when calling PROM.
Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Diffstat (limited to 'arch/mips/fw')
-rw-r--r-- | arch/mips/fw/arc/init.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/fw/arc/init.c b/arch/mips/fw/arc/init.c index 008555969534..7b663455de6b 100644 --- a/arch/mips/fw/arc/init.c +++ b/arch/mips/fw/arc/init.c @@ -21,6 +21,11 @@ struct linux_romvec *romvec; int prom_argc; LONG *_prom_argv, *_prom_envp; +#if defined(CONFIG_64BIT) && defined(CONFIG_FW_ARC32) +/* stack for calling 32bit ARC prom */ +u64 o32_stk[4096]; +#endif + void __init prom_init(void) { PSYSTEM_PARAMETER_BLOCK pb = PROMBLOCK; |