1 /* 2 * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef PLAT_STARTUP_H 8 #define PLAT_STARTUP_H 9 10 #include <common/bl_common.h> 11 12 /* For FSBL handover */ 13 enum fsbl_handoff { 14 FSBL_HANDOFF_SUCCESS = 0, 15 FSBL_HANDOFF_NO_STRUCT, 16 FSBL_HANDOFF_INVAL_STRUCT, 17 FSBL_HANDOFF_TOO_MANY_PARTS 18 }; 19 20 #define FSBL_MAX_PARTITIONS 8U 21 22 /* Structure corresponding to each partition entry */ 23 struct xfsbl_partition { 24 uint64_t entry_point; 25 uint64_t flags; 26 }; 27 28 /* Structure for handoff parameters to ARM Trusted Firmware (ATF) */ 29 struct xfsbl_atf_handoff_params { 30 uint8_t magic[4]; 31 uint32_t num_entries; 32 struct xfsbl_partition partition[FSBL_MAX_PARTITIONS]; 33 }; 34 35 #define ATF_HANDOFF_PARAMS_MAX_SIZE sizeof(struct xfsbl_atf_handoff_params) 36 37 enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32, 38 entry_point_info_t *bl33, 39 uint64_t atf_handoff_addr); 40 41 #endif /* PLAT_STARTUP_H */ 42