xref: /rk3399_ARM-atf/plat/xilinx/common/include/plat_startup.h (revision b9d26cd3c4b54730563813d45e0874a025a4ad8a)
14d9f825aSVenkatesh Yadav Abbarapu /*
2619bc13eSMichal Simek  * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
327749653SMichal Simek  * Copyright (c) 2023, Advanced Micro Devices, Inc. All rights reserved.
44d9f825aSVenkatesh Yadav Abbarapu  *
54d9f825aSVenkatesh Yadav Abbarapu  * SPDX-License-Identifier: BSD-3-Clause
64d9f825aSVenkatesh Yadav Abbarapu  */
74d9f825aSVenkatesh Yadav Abbarapu 
84d9f825aSVenkatesh Yadav Abbarapu #ifndef PLAT_STARTUP_H
94d9f825aSVenkatesh Yadav Abbarapu #define PLAT_STARTUP_H
104d9f825aSVenkatesh Yadav Abbarapu 
11885e2683SClaus Pedersen #include <common/bl_common.h>
12885e2683SClaus Pedersen 
13*b9d26cd3SPrasad Kummari /* For Xilinx bootloader XBL handover */
14*b9d26cd3SPrasad Kummari enum xbl_handoff {
15*b9d26cd3SPrasad Kummari 	XBL_HANDOFF_SUCCESS = 0,
16*b9d26cd3SPrasad Kummari 	XBL_HANDOFF_NO_STRUCT,
17*b9d26cd3SPrasad Kummari 	XBL_HANDOFF_INVAL_STRUCT,
18*b9d26cd3SPrasad Kummari 	XBL_HANDOFF_TOO_MANY_PARTS
194d9f825aSVenkatesh Yadav Abbarapu };
204d9f825aSVenkatesh Yadav Abbarapu 
21*b9d26cd3SPrasad Kummari #define XBL_MAX_PARTITIONS		8U
22237a7de1SVenkatesh Yadav Abbarapu 
23237a7de1SVenkatesh Yadav Abbarapu /* Structure corresponding to each partition entry */
24*b9d26cd3SPrasad Kummari struct xbl_partition {
25237a7de1SVenkatesh Yadav Abbarapu 	uint64_t entry_point;
26237a7de1SVenkatesh Yadav Abbarapu 	uint64_t flags;
27237a7de1SVenkatesh Yadav Abbarapu };
28237a7de1SVenkatesh Yadav Abbarapu 
29c8be2240SPrasad Kummari /* Structure for handoff parameters to TrustedFirmware-A (TF-A) */
30*b9d26cd3SPrasad Kummari struct xbl_handoff_params {
31237a7de1SVenkatesh Yadav Abbarapu 	uint8_t magic[4];
32237a7de1SVenkatesh Yadav Abbarapu 	uint32_t num_entries;
33*b9d26cd3SPrasad Kummari 	struct xbl_partition partition[XBL_MAX_PARTITIONS];
34237a7de1SVenkatesh Yadav Abbarapu };
35237a7de1SVenkatesh Yadav Abbarapu 
36*b9d26cd3SPrasad Kummari #define HANDOFF_PARAMS_MAX_SIZE	 sizeof(struct xbl_handoff_params)
37205c7ad4SVenkatesh Yadav Abbarapu 
38*b9d26cd3SPrasad Kummari enum xbl_handoff xbl_handover(entry_point_info_t *bl32,
39944e7ea9SVenkatesh Yadav Abbarapu 					entry_point_info_t *bl33,
40*b9d26cd3SPrasad Kummari 					uint64_t handoff_addr);
414d9f825aSVenkatesh Yadav Abbarapu 
428f9ba3f3SMichal Simek /* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */
438f9ba3f3SMichal Simek #define JEDEC_XILINX_MFID	U(0x49)
448f9ba3f3SMichal Simek #define JEDEC_XILINX_BKID	U(0)
458f9ba3f3SMichal Simek 
464d9f825aSVenkatesh Yadav Abbarapu #endif /* PLAT_STARTUP_H */
47