xref: /rk3399_ARM-atf/plat/xilinx/common/include/plat_startup.h (revision 8f9ba3f344545740fc44e90fb8322c7728ae94ec)
14d9f825aSVenkatesh Yadav Abbarapu /*
24d9f825aSVenkatesh Yadav Abbarapu  * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
3*8f9ba3f3SMichal 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 
134d9f825aSVenkatesh Yadav Abbarapu /* For FSBL handover */
144d9f825aSVenkatesh Yadav Abbarapu enum fsbl_handoff {
154d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_SUCCESS = 0,
164d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_NO_STRUCT,
174d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_INVAL_STRUCT,
184d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_TOO_MANY_PARTS
194d9f825aSVenkatesh Yadav Abbarapu };
204d9f825aSVenkatesh Yadav Abbarapu 
21237a7de1SVenkatesh Yadav Abbarapu #define FSBL_MAX_PARTITIONS		8U
22237a7de1SVenkatesh Yadav Abbarapu 
23237a7de1SVenkatesh Yadav Abbarapu /* Structure corresponding to each partition entry */
24237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_partition {
25237a7de1SVenkatesh Yadav Abbarapu 	uint64_t entry_point;
26237a7de1SVenkatesh Yadav Abbarapu 	uint64_t flags;
27237a7de1SVenkatesh Yadav Abbarapu };
28237a7de1SVenkatesh Yadav Abbarapu 
29237a7de1SVenkatesh Yadav Abbarapu /* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
30237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_atf_handoff_params {
31237a7de1SVenkatesh Yadav Abbarapu 	uint8_t magic[4];
32237a7de1SVenkatesh Yadav Abbarapu 	uint32_t num_entries;
33237a7de1SVenkatesh Yadav Abbarapu 	struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
34237a7de1SVenkatesh Yadav Abbarapu };
35237a7de1SVenkatesh Yadav Abbarapu 
36205c7ad4SVenkatesh Yadav Abbarapu #define ATF_HANDOFF_PARAMS_MAX_SIZE	sizeof(struct xfsbl_atf_handoff_params)
37205c7ad4SVenkatesh Yadav Abbarapu 
38944e7ea9SVenkatesh Yadav Abbarapu enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
39944e7ea9SVenkatesh Yadav Abbarapu 					entry_point_info_t *bl33,
404d9f825aSVenkatesh Yadav Abbarapu 					uint64_t atf_handoff_addr);
414d9f825aSVenkatesh Yadav Abbarapu 
42*8f9ba3f3SMichal Simek /* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */
43*8f9ba3f3SMichal Simek #define JEDEC_XILINX_MFID	U(0x49)
44*8f9ba3f3SMichal Simek #define JEDEC_XILINX_BKID	U(0)
45*8f9ba3f3SMichal Simek 
464d9f825aSVenkatesh Yadav Abbarapu #endif /* PLAT_STARTUP_H */
47