blob: 0752b1474fa2b4a90d34a674f35a08843f6f18ab [file] [log] [blame]
/*
* Copyright (c) 2020 Stephanos Ioannidis <root@stephanos.io>
* 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_ */