AM261x MCU+ SDK: hsmclient_utils.h Source File

| AM261x MCU+ SDK 26.00.00 |

hsmclient_utils.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2022-2023 Texas Instruments Incorporated
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON AN2
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 #ifndef HSM_CLIENT_UTILS_H_
34 #define HSM_CLIENT_UTILS_H_
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
49 /* ========================================================================== */
50 /* Include Files */
51 /* ========================================================================== */
52
53 #include <string.h>
54 #include <stdlib.h>
55
56 /* ========================================================================== */
57 /* Macros & Typedefs */
58 /* ========================================================================== */
59
61 #define SOC_TYPE_AM263X 0x1
62
63 #define SOC_TYPE_AM263P 0x2
64
65 #define SOC_TYPE_AM273X 0x3
66
67 #define SOC_TYPE_AWR294X 0x4
68
69 #define SOC_TYPE_F29H85x 0x5
70
71 #define SOC_TYPE_AM261x 0x6
72
73 #define NUM_SOC_TYPE 0x7
74
76 #define DEVICE_TYPE_HS_FS 0x00
77
78 #define DEVICE_TYPE_HS_SE 0xFF
79
81 #define HSM_V1 0x1
82
84 #define BIN_TYPE_STANDARD 0x55
85
86 #define BIN_TYPE_CUSTOM 0xAA
87
88 #define BIN_TYPE_OTPKW 0x33
89
91 #define DEVICE_CONFIG_TYPE_SAFETY (0U)
92
93 #define DEVICE_CONFIG_TYPE_SECURITY (1U)
94
95 #define DEVICE_CONFIG_TYPE_DEBUG (2U)
96
97 #define DEVICE_CONFIG_TYPE_ALL (0xFFU)
98
99 /* Value interpretation macros */
101 #define FW_UPDATE_COMPLETE (0x5A5A5A5AU)
102
103 #define SECCFG_VALIDATION_SUCCESS (0x5A5A5A5AU)
104
105 #define DEBUG_STATUS_DISABLED (0x5A5A5A5AU)
106
107 #define DEBUG_STATUS_ENABLED (0xA5A5A5A5U)
108
109 /* dedFotaInfo value definitions */
111 #define BOTH_BANK_INVALID (0x0000FFFFU)
112
113 #define BOTH_BANKS_VALID (0x0000B0B1U)
114
115 #define ONLY_BANK0_VALID (0x0000B0FFU)
116
117 #define ONLY_BANK1_VALID (0x0000FFB1U)
118
119 #define BANK0_ACTIVE_VAL (0xC9U)
120
121 #define BANK1_ACTIVE_VAL (0x36U)
122
123 typedef union HsmVer_t_ HsmVer_t;
124
125 /* ========================================================================== */
126 /* Function Declaration */
127 /* ========================================================================== */
128
138 int32_t HsmClient_parseVersion(HsmVer_t *tifsMcuVer, char* parsedVer);
139
151 int32_t HsmClient_parseDeviceConfig(uint32_t configType, uint32_t *configData,
152 uint32_t configSize, char* parsedConfig);
153
156 #ifdef __cplusplus
157 }
158 #endif
159
160 #endif /* HSM_CLIENT_UTILS_H_ */
HsmVer_t_
type for reading HSMRt version.
Definition: hsmclient.h:143
HsmClient_parseVersion
int32_t HsmClient_parseVersion(HsmVer_t *tifsMcuVer, char *parsedVer)
Parses Version string.
Definition: hsmclient_utils.c:208
HsmClient_parseDeviceConfig
int32_t HsmClient_parseDeviceConfig(uint32_t configType, uint32_t *configData, uint32_t configSize, char *parsedConfig)
Parses Device Configuration data into a human-readable string.
Definition: hsmclient_utils.c:238