summaryrefslogtreecommitdiff
path: root/arch/mips/fw
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tbogendoerfer@suse.de>2019-10-09 15:27:13 +0200
committerPaul Burton <paul.burton@mips.com>2019-10-09 14:55:51 -0700
commitce6c0a593b3cbeb35269c701fc90fc491dc3a348 (patch)
treed1ac7ada8ae5ba26fedeaa267ca0a02dc07dd4f3 /arch/mips/fw
parentd11646b5ce930c4d5e933c4d97db5a06a67a211b (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.c5
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;