AM64x MCU+ SDK  08.03.00
tisci_procboot.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017-2022 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_PROCBOOT_H_
55 #define TISCI_PROCBOOT_H_
56 
57 #ifdef __cplusplus
58 extern "C"
59 {
60 #endif
61 
62 
63 
76  struct tisci_header hdr;
77  uint8_t processor_id;
78 } __attribute__((__packed__));
79 
95  struct tisci_header hdr;
96 } __attribute__((__packed__));
97 
108  struct tisci_header hdr;
109  uint8_t processor_id;
110 } __attribute__((__packed__));
111 
126  struct tisci_header hdr;
127 } __attribute__((__packed__));
128 
141  struct tisci_header hdr;
142  uint8_t processor_id;
143  uint8_t host_id;
144 } __attribute__((__packed__));
145 
161  struct tisci_header hdr;
162 } __attribute__((__packed__));
163 
164 /* A53 Config Flags */
165 
167 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_EN (0x00000001U)
168 
169 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_NIDEN (0x00000002U)
170 
171 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_SPIDEN (0x00000004U)
172 
173 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_SPNIDEN (0x00000008U)
174 
175 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_AARCH32 (0x00000100U)
176 
177 /* R5 Config Flags */
178 
180 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_DBG_EN (0x00000001U)
181 
182 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_DBG_NIDEN (0x00000002U)
183 
184 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_LOCKSTEP (0x00000100U)
185 
186 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_TEINIT (0x00000200U)
187 
188 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_NMFI_EN (0x00000400U)
189 
190 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_TCM_RSTBASE (0x00000800U)
191 
192 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_BTCM_EN (0x00001000U)
193 
194 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_ATCM_EN (0x00002000U)
195 
196 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_MEM_INIT_DIS (0x00004000U)
197 
199 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE (0x00008000U)
200 
201 /* C7x Config Flags */
202 
203 /* L2_PIPELINE_LATENCY_VALUE */
205 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_MASK (0x0000000FU)
206 
207 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_SHIFT (0x00000000U)
208 
209 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_1 (0x00000001U)
210 
211 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_2 (0x00000002U)
212 
213 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_3 (0x00000003U)
214 
215 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_4 (0x00000004U)
216 
217 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_5 (0x00000005U)
218 
219 /* L2_ACCESS_LATENCY_VALUE */
221 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_MASK (0x000000F0U)
222 
223 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_SHIFT (0x00000004U)
224 
225 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_2 (0x00000020U)
226 
227 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_3 (0x00000030U)
228 
229 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_4 (0x00000040U)
230 
231 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_5 (0x00000050U)
232 
233 /* C6x Config Flags */
234 
235 /* SSCLK_MODE_DIV_CLK_MODE_VALUE values
236  *
237  * NOTE: Values are 1 more than actual programmed values to avoid '0' as a
238  * valid value that we pass via flags.
239  */
241 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_MASK (0x00000007U)
242 
243 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_SHIFT (0x00000000U)
244 
245 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV2 (0x00000001U)
246 
247 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV3 (0x00000002U)
248 
249 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV4 (0x00000003U)
250 
251 /* M4F Config Flags */
252 
254 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_M4F_DBG_EN (0x00000001U)
255 
256 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_M4F_DBG_NIDEN (0x00000002U)
257 
269  struct tisci_header hdr;
270  uint8_t processor_id;
271  uint32_t bootvector_lo;
272  uint32_t bootvector_hi;
275 } __attribute__((__packed__));
276 
291  struct tisci_header hdr;
292 } __attribute__((__packed__));
293 
294 /* ARMV8 Control Flags */
295 
297 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_ACINACTM (0x00000001U)
298 
299 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_AINACTS (0x00000002U)
300 
301 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_L2FLUSHREQ (0x00000100U)
302 
303 /* R5 Control Flags */
304 
306 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_CORE_HALT (0x00000001U)
307 
308 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_LPSC (0x00000002U)
309 
310 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_RESET (0x00000004U)
311 
322  struct tisci_header hdr;
323  uint8_t processor_id;
326 } __attribute__((__packed__));
327 
342  struct tisci_header hdr;
343 } __attribute__((__packed__));
344 
352  struct tisci_header hdr;
355 } __attribute__((__packed__));
356 
375  struct tisci_header hdr;
378  uint32_t image_size;
379 } __attribute__((__packed__));
380 
388  struct tisci_header hdr;
389  uint8_t processor_id;
390 } __attribute__((__packed__));
391 
392 /* ARMV8 Status Flags */
393 
395 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_WFE (0x00000001U)
396 
397 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_WFI (0x00000002U)
398 
399 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_L2F_DONE (0x00000010U)
400 
401 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_STANDBYWFIL2 (0x00000020U)
402 
403 /* R5 Status Flags */
404 
406 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_WFE (0x00000001U)
407 
408 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_WFI (0x00000002U)
409 
410 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_CLK_GATED (0x00000004U)
411 
412 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_LOCKSTEP_PERMITTED (0x00000100U)
413 
414 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_SINGLECORE_ONLY (0x00000200U)
415 
416 /* C7x Status Flags */
417 
419 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_C7X_WFE (0x00000001U)
420 
421 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_C7X_WFI (0x00000002U)
422 
423 /* M4F Status Flags */
424 
426 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_M4F_WFI (0x00000002U)
427 
448  struct tisci_header hdr;
449  uint8_t processor_id;
450  uint32_t bootvector_lo;
451  uint32_t bootvector_hi;
452  uint32_t config_flags_1;
453  uint32_t control_flags_1;
454  uint32_t status_flags_1;
455 } __attribute__((__packed__));
456 
486  struct tisci_header hdr;
487  uint8_t processor_id;
496 } __attribute__((__packed__));
497 
510  struct tisci_header hdr;
511 } __attribute__((__packed__));
512 
513 
514 #ifdef __cplusplus
515 }
516 #endif
517 
518 #endif /* TISCI_SECURITY_H_ */
519 
tisci_msg_proc_request_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:95
tisci_msg_proc_set_config_req::bootvector_hi
uint32_t bootvector_hi
Definition: tisci_procboot.h:272
tisci_msg_proc_status_wait_req
Processor Status Wait.
Definition: tisci_procboot.h:485
tisci_msg_proc_release_resp
Release physical processor control response.
Definition: tisci_procboot.h:125
tisci_msg_proc_status_wait_resp
Processor Status Wait Response.
Definition: tisci_procboot.h:509
tisci_msg_proc_status_wait_req::delay_before_iteration_loop_start_us
uint8_t delay_before_iteration_loop_start_us
Definition: tisci_procboot.h:491
tisci_msg_proc_get_status_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:448
tisci_msg_proc_release_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:126
tisci_msg_proc_handover_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:142
tisci_msg_proc_auth_boot_resp
Response to authenticate and start image request.
Definition: tisci_procboot.h:374
tisci_msg_proc_status_wait_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:487
tisci_msg_proc_status_wait_req::status_flags_1_set_any_wait
uint32_t status_flags_1_set_any_wait
Definition: tisci_procboot.h:493
tisci_msg_proc_set_control_req::control_flags_1_set
uint32_t control_flags_1_set
Definition: tisci_procboot.h:324
tisci_msg_proc_release_req
Release physical processor control request.
Definition: tisci_procboot.h:107
__attribute__
struct tisci_msg_proc_request_req __attribute__((__packed__))
tisci_msg_proc_status_wait_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:486
tisci_msg_proc_get_status_resp::bootvector_hi
uint32_t bootvector_hi
Definition: tisci_procboot.h:451
tisci_msg_proc_get_status_resp::config_flags_1
uint32_t config_flags_1
Definition: tisci_procboot.h:452
tisci_msg_proc_auth_boot_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:352
tisci_msg_proc_set_control_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:323
tisci_msg_proc_release_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:109
tisci_msg_proc_set_config_req::bootvector_lo
uint32_t bootvector_lo
Definition: tisci_procboot.h:271
tisci_msg_proc_get_status_req
Processor Status request.
Definition: tisci_procboot.h:387
tisci_msg_proc_get_status_resp::control_flags_1
uint32_t control_flags_1
Definition: tisci_procboot.h:453
tisci_msg_proc_auth_boot_resp::image_address_hi
uint32_t image_address_hi
Definition: tisci_procboot.h:377
tisci_header
Header that prefixes all TISCI messages.
Definition: tisci_protocol.h:95
tisci_msg_proc_set_control_resp
Response to optional processor specific message for sequence control.
Definition: tisci_procboot.h:341
tisci_msg_proc_auth_boot_req::certificate_address_hi
uint32_t certificate_address_hi
Definition: tisci_procboot.h:354
tisci_msg_proc_set_config_req::config_flags_1_clear
uint32_t config_flags_1_clear
Definition: tisci_procboot.h:274
tisci_msg_proc_request_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:76
tisci_msg_proc_get_status_resp::status_flags_1
uint32_t status_flags_1
Definition: tisci_procboot.h:454
tisci_msg_proc_handover_req::host_id
uint8_t host_id
Definition: tisci_procboot.h:143
tisci_msg_proc_get_status_resp::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:449
tisci_msg_proc_get_status_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:389
tisci_msg_proc_handover_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:141
tisci_msg_proc_get_status_resp
Processor Status Response.
Definition: tisci_procboot.h:447
tisci_msg_proc_get_status_resp::bootvector_lo
uint32_t bootvector_lo
Definition: tisci_procboot.h:450
tisci_msg_proc_request_resp
Request for physical processor control response.
Definition: tisci_procboot.h:94
tisci_msg_proc_request_req
This file contains:
Definition: tisci_procboot.h:75
tisci_msg_proc_set_config_req
Processor Boot Configuration.
Definition: tisci_procboot.h:268
tisci_msg_proc_status_wait_req::status_flags_1_set_all_wait
uint32_t status_flags_1_set_all_wait
Definition: tisci_procboot.h:492
tisci_msg_proc_handover_req
Request to handover control of a processor to another host if permitted.
Definition: tisci_procboot.h:140
tisci_msg_proc_set_config_req::config_flags_1_set
uint32_t config_flags_1_set
Definition: tisci_procboot.h:273
tisci_msg_proc_request_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:77
tisci_msg_proc_auth_boot_req::certificate_address_lo
uint32_t certificate_address_lo
Definition: tisci_procboot.h:353
tisci_msg_proc_set_control_req
Optional processor specific message for sequence control.
Definition: tisci_procboot.h:321
tisci_msg_proc_auth_boot_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:375
tisci_msg_proc_handover_resp
Response to handover of control of a processor to another host if permitted.
Definition: tisci_procboot.h:160
tisci_msg_proc_status_wait_req::status_flags_1_clr_all_wait
uint32_t status_flags_1_clr_all_wait
Definition: tisci_procboot.h:494
tisci_msg_proc_auth_boot_req
Authenticate and start image.
Definition: tisci_procboot.h:351
tisci_msg_proc_auth_boot_resp::image_size
uint32_t image_size
Definition: tisci_procboot.h:378
tisci_msg_proc_set_control_req::control_flags_1_clear
uint32_t control_flags_1_clear
Definition: tisci_procboot.h:325
tisci_msg_proc_set_config_resp
Response to Processor Boot Configuration message.
Definition: tisci_procboot.h:290
tisci_msg_proc_set_config_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:291
tisci_msg_proc_handover_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:161
tisci_msg_proc_get_status_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:388
tisci_msg_proc_set_control_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:322
tisci_msg_proc_status_wait_req::status_flags_1_clr_any_wait
uint32_t status_flags_1_clr_any_wait
Definition: tisci_procboot.h:495
tisci_msg_proc_release_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:108
tisci_msg_proc_set_config_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:270
tisci_msg_proc_auth_boot_resp::image_address_lo
uint32_t image_address_lo
Definition: tisci_procboot.h:376
tisci_msg_proc_status_wait_req::delay_per_iteration_us
uint8_t delay_per_iteration_us
Definition: tisci_procboot.h:490
tisci_msg_proc_status_wait_req::num_wait_iterations
uint8_t num_wait_iterations
Definition: tisci_procboot.h:488
tisci_msg_proc_status_wait_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:510
tisci_msg_proc_set_control_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:342
tisci_msg_proc_set_config_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:269
tisci_msg_proc_status_wait_req::num_match_iterations
uint8_t num_match_iterations
Definition: tisci_procboot.h:489