1 /***************************************************************************//**
2 * \file cyip_efuse_data_v2_xmc7100.h
3 *
4 * \brief
5 * EFUSE_DATA IP definitions
6 *
7 ********************************************************************************
8 * \copyright
9 * (c) (2016-2023), Cypress Semiconductor Corporation (an Infineon company) or
10 * an affiliate of Cypress Semiconductor Corporation.
11 *
12 * SPDX-License-Identifier: Apache-2.0
13 *
14 * Licensed under the Apache License, Version 2.0 (the "License");
15 * you may not use this file except in compliance with the License.
16 * You may obtain a copy of the License at
17 *
18 *     http://www.apache.org/licenses/LICENSE-2.0
19 *
20 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 * See the License for the specific language governing permissions and
24 * limitations under the License.
25 *******************************************************************************/
26 
27 #ifndef _CYIP_EFUSE_DATA_V2_XMC7100_H_
28 #define _CYIP_EFUSE_DATA_V2_XMC7100_H_
29 
30 #include "cyip_headers.h"
31 
32 /**
33   * \brief Secure 128 bits HASH word 0 that is used for authentication in SECURE protection state. (SECURE_HASH_WORD0)
34   */
35 typedef struct {
36     uint8_t HASH_WORD0[32];
37 } cy_stc_secure_hash_word0_t;
38 
39 /**
40   * \brief Secure 128 bits HASH word 1 that is used for authentication in SECURE protection state. (SECURE_HASH_WORD1)
41   */
42 typedef struct {
43     uint8_t HASH_WORD1[32];
44 } cy_stc_secure_hash_word1_t;
45 
46 /**
47   * \brief Secure 128 bits HASH word 2 that is used for authentication in SECURE protection state. (SECURE_HASH_WORD2)
48   */
49 typedef struct {
50     uint8_t HASH_WORD2[32];
51 } cy_stc_secure_hash_word2_t;
52 
53 /**
54   * \brief Secure 128 bits HASH word 3 that is used for authentication in SECURE protection state. (SECURE_HASH_WORD3)
55   */
56 typedef struct {
57     uint8_t HASH_WORD3[32];
58 } cy_stc_secure_hash_word3_t;
59 
60 /**
61   * \brief Access restrictions for SECURE protection state in SECURE lifecycle stage (SECURE_ACCESS_RESTRICT)
62   */
63 typedef struct {
64     uint8_t AP_CTL_CM0_DISABLE[2];
65     uint8_t AP_CTL_CMX_DISABLE[2];
66     uint8_t AP_CTL_SYS_DISABLE[2];
67     uint8_t SYS_AP_MPU_ENABLE;
68     uint8_t DIRECT_EXECUTE_DISABLE;
69     uint8_t FLASH_ALLOWED[3];
70     uint8_t SRAM_ALLOWED[3];
71     uint8_t WORK_FLASH_ALLOWED[2];
72     uint8_t SFLASH_ALLOWED[2];
73     uint8_t MMIO_ALLOWED[2];
74     uint8_t SMIF_XIP_ENABLE;
75     uint8_t RESEREVED[11];
76 } cy_stc_secure_access_restrict_t;
77 
78 /**
79   * \brief Access restrictions for DEAD protection state in SECURE lifecycle stage and number of zeros for Secure fuse group (SECURE_DEAD_ACCESS_RESTRICT_ZEROS)
80   */
81 typedef struct {
82     uint8_t AP_CTL_CM0_DISABLE[2];
83     uint8_t AP_CTL_CMX_DISABLE[2];
84     uint8_t AP_CTL_SYS_DISABLE[2];
85     uint8_t SYS_AP_MPU_ENABLE;
86     uint8_t DIRECT_EXECUTE_DISABLE;
87     uint8_t FLASH_ALLOWED[3];
88     uint8_t SRAM_ALLOWED[3];
89     uint8_t WORK_FLASH_ALLOWED[2];
90     uint8_t SFLASH_ALLOWED[2];
91     uint8_t MMIO_ALLOWED[2];
92     uint8_t SMIF_XIP_ENABLE;
93     uint8_t RESERVED[3];
94     uint8_t SECURE_GROUP_ZEROS[8];
95 } cy_stc_secure_dead_access_restrict_zeros_t;
96 
97 /**
98   * \brief Available EFUSE bits for customer usage.They can be programmed in NORMAL protection state via CMx/DAP and in SECURE protection state via CMx. (CUSTOMER_DATA)
99   */
100 typedef struct {
101     uint8_t DATA_BYTE[32];
102 } cy_stc_customer_data_t;
103 
104 
105 /**
106   * \brief eFUSE memory (EFUSE_DATA)
107   */
108 typedef struct {
109     uint8_t RESERVED[352];
110     cy_stc_secure_hash_word0_t SECURE_HASH_WORD0;
111     cy_stc_secure_hash_word1_t SECURE_HASH_WORD1;
112     cy_stc_secure_hash_word2_t SECURE_HASH_WORD2;
113     cy_stc_secure_hash_word3_t SECURE_HASH_WORD3;
114     cy_stc_secure_access_restrict_t SECURE_ACCESS_RESTRICT;
115     cy_stc_secure_dead_access_restrict_zeros_t SECURE_DEAD_ACCESS_RESTRICT_ZEROS;
116     uint8_t RESERVED1[288];
117     cy_stc_customer_data_t CUSTOMER_DATA[6];
118 } cy_stc_efuse_data_t;
119 
120 
121 #endif /* _CYIP_EFUSE_DATA_V2_XMC7100_H_ */
122 
123 
124 /* [] END OF FILE */
125