Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:22:59

0001 /*
0002  * Copyright 2020-2021, NXP
0003  * All rights reserved.
0004  *
0005  * SPDX-License-Identifier: BSD-3-Clause
0006  */
0007 
0008 #ifndef _FSL_IEE_APC_H_
0009 #define _FSL_IEE_APC_H_
0010 
0011 #include "fsl_common.h"
0012 
0013 /*!
0014  * @addtogroup ieer
0015  * @{
0016  */
0017 
0018 /*******************************************************************************
0019  * Definitions
0020  ******************************************************************************/
0021 
0022 /*! @name Driver version */
0023 /*@{*/
0024 /*! @brief IEE_APC driver version. Version 2.0.1.
0025  *
0026  * Current version: 2.0.1
0027  *
0028  * Change log:
0029  * - Version 2.0.0
0030  *   - Initial version
0031  * - Version 2.0.1
0032  *   - Fixed MISRA issues.
0033  */
0034 #define FSL_IEE_APC_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))
0035 /*@}*/
0036 
0037 /*! @brief APC IEE regions. */
0038 typedef enum _iee_apc_region
0039 {
0040     kIEE_APC_Region0 = 0U, /*!< APC IEE region 0 */
0041     kIEE_APC_Region1 = 1U, /*!< APC IEE region 1 */
0042     kIEE_APC_Region2 = 2U, /*!< APC IEE region 2 */
0043     kIEE_APC_Region3 = 3U, /*!< APC IEE region 3 */
0044     kIEE_APC_Region4 = 4U, /*!< APC IEE region 4 */
0045     kIEE_APC_Region5 = 5U, /*!< APC IEE region 5 */
0046     kIEE_APC_Region6 = 6U, /*!< APC IEE region 6 */
0047     kIEE_APC_Region7 = 7U  /*!< APC IEE region 7 */
0048 } iee_apc_region_t;
0049 
0050 /*! @brief APC IEE domains. */
0051 typedef enum _apc_iee_domain
0052 {
0053     kIEE_APC_Domain0 = 0U, /*!< APC IEE region 0 */
0054     kIEE_APC_Domain1 = 1U  /*!< APC IEE region 1 */
0055 } iee_apc_domain_t;
0056 
0057 /*******************************************************************************
0058  * API
0059  ******************************************************************************/
0060 #if defined(__cplusplus)
0061 extern "C" {
0062 #endif
0063 
0064 /*!
0065  * @brief Enable the APC IEE Region setting.
0066  *
0067  * This function enables IOMUXC LPSR GPR and APC IEE for setting the region.
0068  *
0069  * @param base APC IEE peripheral address.
0070  */
0071 void IEE_APC_GlobalEnable(IEE_APC_Type *base);
0072 
0073 /*!
0074  * @brief Disables the APC IEE Region setting.
0075  *
0076  * This function disables IOMUXC LPSR GPR and APC IEE for setting the region.
0077  *
0078  * @param base APC IEE peripheral address.
0079  */
0080 void IEE_APC_GlobalDisable(IEE_APC_Type *base);
0081 
0082 /*!
0083  * @brief Sets the APC IEE Memory Region Descriptors.
0084  *
0085  * This function configures APC IEE Memory Region Descriptor according to region configuration structure.
0086  *
0087  * @param base APC IEE peripheral address.
0088  * @param region Selection of the APC IEE region to be configured.
0089  * @param startAddr Start encryption adress for the selected APC IEE region.
0090  * @param endAddr End encryption adress for the selected APC IEE region.
0091  */
0092 status_t IEE_APC_SetRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, uint32_t startAddr, uint32_t endAddr);
0093 
0094 /*!
0095  * @brief Lock the LPSR GPR and APC IEE configuration.
0096  *
0097  * This function locks writting to IOMUXC LPSR GPR and APC IEE encryption region setting registers.
0098  * Only system reset can clear the LPSR GPR and APC IEE-RDC_D0/1 Lock bit
0099  *
0100  * @param base APC IEE peripheral address.
0101  * @param region Selection of the APC IEE region to be locked.
0102  * @param domain
0103  */
0104 status_t IEE_APC_LockRegionConfig(IEE_APC_Type *base, iee_apc_region_t region, iee_apc_domain_t domain);
0105 
0106 /*!
0107  * @brief Enable the IEE encryption/decryption and can lock this setting.
0108  *
0109  * This function enables encryption/decryption by writting to IOMUXC LPSR GPR.
0110  *
0111  * @param base APC IEE peripheral address.
0112  * @param region Selection of the APC IEE region to be enabled.
0113  */
0114 void IEE_APC_RegionEnable(IEE_APC_Type *base, iee_apc_region_t region);
0115 
0116 #if defined(__cplusplus)
0117 }
0118 #endif
0119 
0120 /*!
0121  *@}
0122  */
0123 
0124 #endif /* _FSL_IEE_APC_H_ */