AM62D FreeRTOS SDK
11.02.00
tisci_protocol.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2017-2025 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 ANY
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
*/
54
#ifndef TISCI_PROTOCOL_H
55
#define TISCI_PROTOCOL_H
56
57
#ifdef __cplusplus
58
extern
"C"
59
{
60
#endif
61
62
63
67
#define TISCI_MSG_FLAG_RESERVED0 TISCI_BIT(0)
68
75
#define TISCI_MSG_FLAG_AOP TISCI_BIT(1)
76
78
#define TISCI_MSG_FLAG_SEC TISCI_BIT(2)
79
84
#define TISCI_MSG_FLAG_ACK TISCI_BIT(1)
85
94
struct
tisci_header
{
95
uint16_t
type
;
96
uint8_t
host
;
97
uint8_t
seq
;
98
uint32_t
flags
;
99
};
100
101
/*
102
* Messages sent via secure transport need an additional field for integrity
103
* check in addition to the fields of a TISCI message. The below data structure
104
* is used to enhance the standard TISCI message header with a field for
105
* integrity check and a reserved field for future use.
106
*
107
* The below defined header is placed before the \ref tisci_header when
108
* transmitting a message via a secure transport.
109
*
110
* For more information, please refer to the TISCI documentation.
111
*/
112
123
struct
tisci_sec_header
{
124
uint16_t
integ_check
;
125
uint16_t
rsvd
;
126
};
127
128
/* TISCI Message IDs */
129
#define TISCI_MSG_VERSION (0x0002U)
130
#define TISCI_MSG_DM_VERSION (0x000FU)
131
#define TISCI_MSG_BOOT_NOTIFICATION (0x000AU)
132
#define TISCI_MSG_BOARD_CONFIG (0x000BU)
133
#define TISCI_MSG_BOARD_CONFIG_RM (0x000CU)
134
#define TISCI_MSG_BOARD_CONFIG_SECURITY (0x000DU)
135
#define TISCI_MSG_BOARD_CONFIG_PM (0x000EU)
136
137
#define TISCI_MSG_ENABLE_WDT (0x0000U)
138
#define TISCI_MSG_WAKE_RESET (0x0001U)
139
#define TISCI_MSG_WAKE_REASON (0x0003U)
140
#define TISCI_MSG_GOODBYE (0x0004U)
141
#define TISCI_MSG_SYS_RESET (0x0005U)
142
143
#define TISCI_MSG_QUERY_MSMC (0x0020U)
144
#define TISCI_MSG_GET_TRACE_CONFIG (0x0021U)
145
#define TISCI_MSG_QUERY_FW_CAPS (0x0022U)
146
147
#define TISCI_MSG_SET_CLOCK (0x0100U)
148
#define TISCI_MSG_GET_CLOCK (0x0101U)
149
#define TISCI_MSG_SET_CLOCK_PARENT (0x0102U)
150
#define TISCI_MSG_GET_CLOCK_PARENT (0x0103U)
151
#define TISCI_MSG_GET_NUM_CLOCK_PARENTS (0x0104U)
152
#define TISCI_MSG_SET_CLOCK_SSC (0x010aU)
153
#define TISCI_MSG_GET_CLOCK_SSC (0x010bU)
154
#define TISCI_MSG_SET_FREQ (0x010cU)
155
#define TISCI_MSG_QUERY_FREQ (0x010dU)
156
#define TISCI_MSG_GET_FREQ (0x010eU)
157
158
#define TISCI_MSG_SET_DEVICE (0x0200U)
159
#define TISCI_MSG_GET_DEVICE (0x0201U)
160
#define TISCI_MSG_SET_DEVICE_RESETS (0x0202U)
161
#define TISCI_MSG_DEVICE_DROP_POWERUP_REF (0x0203U)
162
163
#define TISCI_MSG_PREPARE_SLEEP (0x0300U)
164
#define TISCI_MSG_ENTER_SLEEP (0x0301U)
165
166
/*
167
* NOTE: These can likely be marked reserved here and defined in a
168
* tisci_protocol_priv.h?
169
*/
170
#define TISCI_MSG_SYNC_RESUME (0x0302U)
171
#define TISCI_MSG_CONTINUE_RESUME (0x0303U)
172
#define TISCI_MSG_CORE_RESUME (0x0304U)
173
#define TISCI_MSG_DM_ABORT_SLEEP (0x0305U)
174
#define TISCI_MSG_LPM_WAKE_REASON (0x0306U)
175
#define TISCI_MSG_SET_IO_ISOLATION (0x0307U)
176
#define TISCI_MSG_MIN_CONTEXT_RESTORE (0x0308U)
177
#define TISCI_MSG_LPM_SET_DEVICE_CONSTRAINT (0x0309U)
178
#define TISCI_MSG_LPM_SET_LATENCY_CONSTRAINT (0x030AU)
179
#define TISCI_MSG_LPM_GET_DEVICE_CONSTRAINT (0x030BU)
180
#define TISCI_MSG_LPM_GET_LATENCY_CONSTRAINT (0x030CU)
181
#define TISCI_MSG_LPM_GET_NEXT_SYS_MODE (0x030DU)
182
#define TISCI_MSG_LPM_GET_NEXT_HOST_STATE (0x030EU)
183
185
#define TISCI_MSG_LPM_ENCRYPT (0x030FU)
186
187
#define TISCI_MSG_LPM_DECRYPT (0x0310U)
188
#define TISCI_MSG_LPM_ABORT (0x0311U)
189
#define TISCI_MSG_GET_SUSPEND_INITIATOR (0x0312U)
190
#define TISCI_MSG_LPM_SAVE_ADDR (0x0313U)
191
192
#define TISCI_MSG_FIRMWARE_LOAD (0x8105U)
193
#define MSG_FIRMWARE_LOAD_RESULT (0x8805U)
194
196
#define TISCI_MSG_SET_FWL_REGION (0x9000U)
197
198
#define TISCI_MSG_GET_FWL_REGION (0x9001U)
199
200
#define TISCI_MSG_CHANGE_FWL_OWNER (0x9002U)
201
202
#define TISCI_MSG_CRYPTO_SET_DKEK (0x9003U)
203
/* Alias to prevent user code build issues */
204
#define TISCI_MSG_SA2UL_SET_DKEK TISCI_MSG_CRYPTO_SET_DKEK
205
206
#define TISCI_MSG_CRYPTO_RELEASE_DKEK (0x9004U)
207
/* Alias to prevent user code build issues */
208
#define TISCI_MSG_SA2UL_RELEASE_DKEK TISCI_MSG_CRYPTO_RELEASE_DKEK
209
210
#define TISCI_MSG_KEYSTORE_IMPORT_SKEY (0x9005U)
211
212
#define TISCI_MSG_KEYSTORE_ERASE_SKEY (0x9006U)
213
/* Reserved ID not for (re)use */
214
#define TISCI_MSG_SEC_RESERVED_9007 (0x9007U)
215
/* Reserved ID not for (re)use */
216
#define TISCI_MSG_SEC_RESERVED_9008 (0x9008U)
217
218
#define TISCI_MSG_SET_ISC_REGION (0x9009U)
219
220
#define TISCI_MSG_GET_ISC_REGION (0x900AU)
221
222
#define TISCI_MSG_FWL_EXCP_NOTIFICATION (0x900BU)
223
224
#define TISCI_MSG_OPEN_DEBUG_FWLS (0x900CU)
225
229
#define TISCI_MSG_KEYSTORE_WRITE (0x900DU)
230
234
#define TISCI_MSG_KEYSTORE_EXPORT_ALL (0x900EU)
235
236
#define TISCI_MSG_KEYSTORE_IMPORT_ALL (0x900FU)
237
/* Reserved ID not for (re)use */
238
#define TISCI_MSG_SEC_RESERVED_9010 (0x9010U)
239
/* Reserved ID not for (re)use */
240
#define TISCI_MSG_SEC_RESERVED_9011 (0x9011U)
241
/* Reserved ID not for (re)use */
242
#define TISCI_MSG_SEC_RESERVED_9012 (0x9012U)
243
/* Reserved ID not for (re)use */
244
#define TISCI_MSG_SEC_RESERVED_9013 (0x9013U)
245
/* Reserved ID not for (re)use */
246
#define TISCI_MSG_SEC_RESERVED_9014 (0x9014U)
247
/* Reserved ID not for (re)use */
248
#define TISCI_MSG_SEC_RESERVED_9015 (0x9015U)
249
250
/* Reserved ID not for (re)use */
251
#define TISCI_MSG_SEC_RESERVED_9016 (0x9016U)
252
254
#define TISCI_MSG_SA2UL_AUTH_RES_ACQUIRE (0x9017U)
255
257
#define TISCI_MSG_SA2UL_AUTH_RES_RELEASE (0x9018U)
258
259
/* Reserved ID not for (re)use */
260
#define TISCI_MSG_SEC_RESERVED_9020 (0x9020U)
261
263
#define TISCI_MSG_GET_SOC_UID (0x9021U)
264
265
/*********************************************************/
266
/* Messages for handling extended OTP area */
267
269
#define TISCI_MSG_READ_OTP_MMR (0x9022U)
270
272
#define TISCI_MSG_WRITE_OTP_ROW (0x9023U)
273
275
#define TISCI_MSG_LOCK_OTP_ROW (0x9024U)
276
278
#define TISCI_MSG_SOFT_LOCK_OTP_WRITE_GLOBAL (0x9025U)
279
281
#define TISCI_MSG_GET_OTP_ROW_LOCK_STATUS (0x9026U)
282
284
#define TISCI_MSG_RSVD_OTP_1 (0x9027U)
285
287
#define TISCI_MSG_RSVD_OTP_2 (0x9028U)
288
290
#define TISCI_MSG_CRYPTO_GET_DKEK (0x9029U)
291
/* Alias to prevent user code build issues */
292
#define TISCI_MSG_SA2UL_GET_DKEK TISCI_MSG_CRYPTO_GET_DKEK
293
295
#define TISCI_MSG_ALLOW_FWL_CTRL_READ (0x902CU)
296
298
#define TISCI_MSG_FORBID_FWL_CTRL_READ (0x902DU)
299
303
#define TISCI_MSG_SEC_HANDOVER (0x9030U)
304
305
/******************************************************/
306
307
/* Keywriter TISCI message to write keys from a certificate */
308
#define TISCI_MSG_KEY_WRITER (0x9031U)
309
311
#define TISCI_MSG_WRITE_SWREV (0x9032U)
312
314
#define TISCI_MSG_READ_SWREV (0x9033U)
315
317
#define TISCI_MSG_READ_KEYCNT_KEYREV (0x9034U)
318
320
#define TISCI_MSG_WRITE_KEYREV (0x9035U)
321
323
#define TISCI_MSG_CRYPTO_GET_DSMEK (0x9036U)
324
/* Alias to prevent user code build issues */
325
#define TISCI_MSG_SA2UL_GET_DSMEK TISCI_MSG_CRYPTO_GET_DSMEK
326
328
#define TISCI_MSG_CRYPTO_SET_DSMEK (0x9037U)
329
/* Alias to prevent user code build issues */
330
#define TISCI_MSG_SA2UL_SET_DSMEK TISCI_MSG_CRYPTO_SET_DSMEK
331
333
#define TISCI_MSG_CRYPTO_RELEASE_DSMEK (0x9038U)
334
/* Alias to prevent user code build issues */
335
#define TISCI_MSG_SA2UL_RELEASE_DSMEK TISCI_MSG_CRYPTO_RELEASE_DSMEK
336
338
#define TISCI_MSG_KEYRING_IMPORT (0X9039U)
339
341
#define TISCI_MSG_CRYPTO_SET_DKEK_CONST (0x902AU)
342
/* Alias to prevent user code build issues */
343
#define TISCI_MSG_SA2UL_SET_DKEK_CONST TISCI_MSG_CRYPTO_SET_DKEK_CONST
344
346
#define TISCI_MSG_CRYPTO_GET_DKEK_CONST (0x902BU)
347
/* Alias to prevent user code build issues */
348
#define TISCI_MSG_SA2UL_GET_DKEK_CONST TISCI_MSG_CRYPTO_GET_DKEK_CONST
349
351
#define TISCI_MSG_CRYPTO_AES_ENCRYPT (0x9040U)
352
/* Alias to prevent user code build issues */
353
#define TISCI_MSG_SA2UL_AES_ENCRYPT TISCI_MSG_CRYPTO_AES_ENCRYPT
354
356
#define TISCI_MSG_CRYPTO_AES_DECRYPT (0x9041U)
357
/* Alias to prevent user code build issues */
358
#define TISCI_MSG_SA2UL_AES_DECRYPT TISCI_MSG_CRYPTO_AES_DECRYPT
359
361
#define TISCI_MSG_DISABLE_JTAG_UNLOCK (0x9042U)
362
364
#define TISCI_MSG_DISABLE_JTAG_UNLOCK_CHECK (0x9043U)
365
367
#define TISCI_MSG_SET_OTP_BOOT_MODE (0x9044U)
368
369
/* Keywriter lite TISCI message to write keys from a buffer */
370
#define TISCI_MSG_KEY_WRITER_LITE (0x9045U)
371
372
/******************************************************/
373
374
/* Processor Control APIs */
375
377
#define TISCI_MSG_PROC_REQUEST (0xC000U)
378
379
#define TISCI_MSG_PROC_RELEASE (0xC001U)
380
381
#define TISCI_MSG_PROC_HANDOVER (0xC005U)
382
384
#define TISCI_MSG_PROC_SET_CONFIG (0xC100U)
385
386
#define TISCI_MSG_PROC_SET_CONTROL (0xC101U)
387
389
#define TISCI_MSG_PROC_GET_STATUS (0xC400U)
390
392
#define TISCI_MSG_PROC_WAIT_STATUS (0xC401U)
393
395
#define TISCI_MSG_PROC_AUTH_BOOT (0xC120U)
396
398
#define TISCI_MSG_MCELF_PROC_AUTH_BOOT_INIT (0xC122U)
399
401
#define TISCI_MSG_MCELF_PROC_AUTH_BOOT_UPDATE (0xC123U)
402
407
#define TISCI_MSG_MCELF_PROC_AUTH_BOOT_FINISH (0xC124U)
408
410
#define TISCI_MSG_CONFIGURE_CC_REGISTER (0xC125U)
411
412
/* RM IDs */
413
417
#define TISCI_MSG_RM_GET_RESOURCE_RANGE (0x1500U)
418
421
#define TISCI_MSG_RM_IRQ_SET (0x1000U)
422
425
#define TISCI_MSG_RM_IRQ_RELEASE (0x1001U)
426
/* Reserved ID not for (re)use */
427
#define TISCI_MSG_RM_RESERVED_1100 (0x1100U)
428
/* Reserved ID not for (re)use */
429
#define TISCI_MSG_RM_RESERVED_1101 (0x1101U)
430
/* Reserved ID not for (re)use */
431
#define TISCI_MSG_RM_RESERVED_1102 (0x1102U)
432
/* Reserved ID not for (re)use */
433
#define TISCI_MSG_RM_RESERVED_1103 (0x1103U)
434
437
#define TISCI_MSG_RM_RING_CFG (0x1110U)
438
/* Reserved ID not for (re)use */
439
#define TISCI_MSG_RM_RESERVED_1111 (0x1111U)
440
443
#define TISCI_MSG_RM_RING_MON_CFG (0x1120U)
444
/* Reserved ID not for (re)use */
445
#define TISCI_MSG_RM_RESERVED_1200 (0x1200U)
446
/* Reserved ID not for (re)use */
447
#define TISCI_MSG_RM_RESERVED_1201 (0x1201U)
448
451
#define TISCI_MSG_RM_UDMAP_TX_CH_CFG (0x1205U)
452
/* Reserved ID not for (re)use */
453
#define TISCI_MSG_RM_RESERVED_1206 (0x1206U)
454
/* Reserved ID not for (re)use */
455
#define TISCI_MSG_RM_RESERVED_1210 (0x1210U)
456
/* Reserved ID not for (re)use */
457
#define TISCI_MSG_RM_RESERVED_1211 (0x1211U)
458
461
#define TISCI_MSG_RM_UDMAP_RX_CH_CFG (0x1215U)
462
#define TISCI_MSG_RM_RESERVED_1216 (0x1216U)
463
/* Reserved ID not for (re)use */
464
#define TISCI_MSG_RM_RESERVED_1220 (0x1220U)
465
/* Reserved ID not for (re)use */
466
#define TISCI_MSG_RM_RESERVED_1221 (0x1221U)
467
470
#define TISCI_MSG_RM_UDMAP_FLOW_CFG (0x1230U)
471
475
#define TISCI_MSG_RM_UDMAP_FLOW_SIZE_THRESH_CFG (0x1231U)
476
/* Reserved ID not for (re)use */
477
#define TISCI_MSG_RM_RESERVED_1232 (0x1232U)
478
/* Reserved ID not for (re)use */
479
#define TISCI_MSG_RM_RESERVED_1233 (0x1233U)
480
483
#define TISCI_MSG_RM_UDMAP_FLOW_DELEGATE (0x1234U)
484
488
#define TISCI_MSG_RM_UDMAP_GCFG_CFG (0x1240U)
489
/* Reserved ID not for (re)use */
490
#define TISCI_MSG_RM_RESERVED_1241 (0x1241U)
491
494
#define TISCI_MSG_RM_PSIL_PAIR (0x1280U)
495
498
#define TISCI_MSG_RM_PSIL_UNPAIR (0x1281U)
499
502
#define TISCI_MSG_RM_PSIL_READ (0x1282U)
503
506
#define TISCI_MSG_RM_PSIL_WRITE (0x1283U)
507
511
#define TISCI_MSG_RM_PROXY_CFG (0x1300U)
512
513
514
#ifdef __cplusplus
515
}
516
#endif
517
518
#endif
/* TISCI_PROTOCOL_H */
519
tisci_sec_header
Header that prefixes all TISCI messages sent via secure transport.
Definition:
tisci_protocol.h:123
tisci_header::type
uint16_t type
Definition:
tisci_protocol.h:95
tisci_header
Header that prefixes all TISCI messages.
Definition:
tisci_protocol.h:94
tisci_sec_header::integ_check
uint16_t integ_check
Definition:
tisci_protocol.h:124
tisci_header::flags
uint32_t flags
Definition:
tisci_protocol.h:98
tisci_header::seq
uint8_t seq
Definition:
tisci_protocol.h:97
tisci_sec_header::rsvd
uint16_t rsvd
Definition:
tisci_protocol.h:125
tisci_header::host
uint8_t host
Definition:
tisci_protocol.h:96
source
drivers
sciclient
include
tisci
tisci_protocol.h
generated by
1.8.20