/* * Copyright (c) 2020 Stephanos Ioannidis * Copyright 2023 NXP * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief CMSIS extension * * This header provides CMSIS-style register access functions and macros that * are not currently available in the CMSIS. * * NOTE: cmsis.h includes this file; do not manually include this file. */ #ifndef ZEPHYR_MODULES_CMSIS_CMSIS_A_R_EXT_H_ #define ZEPHYR_MODULES_CMSIS_CMSIS_A_R_EXT_H_ /* FSR Register Definitions */ #if defined(CONFIG_AARCH32_ARMV8_R) #define FSR_FS_TRANSLATION_FAULT (4) #define FSR_FS_PERMISSION_FAULT (12) #define FSR_FS_SYNC_EXTERNAL_ABORT (16) #define FSR_FS_ASYNC_EXTERNAL_ABORT (17) #define FSR_FS_SYNC_PARITY_ERROR (24) #define FSR_FS_ASYNC_PARITY_ERROR (25) #define FSR_FS_ALIGNMENT_FAULT (33) #define FSR_FS_DEBUG_EVENT (34) #define FSR_FS_UNSUPPORTED_EXCLUSIVE_ACCESS_FAULT (53) #else #define FSR_FS_BACKGROUND_FAULT (0) #define FSR_FS_ALIGNMENT_FAULT (1) #define FSR_FS_DEBUG_EVENT (2) #define FSR_FS_SYNC_EXTERNAL_ABORT (8) #define FSR_FS_PERMISSION_FAULT (13) #define FSR_FS_ASYNC_EXTERNAL_ABORT (22) #define FSR_FS_ASYNC_PARITY_ERROR (24) #define FSR_FS_SYNC_PARITY_ERROR (25) #endif /* DBGDSCR Register Definitions */ #define DBGDSCR_MOE_Pos (2U) #define DBGDSCR_MOE_Msk (0xFUL << DBGDSCR_MOE_Pos) #define DBGDSCR_MOE_HALT_REQUEST (0) #define DBGDSCR_MOE_BREAKPOINT (1) #define DBGDSCR_MOE_ASYNC_WATCHPOINT (2) #define DBGDSCR_MOE_BKPT_INSTRUCTION (3) #define DBGDSCR_MOE_EXT_DEBUG_REQUEST (4) #define DBGDSCR_MOE_VECTOR_CATCH (5) #define DBGDSCR_MOE_OS_UNLOCK_CATCH (8) #define DBGDSCR_MOE_SYNC_WATCHPOINT (10) __STATIC_FORCEINLINE uint32_t __get_DFAR(void) { uint32_t result; __get_CP(15, 0, result, 6, 0, 0); return result; } __STATIC_FORCEINLINE uint32_t __get_IFAR(void) { uint32_t result; __get_CP(15, 0, result, 6, 0, 2); return result; } __STATIC_FORCEINLINE uint32_t __get_DBGDSCR(void) { uint32_t result; __get_CP(14, 0, result, 0, 1, 0); return result; } #endif /* ZEPHYR_MODULES_CMSIS_CMSIS_A_R_EXT_H_ */