Skip to content

Commit

Permalink
xtensa: use register window specific opcodes only when present
Browse files Browse the repository at this point in the history
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: Max Filippov <jcmvbkbc@gmail.com>
  • Loading branch information
Max Filippov committed Oct 19, 2021
1 parent 0b53725 commit 09af39f
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 2 deletions.
2 changes: 2 additions & 0 deletions arch/xtensa/boot/boot-elf/bootstrap.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions arch/xtensa/boot/boot-redboot/bootstrap.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions arch/xtensa/kernel/align.S
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions arch/xtensa/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions arch/xtensa/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 09af39f

Please sign in to comment.