blob: 5ccb774f96737be448a0ea23b6a02644e82ea7e8 [file] [log] [blame]
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -07001/*
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/* For FSBL handover */
11enum fsbl_handoff {
12 FSBL_HANDOFF_SUCCESS = 0,
13 FSBL_HANDOFF_NO_STRUCT,
14 FSBL_HANDOFF_INVAL_STRUCT,
15 FSBL_HANDOFF_TOO_MANY_PARTS
16};
17
Venkatesh Yadav Abbarapu31b8ca22022-07-12 09:11:23 +053018#define FSBL_MAX_PARTITIONS 8U
19
20/* Structure corresponding to each partition entry */
21struct xfsbl_partition {
22 uint64_t entry_point;
23 uint64_t flags;
24};
25
26/* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
27struct xfsbl_atf_handoff_params {
28 uint8_t magic[4];
29 uint32_t num_entries;
30 struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
31};
32
Venkatesh Yadav Abbarapu58b24d82022-07-12 09:19:03 +053033#define ATF_HANDOFF_PARAMS_MAX_SIZE sizeof(struct xfsbl_atf_handoff_params)
34
Venkatesh Yadav Abbarapuc70726f2022-05-16 17:44:33 +053035enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
36 entry_point_info_t *bl33,
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070037 uint64_t atf_handoff_addr);
38
39#endif /* PLAT_STARTUP_H */