RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
arm
imxrt
mcux-sdk
drivers
iee
fsl_iee.h
1
/*
2
* Copyright (c) 2016, Freescale Semiconductor, Inc.
3
* Copyright 2017-2021 NXP
4
* All rights reserved.
5
*
6
* SPDX-License-Identifier: BSD-3-Clause
7
*/
8
9
#ifndef _FSL_IEE_H_
10
#define _FSL_IEE_H_
11
12
#include "fsl_common.h"
13
18
19
/*******************************************************************************
20
* Definitions
21
******************************************************************************/
22
37
#define FSL_IEE_DRIVER_VERSION (MAKE_VERSION(2, 1, 1))
39
41
typedef
enum
_iee_region
42
{
43
kIEE_Region0
= 0U,
44
kIEE_Region1
= 1U,
45
kIEE_Region2
= 2U,
46
kIEE_Region3
= 3U,
47
kIEE_Region4
= 4U,
48
kIEE_Region5
= 5U,
49
kIEE_Region6
= 6U,
50
kIEE_Region7
= 7U
51
}
iee_region_t
;
52
54
typedef
enum
_iee_aes_bypass
55
{
56
kIEE_AesUseMdField
= 0U,
57
kIEE_AesBypass
= 1U
58
}
iee_aes_bypass_t
;
59
61
typedef
enum
_iee_aes_mode
62
{
63
kIEE_ModeNone
= 0U,
64
kIEE_ModeAesXTS
= 1U,
65
kIEE_ModeAesCTRWAddress
= 2U,
66
kIEE_ModeAesCTRWOAddress
= 3U,
67
kIEE_ModeAesCTRkeystream
= 4U
68
}
iee_aes_mode_t
;
69
71
typedef
enum
_iee_aes_key_size
72
{
73
kIEE_AesCTR128XTS256
= 0U,
74
kIEE_AesCTR256XTS512
= 1U
75
}
iee_aes_key_size_t
;
76
78
typedef
enum
_iee_aes_key_num
79
{
80
kIEE_AesKey1
= 1U,
81
kIEE_AesKey2
= 2U
82
}
iee_aes_key_num_t
;
83
85
typedef
struct
_iee_config
86
{
87
iee_aes_bypass_t
bypass
;
88
iee_aes_mode_t
mode
;
89
iee_aes_key_size_t
keySize
;
90
uint32_t
pageOffset
;
91
}
iee_config_t
;
92
93
/*******************************************************************************
94
* API
95
******************************************************************************/
96
#if defined(__cplusplus)
97
extern
"C"
{
98
#endif
99
107
void
IEE_Init
(
IEE_Type
*base);
108
122
void
IEE_GetDefaultConfig
(
iee_config_t
*config);
123
133
void
IEE_SetRegionConfig
(
IEE_Type
*base,
iee_region_t
region,
iee_config_t
*config);
134
146
status_t
IEE_SetRegionKey
(
147
IEE_Type
*base,
iee_region_t
region,
iee_aes_key_num_t
keyNum,
const
uint8_t *key,
size_t
keySize);
148
157
static
inline
uint32_t IEE_GetOffset(uint32_t addressIee, uint32_t addressMemory)
158
{
159
return
(addressMemory - addressIee) >> 12;
160
}
161
171
void
IEE_LockRegionConfig
(
IEE_Type
*base,
iee_region_t
region);
172
173
#if defined(__cplusplus)
174
}
175
#endif
176
180
181
#endif
/* _FSL_IEE_H_ */
IEE_SetRegionConfig
void IEE_SetRegionConfig(IEE_Type *base, iee_region_t region, iee_config_t *config)
Sets the IEE module according to the configuration structure.
Definition
fsl_iee.c:78
_iee_aes_key_size
_iee_aes_key_size
IEE AES key size.
Definition
fsl_iee.h:72
iee_config_t
struct _iee_config iee_config_t
IEE configuration structure.
IEE_LockRegionConfig
void IEE_LockRegionConfig(IEE_Type *base, iee_region_t region)
Lock the IEE region configuration.
Definition
fsl_iee.c:138
_iee_config::pageOffset
uint32_t pageOffset
Definition
fsl_iee.h:90
_iee_config::keySize
iee_aes_key_size_t keySize
Definition
fsl_iee.h:89
IEE_SetRegionKey
status_t IEE_SetRegionKey(IEE_Type *base, iee_region_t region, iee_aes_key_num_t keyNum, const uint8_t *key, size_t keySize)
Sets the IEE module key.
Definition
fsl_iee.c:98
iee_aes_mode_t
enum _iee_aes_mode iee_aes_mode_t
IEE AES mode.
_iee_region
_iee_region
IEE region.
Definition
fsl_iee.h:42
_iee_config::mode
iee_aes_mode_t mode
Definition
fsl_iee.h:88
_iee_config::bypass
iee_aes_bypass_t bypass
Definition
fsl_iee.h:87
iee_region_t
enum _iee_region iee_region_t
IEE region.
IEE_Init
void IEE_Init(IEE_Type *base)
Resets IEE module to factory default values.
Definition
fsl_iee.c:34
_iee_aes_key_num
_iee_aes_key_num
IEE AES ke number.
Definition
fsl_iee.h:79
iee_aes_key_num_t
enum _iee_aes_key_num iee_aes_key_num_t
IEE AES ke number.
_iee_aes_bypass
_iee_aes_bypass
IEE AES enablement/bypass.
Definition
fsl_iee.h:55
iee_aes_bypass_t
enum _iee_aes_bypass iee_aes_bypass_t
IEE AES enablement/bypass.
_iee_aes_mode
_iee_aes_mode
IEE AES mode.
Definition
fsl_iee.h:62
iee_aes_key_size_t
enum _iee_aes_key_size iee_aes_key_size_t
IEE AES key size.
IEE_GetDefaultConfig
void IEE_GetDefaultConfig(iee_config_t *config)
Loads default values to the IEE configuration structure.
Definition
fsl_iee.c:58
kIEE_AesCTR256XTS512
@ kIEE_AesCTR256XTS512
Definition
fsl_iee.h:74
kIEE_AesCTR128XTS256
@ kIEE_AesCTR128XTS256
Definition
fsl_iee.h:73
kIEE_Region6
@ kIEE_Region6
Definition
fsl_iee.h:49
kIEE_Region5
@ kIEE_Region5
Definition
fsl_iee.h:48
kIEE_Region1
@ kIEE_Region1
Definition
fsl_iee.h:44
kIEE_Region2
@ kIEE_Region2
Definition
fsl_iee.h:45
kIEE_Region3
@ kIEE_Region3
Definition
fsl_iee.h:46
kIEE_Region4
@ kIEE_Region4
Definition
fsl_iee.h:47
kIEE_Region0
@ kIEE_Region0
Definition
fsl_iee.h:43
kIEE_Region7
@ kIEE_Region7
Definition
fsl_iee.h:50
kIEE_AesKey1
@ kIEE_AesKey1
Definition
fsl_iee.h:80
kIEE_AesKey2
@ kIEE_AesKey2
Definition
fsl_iee.h:81
kIEE_AesUseMdField
@ kIEE_AesUseMdField
Definition
fsl_iee.h:56
kIEE_AesBypass
@ kIEE_AesBypass
Definition
fsl_iee.h:57
kIEE_ModeAesCTRWAddress
@ kIEE_ModeAesCTRWAddress
Definition
fsl_iee.h:65
kIEE_ModeAesXTS
@ kIEE_ModeAesXTS
Definition
fsl_iee.h:64
kIEE_ModeAesCTRWOAddress
@ kIEE_ModeAesCTRWOAddress
Definition
fsl_iee.h:66
kIEE_ModeAesCTRkeystream
@ kIEE_ModeAesCTRkeystream
Definition
fsl_iee.h:67
kIEE_ModeNone
@ kIEE_ModeNone
Definition
fsl_iee.h:63
status_t
int32_t status_t
Type used for all status and error return values.
Definition
fsl_common.h:225
IEE_Type
Definition
MIMXRT1166_cm4.h:45581
_iee_config
IEE configuration structure.
Definition
fsl_iee.h:86
Generated by
1.18.0