xref: /rk3399_ARM-atf/plat/xilinx/common/include/plat_startup.h (revision 205c7ad4cd73e5c091b03f23a3a3be74da5c8aea)
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 
18237a7de1SVenkatesh Yadav Abbarapu #define FSBL_MAX_PARTITIONS		8U
19237a7de1SVenkatesh Yadav Abbarapu 
20237a7de1SVenkatesh Yadav Abbarapu /* Structure corresponding to each partition entry */
21237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_partition {
22237a7de1SVenkatesh Yadav Abbarapu 	uint64_t entry_point;
23237a7de1SVenkatesh Yadav Abbarapu 	uint64_t flags;
24237a7de1SVenkatesh Yadav Abbarapu };
25237a7de1SVenkatesh Yadav Abbarapu 
26237a7de1SVenkatesh Yadav Abbarapu /* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
27237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_atf_handoff_params {
28237a7de1SVenkatesh Yadav Abbarapu 	uint8_t magic[4];
29237a7de1SVenkatesh Yadav Abbarapu 	uint32_t num_entries;
30237a7de1SVenkatesh Yadav Abbarapu 	struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
31237a7de1SVenkatesh Yadav Abbarapu };
32237a7de1SVenkatesh Yadav Abbarapu 
33*205c7ad4SVenkatesh Yadav Abbarapu #define ATF_HANDOFF_PARAMS_MAX_SIZE	sizeof(struct xfsbl_atf_handoff_params)
34*205c7ad4SVenkatesh Yadav Abbarapu 
35944e7ea9SVenkatesh Yadav Abbarapu enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
36944e7ea9SVenkatesh Yadav Abbarapu 					entry_point_info_t *bl33,
374d9f825aSVenkatesh Yadav Abbarapu 					uint64_t atf_handoff_addr);
384d9f825aSVenkatesh Yadav Abbarapu 
394d9f825aSVenkatesh Yadav Abbarapu #endif /* PLAT_STARTUP_H */
40