blob: 1733930c93fa4d50eeefe5d183b5c75ef33ea9c6 [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
Claus Pedersen785e66c2022-09-12 22:42:58 +000010#include <common/bl_common.h>
11
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070012/* For FSBL handover */
13enum 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
Venkatesh Yadav Abbarapu31b8ca22022-07-12 09:11:23 +053020#define FSBL_MAX_PARTITIONS 8U
21
22/* Structure corresponding to each partition entry */
23struct xfsbl_partition {
24 uint64_t entry_point;
25 uint64_t flags;
26};
27
28/* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
29struct xfsbl_atf_handoff_params {
30 uint8_t magic[4];
31 uint32_t num_entries;
32 struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
33};
34
Venkatesh Yadav Abbarapu58b24d82022-07-12 09:19:03 +053035#define ATF_HANDOFF_PARAMS_MAX_SIZE sizeof(struct xfsbl_atf_handoff_params)
36
Venkatesh Yadav Abbarapuc70726f2022-05-16 17:44:33 +053037enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
38 entry_point_info_t *bl33,
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070039 uint64_t atf_handoff_addr);
40
41#endif /* PLAT_STARTUP_H */