AM64x MCU+ SDK  08.02.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 
70  struct tisci_header hdr;
71  uint8_t processor_id;
72 } __attribute__((__packed__));
73 
89  struct tisci_header hdr;
90 } __attribute__((__packed__));
91 
102  struct tisci_header hdr;
103  uint8_t processor_id;
104 } __attribute__((__packed__));
105 
120  struct tisci_header hdr;
121 } __attribute__((__packed__));
122 
135  struct tisci_header hdr;
136  uint8_t processor_id;
137  uint8_t host_id;
138 } __attribute__((__packed__));
139 
155  struct tisci_header hdr;
156 } __attribute__((__packed__));
157 
158 /* A53 Config Flags */
159 
161 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_EN (0x00000001U)
162 
163 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_NIDEN (0x00000002U)
164 
165 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_SPIDEN (0x00000004U)
166 
167 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_DBG_SPNIDEN (0x00000008U)
168 
169 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_ARMV8_AARCH32 (0x00000100U)
170 
171 /* R5 Config Flags */
172 
174 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_DBG_EN (0x00000001U)
175 
176 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_DBG_NIDEN (0x00000002U)
177 
178 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_LOCKSTEP (0x00000100U)
179 
180 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_TEINIT (0x00000200U)
181 
182 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_NMFI_EN (0x00000400U)
183 
184 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_TCM_RSTBASE (0x00000800U)
185 
186 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_BTCM_EN (0x00001000U)
187 
188 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_ATCM_EN (0x00002000U)
189 
190 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_MEM_INIT_DIS (0x00004000U)
191 
193 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE (0x00008000U)
194 
195 /* C7x Config Flags */
196 
197 /* L2_PIPELINE_LATENCY_VALUE */
199 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_MASK (0x0000000FU)
200 
201 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_SHIFT (0x00000000U)
202 
203 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_1 (0x00000001U)
204 
205 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_2 (0x00000002U)
206 
207 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_3 (0x00000003U)
208 
209 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_4 (0x00000004U)
210 
211 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2PL_5 (0x00000005U)
212 
213 /* L2_ACCESS_LATENCY_VALUE */
215 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_MASK (0x000000F0U)
216 
217 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_SHIFT (0x00000004U)
218 
219 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_2 (0x00000020U)
220 
221 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_3 (0x00000030U)
222 
223 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_4 (0x00000040U)
224 
225 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C7X_L2AL_5 (0x00000050U)
226 
227 /* C6x Config Flags */
228 
229 /* SSCLK_MODE_DIV_CLK_MODE_VALUE values
230  *
231  * NOTE: Values are 1 more than actual programmed values to avoid '0' as a
232  * valid value that we pass via flags.
233  */
235 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_MASK (0x00000007U)
236 
237 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_SHIFT (0x00000000U)
238 
239 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV2 (0x00000001U)
240 
241 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV3 (0x00000002U)
242 
243 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_C6X_SSCLKMV_DIV4 (0x00000003U)
244 
245 /* M4F Config Flags */
246 
248 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_M4F_DBG_EN (0x00000001U)
249 
250 #define TISCI_MSG_VAL_PROC_BOOT_CFG_FLAG_M4F_DBG_NIDEN (0x00000002U)
251 
263  struct tisci_header hdr;
264  uint8_t processor_id;
265  uint32_t bootvector_lo;
266  uint32_t bootvector_hi;
269 } __attribute__((__packed__));
270 
285  struct tisci_header hdr;
286 } __attribute__((__packed__));
287 
288 /* ARMV8 Control Flags */
289 
291 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_ACINACTM (0x00000001U)
292 
293 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_AINACTS (0x00000002U)
294 
295 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_ARMV8_L2FLUSHREQ (0x00000100U)
296 
297 /* R5 Control Flags */
298 
300 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_CORE_HALT (0x00000001U)
301 
302 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_LPSC (0x00000002U)
303 
304 #define TISCI_MSG_VAL_PROC_BOOT_CTRL_FLAG_R5_RESET (0x00000004U)
305 
316  struct tisci_header hdr;
317  uint8_t processor_id;
320 } __attribute__((__packed__));
321 
336  struct tisci_header hdr;
337 } __attribute__((__packed__));
338 
346  struct tisci_header hdr;
349 } __attribute__((__packed__));
350 
369  struct tisci_header hdr;
372  uint32_t image_size;
373 } __attribute__((__packed__));
374 
382  struct tisci_header hdr;
383  uint8_t processor_id;
384 } __attribute__((__packed__));
385 
386 /* ARMV8 Status Flags */
387 
389 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_WFE (0x00000001U)
390 
391 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_WFI (0x00000002U)
392 
393 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_L2F_DONE (0x00000010U)
394 
395 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_ARMV8_STANDBYWFIL2 (0x00000020U)
396 
397 /* R5 Status Flags */
398 
400 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_WFE (0x00000001U)
401 
402 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_WFI (0x00000002U)
403 
404 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_CLK_GATED (0x00000004U)
405 
406 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_LOCKSTEP_PERMITTED (0x00000100U)
407 
408 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_R5_SINGLECORE_ONLY (0x00000200U)
409 
410 /* C7x Status Flags */
411 
413 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_C7X_WFE (0x00000001U)
414 
415 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_C7X_WFI (0x00000002U)
416 
417 /* M4F Status Flags */
418 
420 #define TISCI_MSG_VAL_PROC_BOOT_STATUS_FLAG_M4F_WFI (0x00000002U)
421 
442  struct tisci_header hdr;
443  uint8_t processor_id;
444  uint32_t bootvector_lo;
445  uint32_t bootvector_hi;
446  uint32_t config_flags_1;
447  uint32_t control_flags_1;
448  uint32_t status_flags_1;
449 } __attribute__((__packed__));
450 
480  struct tisci_header hdr;
481  uint8_t processor_id;
490 } __attribute__((__packed__));
491 
504  struct tisci_header hdr;
505 } __attribute__((__packed__));
506 
507 #endif /* TISCI_SECURITY_H_ */
508 
tisci_msg_proc_request_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:89
tisci_msg_proc_set_config_req::bootvector_hi
uint32_t bootvector_hi
Definition: tisci_procboot.h:266
tisci_msg_proc_status_wait_req
Processor Status Wait.
Definition: tisci_procboot.h:479
tisci_msg_proc_release_resp
Release physical processor control response.
Definition: tisci_procboot.h:119
tisci_msg_proc_status_wait_resp
Processor Status Wait Response.
Definition: tisci_procboot.h:503
tisci_msg_proc_status_wait_req::delay_before_iteration_loop_start_us
uint8_t delay_before_iteration_loop_start_us
Definition: tisci_procboot.h:485
tisci_msg_proc_get_status_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:442
tisci_msg_proc_release_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:120
tisci_msg_proc_handover_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:136
tisci_msg_proc_auth_boot_resp
Response to authenticate and start image request.
Definition: tisci_procboot.h:368
tisci_msg_proc_status_wait_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:481
tisci_msg_proc_status_wait_req::status_flags_1_set_any_wait
uint32_t status_flags_1_set_any_wait
Definition: tisci_procboot.h:487
tisci_msg_proc_set_control_req::control_flags_1_set
uint32_t control_flags_1_set
Definition: tisci_procboot.h:318
tisci_msg_proc_release_req
Release physical processor control request.
Definition: tisci_procboot.h:101
__attribute__
struct tisci_msg_proc_request_req __attribute__((__packed__))
tisci_msg_proc_status_wait_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:480
tisci_msg_proc_get_status_resp::bootvector_hi
uint32_t bootvector_hi
Definition: tisci_procboot.h:445
tisci_msg_proc_get_status_resp::config_flags_1
uint32_t config_flags_1
Definition: tisci_procboot.h:446
tisci_msg_proc_auth_boot_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:346
tisci_msg_proc_set_control_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:317
tisci_msg_proc_release_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:103
tisci_msg_proc_set_config_req::bootvector_lo
uint32_t bootvector_lo
Definition: tisci_procboot.h:265
tisci_msg_proc_get_status_req
Processor Status request.
Definition: tisci_procboot.h:381
tisci_msg_proc_get_status_resp::control_flags_1
uint32_t control_flags_1
Definition: tisci_procboot.h:447
tisci_msg_proc_auth_boot_resp::image_address_hi
uint32_t image_address_hi
Definition: tisci_procboot.h:371
tisci_header
Header that prefixes all TISCI messages.
Definition: tisci_protocol.h:89
tisci_msg_proc_set_control_resp
Response to optional processor specific message for sequence control.
Definition: tisci_procboot.h:335
tisci_msg_proc_auth_boot_req::certificate_address_hi
uint32_t certificate_address_hi
Definition: tisci_procboot.h:348
tisci_msg_proc_set_config_req::config_flags_1_clear
uint32_t config_flags_1_clear
Definition: tisci_procboot.h:268
tisci_msg_proc_request_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:70
tisci_msg_proc_get_status_resp::status_flags_1
uint32_t status_flags_1
Definition: tisci_procboot.h:448
tisci_msg_proc_handover_req::host_id
uint8_t host_id
Definition: tisci_procboot.h:137
tisci_msg_proc_get_status_resp::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:443
tisci_msg_proc_get_status_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:383
tisci_msg_proc_handover_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:135
tisci_msg_proc_get_status_resp
Processor Status Response.
Definition: tisci_procboot.h:441
tisci_msg_proc_get_status_resp::bootvector_lo
uint32_t bootvector_lo
Definition: tisci_procboot.h:444
tisci_msg_proc_request_resp
Request for physical processor control response.
Definition: tisci_procboot.h:88
tisci_msg_proc_request_req
This file contains:
Definition: tisci_procboot.h:69
tisci_msg_proc_set_config_req
Processor Boot Configuration.
Definition: tisci_procboot.h:262
tisci_msg_proc_status_wait_req::status_flags_1_set_all_wait
uint32_t status_flags_1_set_all_wait
Definition: tisci_procboot.h:486
tisci_msg_proc_handover_req
Request to handover control of a processor to another host if permitted.
Definition: tisci_procboot.h:134
tisci_msg_proc_set_config_req::config_flags_1_set
uint32_t config_flags_1_set
Definition: tisci_procboot.h:267
tisci_msg_proc_request_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:71
tisci_msg_proc_auth_boot_req::certificate_address_lo
uint32_t certificate_address_lo
Definition: tisci_procboot.h:347
tisci_msg_proc_set_control_req
Optional processor specific message for sequence control.
Definition: tisci_procboot.h:315
tisci_msg_proc_auth_boot_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:369
tisci_msg_proc_handover_resp
Response to handover of control of a processor to another host if permitted.
Definition: tisci_procboot.h:154
tisci_msg_proc_status_wait_req::status_flags_1_clr_all_wait
uint32_t status_flags_1_clr_all_wait
Definition: tisci_procboot.h:488
tisci_msg_proc_auth_boot_req
Authenticate and start image.
Definition: tisci_procboot.h:345
tisci_msg_proc_auth_boot_resp::image_size
uint32_t image_size
Definition: tisci_procboot.h:372
tisci_msg_proc_set_control_req::control_flags_1_clear
uint32_t control_flags_1_clear
Definition: tisci_procboot.h:319
tisci_msg_proc_set_config_resp
Response to Processor Boot Configuration message.
Definition: tisci_procboot.h:284
tisci_msg_proc_set_config_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:285
tisci_msg_proc_handover_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:155
tisci_msg_proc_get_status_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:382
tisci_msg_proc_set_control_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:316
tisci_msg_proc_status_wait_req::status_flags_1_clr_any_wait
uint32_t status_flags_1_clr_any_wait
Definition: tisci_procboot.h:489
tisci_msg_proc_release_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:102
tisci_msg_proc_set_config_req::processor_id
uint8_t processor_id
Definition: tisci_procboot.h:264
tisci_msg_proc_auth_boot_resp::image_address_lo
uint32_t image_address_lo
Definition: tisci_procboot.h:370
tisci_msg_proc_status_wait_req::delay_per_iteration_us
uint8_t delay_per_iteration_us
Definition: tisci_procboot.h:484
tisci_msg_proc_status_wait_req::num_wait_iterations
uint8_t num_wait_iterations
Definition: tisci_procboot.h:482
tisci_msg_proc_status_wait_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:504
tisci_msg_proc_set_control_resp::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:336
tisci_msg_proc_set_config_req::hdr
struct tisci_header hdr
Definition: tisci_procboot.h:263
tisci_msg_proc_status_wait_req::num_match_iterations
uint8_t num_match_iterations
Definition: tisci_procboot.h:483