1 /*
2  * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
3  * Copyright (c) 2023, Advanced Micro Devices, Inc. All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef PLAT_STARTUP_H
9 #define PLAT_STARTUP_H
10 
11 #include <common/bl_common.h>
12 
13 /* For Xilinx bootloader XBL handover */
14 enum xbl_handoff {
15 	XBL_HANDOFF_SUCCESS = 0,
16 	XBL_HANDOFF_NO_STRUCT,
17 	XBL_HANDOFF_INVAL_STRUCT,
18 	XBL_HANDOFF_TOO_MANY_PARTS
19 };
20 
21 #define XBL_MAX_PARTITIONS		8U
22 
23 /* Structure corresponding to each partition entry */
24 struct xbl_partition {
25 	uint64_t entry_point;
26 	uint64_t flags;
27 };
28 
29 /* Structure for handoff parameters to TrustedFirmware-A (TF-A) */
30 struct xbl_handoff_params {
31 	uint8_t magic[4];
32 	uint32_t num_entries;
33 	struct xbl_partition partition[XBL_MAX_PARTITIONS];
34 };
35 
36 #define HANDOFF_PARAMS_MAX_SIZE	 sizeof(struct xbl_handoff_params)
37 
38 enum xbl_handoff xbl_handover(entry_point_info_t *bl32,
39 					entry_point_info_t *bl33,
40 					uint64_t handoff_addr);
41 
42 /* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */
43 #define JEDEC_XILINX_MFID	U(0x49)
44 #define JEDEC_XILINX_BKID	U(0)
45 
46 #endif /* PLAT_STARTUP_H */
47