xref: /rk3399_ARM-atf/plat/xilinx/common/include/plat_startup.h (revision 237a7de1494060d5be183f47c3ad3a44be08fb31)
14d9f825aSVenkatesh Yadav Abbarapu /*
24d9f825aSVenkatesh Yadav Abbarapu  * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
34d9f825aSVenkatesh Yadav Abbarapu  *
44d9f825aSVenkatesh Yadav Abbarapu  * SPDX-License-Identifier: BSD-3-Clause
54d9f825aSVenkatesh Yadav Abbarapu  */
64d9f825aSVenkatesh Yadav Abbarapu 
74d9f825aSVenkatesh Yadav Abbarapu #ifndef PLAT_STARTUP_H
84d9f825aSVenkatesh Yadav Abbarapu #define PLAT_STARTUP_H
94d9f825aSVenkatesh Yadav Abbarapu 
104d9f825aSVenkatesh Yadav Abbarapu /* For FSBL handover */
114d9f825aSVenkatesh Yadav Abbarapu enum fsbl_handoff {
124d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_SUCCESS = 0,
134d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_NO_STRUCT,
144d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_INVAL_STRUCT,
154d9f825aSVenkatesh Yadav Abbarapu 	FSBL_HANDOFF_TOO_MANY_PARTS
164d9f825aSVenkatesh Yadav Abbarapu };
174d9f825aSVenkatesh Yadav Abbarapu 
18*237a7de1SVenkatesh Yadav Abbarapu #define FSBL_MAX_PARTITIONS		8U
19*237a7de1SVenkatesh Yadav Abbarapu 
20*237a7de1SVenkatesh Yadav Abbarapu /* Structure corresponding to each partition entry */
21*237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_partition {
22*237a7de1SVenkatesh Yadav Abbarapu 	uint64_t entry_point;
23*237a7de1SVenkatesh Yadav Abbarapu 	uint64_t flags;
24*237a7de1SVenkatesh Yadav Abbarapu };
25*237a7de1SVenkatesh Yadav Abbarapu 
26*237a7de1SVenkatesh Yadav Abbarapu /* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
27*237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_atf_handoff_params {
28*237a7de1SVenkatesh Yadav Abbarapu 	uint8_t magic[4];
29*237a7de1SVenkatesh Yadav Abbarapu 	uint32_t num_entries;
30*237a7de1SVenkatesh Yadav Abbarapu 	struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
31*237a7de1SVenkatesh Yadav Abbarapu };
32*237a7de1SVenkatesh Yadav Abbarapu 
33944e7ea9SVenkatesh Yadav Abbarapu enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
34944e7ea9SVenkatesh Yadav Abbarapu 					entry_point_info_t *bl33,
354d9f825aSVenkatesh Yadav Abbarapu 					uint64_t atf_handoff_addr);
364d9f825aSVenkatesh Yadav Abbarapu 
374d9f825aSVenkatesh Yadav Abbarapu #endif /* PLAT_STARTUP_H */
38