[PATCH 00/10] xtensa: support call0 ABI kernel

From: Max Filippov
Date: Tue Oct 19 2021 - 01:17:38 EST


Hello,

this series adds support for building kernel with call0 ABI. This
extends linux support to xtensa cores without windowed registers option.
call0 ABI kernel still supports windowed ABI userspace on cores with
windowed registers. In this case kernel entry from the userspace saves
active register windows as usual.

Max Filippov (10):
xtensa: move _SimulateUserKernelVectorException out of WindowVectors
xtensa: use a14 instead of a15 in inline assembly
xtensa: don't use a12 in strncpy_user
xtensa: don't use a12 in __xtensa_copy_user in call0 ABI
xtensa: definitions for call0 ABI
xtensa: implement call0 ABI support in assembly
xtensa: use register window specific opcodes only when present
xtensa: only build windowed register support code when needed
xtensa: remove unused variable wmask
xtensa: move section symbols to asm/sections.h

arch/xtensa/boot/boot-elf/bootstrap.S | 2 +
arch/xtensa/boot/boot-redboot/bootstrap.S | 72 ++++----
arch/xtensa/include/asm/asmmacro.h | 65 +++++++
arch/xtensa/include/asm/atomic.h | 26 +--
arch/xtensa/include/asm/cmpxchg.h | 16 +-
arch/xtensa/include/asm/core.h | 11 ++
arch/xtensa/include/asm/processor.h | 32 +++-
arch/xtensa/include/asm/sections.h | 41 ++++
arch/xtensa/include/asm/traps.h | 2 +
arch/xtensa/kernel/align.S | 2 +
arch/xtensa/kernel/entry.S | 216 ++++++++++++++--------
arch/xtensa/kernel/head.S | 24 ++-
arch/xtensa/kernel/mcount.S | 38 +++-
arch/xtensa/kernel/process.c | 27 ++-
arch/xtensa/kernel/setup.c | 102 ++++------
arch/xtensa/kernel/signal.c | 12 +-
arch/xtensa/kernel/traps.c | 6 +-
arch/xtensa/kernel/vectors.S | 55 +++---
arch/xtensa/kernel/vmlinux.lds.S | 12 +-
arch/xtensa/lib/strncpy_user.S | 17 +-
arch/xtensa/lib/usercopy.S | 28 ++-
21 files changed, 541 insertions(+), 265 deletions(-)
create mode 100644 arch/xtensa/include/asm/sections.h

--
2.20.1