1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (C) 2019 Cadence Design Systems Inc. */ 3 4 #ifndef _ASM_XTENSA_CORE_H 5 #define _ASM_XTENSA_CORE_H 6 7 #include <variant/core.h> 8 9 #ifndef XCHAL_HAVE_DIV32 10 #define XCHAL_HAVE_DIV32 0 11 #endif 12 13 #ifndef XCHAL_HAVE_EXCLUSIVE 14 #define XCHAL_HAVE_EXCLUSIVE 0 15 #endif 16 17 #ifndef XCHAL_HAVE_EXTERN_REGS 18 #define XCHAL_HAVE_EXTERN_REGS 0 19 #endif 20 21 #ifndef XCHAL_HAVE_MPU 22 #define XCHAL_HAVE_MPU 0 23 #endif 24 25 #ifndef XCHAL_HAVE_VECBASE 26 #define XCHAL_HAVE_VECBASE 0 27 #endif 28 29 #ifndef XCHAL_SPANNING_WAY 30 #define XCHAL_SPANNING_WAY 0 31 #endif 32 33 #ifndef XCHAL_HAVE_TRAX 34 #define XCHAL_HAVE_TRAX 0 35 #endif 36 37 #ifndef XCHAL_NUM_PERF_COUNTERS 38 #define XCHAL_NUM_PERF_COUNTERS 0 39 #endif 40 41 #if XCHAL_HAVE_WINDOWED 42 #if defined(CONFIG_USER_ABI_DEFAULT) || defined(CONFIG_USER_ABI_CALL0_PROBE) 43 /* Whether windowed ABI is supported in userspace. */ 44 #define USER_SUPPORT_WINDOWED 45 #endif 46 #if defined(__XTENSA_WINDOWED_ABI__) || defined(USER_SUPPORT_WINDOWED) 47 /* Whether windowed ABI is supported either in userspace or in the kernel. */ 48 #define SUPPORT_WINDOWED 49 #endif 50 #endif 51 52 /* Xtensa ABI requires stack alignment to be at least 16 */ 53 #if XCHAL_DATA_WIDTH > 16 54 #define XTENSA_STACK_ALIGNMENT XCHAL_DATA_WIDTH 55 #else 56 #define XTENSA_STACK_ALIGNMENT 16 57 #endif 58 59 #ifndef XCHAL_HW_MIN_VERSION 60 #if defined(XCHAL_HW_MIN_VERSION_MAJOR) && defined(XCHAL_HW_MIN_VERSION_MINOR) 61 #define XCHAL_HW_MIN_VERSION (XCHAL_HW_MIN_VERSION_MAJOR * 100 + \ 62 XCHAL_HW_MIN_VERSION_MINOR) 63 #else 64 #define XCHAL_HW_MIN_VERSION 0 65 #endif 66 #endif 67 68 #endif 69