Commit 09af39f6 authored by Max Filippov's avatar Max Filippov
Browse files

xtensa: use register window specific opcodes only when present



xtensa core may be configured without register windows support, don't
use register window specific opcodes in that case. Use window register
specific opcodes to initialize hardware or reset core to a known state
regardless of the chosen ABI.

Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 0b537257
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -42,12 +42,14 @@ _bootparam:

	.align  4
_SetupMMU:
#if XCHAL_HAVE_WINDOWED
	movi	a0, 0
	wsr	a0, windowbase
	rsync
	movi	a0, 1
	wsr	a0, windowstart
	rsync
#endif
	movi	a0, 0x1F
	wsr	a0, ps
	rsync
+2 −2
Original line number Diff line number Diff line
@@ -56,13 +56,13 @@ _start:
	movi	a4, 1
	wsr	a4, ps
	rsync

#if XCHAL_HAVE_WINDOWED
	rsr	a5, windowbase
	ssl	a5
	sll	a4, a4
	wsr	a4, windowstart
	rsync

#endif
	movi	a4, KERNEL_PS_WOE_MASK
	wsr	a4, ps
	rsync
+2 −0
Original line number Diff line number Diff line
@@ -58,7 +58,9 @@
 *  BE  shift left / mask 0 0 X X
 */

#if XCHAL_HAVE_WINDOWED
#define UNALIGNED_USER_EXCEPTION
#endif

#if XCHAL_HAVE_BE

+2 −0
Original line number Diff line number Diff line
@@ -940,12 +940,14 @@ unrecoverable_text:

ENTRY(unrecoverable_exception)

#if XCHAL_HAVE_WINDOWED
	movi	a0, 1
	movi	a1, 0

	wsr	a0, windowstart
	wsr	a1, windowbase
	rsync
#endif

	movi	a1, KERNEL_PS_WOE_MASK | LOCKLEVEL
	wsr	a1, ps
+2 −0
Original line number Diff line number Diff line
@@ -67,11 +67,13 @@ _SetupOCD:
	 * xt-gdb to single step via DEBUG exceptions received directly
	 * by ocd.
	 */
#if XCHAL_HAVE_WINDOWED
	movi	a1, 1
	movi	a0, 0
	wsr	a1, windowstart
	wsr	a0, windowbase
	rsync
#endif

	movi	a1, LOCKLEVEL
	wsr	a1, ps