diff options
Diffstat (limited to '')
-rw-r--r-- | bsps/arm/imxrt/mcux-sdk/drivers/iee_apc/fsl_iee_apc.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/bsps/arm/imxrt/mcux-sdk/drivers/iee_apc/fsl_iee_apc.h b/bsps/arm/imxrt/mcux-sdk/drivers/iee_apc/fsl_iee_apc.h new file mode 100644 index 0000000000..e179ac0ecc --- /dev/null +++ b/bsps/arm/imxrt/mcux-sdk/drivers/iee_apc/fsl_iee_apc.h @@ -0,0 +1,124 @@ +/* + * Copyright 2020-2021, NXP + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _FSL_IEE_APC_H_ +#define _FSL_IEE_APC_H_ + +#include "fsl_common.h" + +/*! + * @addtogroup ieer + * @{ + */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ + +/*! @name Driver version */ +/*@{*/ +/*! @brief IEE_APC driver version. Version 2.0.1. + * + * Current version: 2.0.1 + * + * Change log: + * - Version 2.0.0 + * - Initial version + * - Version 2.0.1 + * - Fixed MISRA issues. + */ +#define FSL_IEE_APC_DRIVER_VERSION (MAKE_VERSION(2, 0, 1)) +/*@}*/ + +/*! @brief APC IEE regions. */ +typedef enum _iee_apc_region +{ + kIEE_APC_Region0 = 0U, /*!< APC IEE region 0 */ + kIEE_APC_Region1 = 1U, /*!< APC IEE region 1 */ + kIEE_APC_Region2 = 2U, /*!< APC IEE region 2 */ + kIEE_APC_Region3 = 3U, /*!< APC IEE region 3 */ + kIEE_APC_Region4 = 4U, /*!< APC IEE region 4 */ + kIEE_APC_Region5 = 5U, /*!< APC IEE region 5 */ + kIEE_APC_Region6 = 6U, /*!< APC IEE region 6 */ + kIEE_APC_Region7 = 7U /*!< APC IEE region 7 */ +} iee_apc_region_t; + +/*! @brief APC IEE domains. */ +typedef enum _apc_iee_domain +{ + kIEE_APC_Domain0 = 0U, /*!< APC IEE region 0 */ + kIEE_APC_Domain1 = 1U /*!< APC IEE region 1 */ +} iee_apc_domain_t; + +/******************************************************************************* + * API + ******************************************************************************/ +#if defined(__cplusplus) +extern "C" { +#endif + +/*! + * @brief Enable the APC IEE Region setting. + * + * This function enables IOMUXC LPSR GPR and APC IEE for setting the region. + * + * @param base APC IEE peripheral address. + */ +void IEE_APC_GlobalEnable(IEE_APC_Type *base); + +/*! + * @brief Disables the APC IEE Region setting. + * + * This function disables IOMUXC LPSR GPR and APC IEE for setting the region. + * + * @param base APC IEE peripheral address. + */ +void IEE_APC_GlobalDisable(IEE_APC_Type *base); + +/*! + * @brief Sets the APC IEE Memory Region Descriptors. + * + * This function configures APC IEE Memory Region Descriptor according to region configuration structure. + * + * @param base APC IEE peripheral address. + * @param region Selection of the APC IEE region to be configured. + * @param startAddr Start encryption adress for the selected APC IEE region. + * @param endAddr End encryption adress for the selected APC IEE region. + */ +status_t IEE_APC_SetRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, uint32_t startAddr, uint32_t endAddr); + +/*! + * @brief Lock the LPSR GPR and APC IEE configuration. + * + * This function locks writting to IOMUXC LPSR GPR and APC IEE encryption region setting registers. + * Only system reset can clear the LPSR GPR and APC IEE-RDC_D0/1 Lock bit + * + * @param base APC IEE peripheral address. + * @param region Selection of the APC IEE region to be locked. + * @param domain + */ +status_t IEE_APC_LockRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, iee_apc_domain_t domain); + +/*! + * @brief Enable the IEE encryption/decryption and can lock this setting. + * + * This function enables encryption/decryption by writting to IOMUXC LPSR GPR. + * + * @param base APC IEE peripheral address. + * @param region Selection of the APC IEE region to be enabled. + */ +void IEE_APC_RegionEnable(IEE_APC_Type *base, iee_apc_region_t region); + +#if defined(__cplusplus) +} +#endif + +/*! + *@} + */ + +#endif /* _FSL_IEE_APC_H_ */ |