core.h 1.5 KB

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