blob: ae9d52aca06e7c670baa537a307bc200954c818e [file] [log] [blame]
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -07001/*
Michal Simek2a47faa2023-04-14 08:43:51 +02002 * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
Michal Simekc98da1c2023-02-09 10:28:58 +01003 * Copyright (C) 2023, Advanced Micro Devices, Inc. All rights reserved.
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -07004 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#ifndef PLAT_STARTUP_H
9#define PLAT_STARTUP_H
10
Claus Pedersen785e66c2022-09-12 22:42:58 +000011#include <common/bl_common.h>
12
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070013/* For FSBL handover */
14enum fsbl_handoff {
15 FSBL_HANDOFF_SUCCESS = 0,
16 FSBL_HANDOFF_NO_STRUCT,
17 FSBL_HANDOFF_INVAL_STRUCT,
18 FSBL_HANDOFF_TOO_MANY_PARTS
19};
20
Venkatesh Yadav Abbarapu31b8ca22022-07-12 09:11:23 +053021#define FSBL_MAX_PARTITIONS 8U
22
23/* Structure corresponding to each partition entry */
24struct xfsbl_partition {
25 uint64_t entry_point;
26 uint64_t flags;
27};
28
29/* Structure for handoff parameters to ARM Trusted Firmware (ATF) */
30struct xfsbl_atf_handoff_params {
31 uint8_t magic[4];
32 uint32_t num_entries;
33 struct xfsbl_partition partition[FSBL_MAX_PARTITIONS];
34};
35
Venkatesh Yadav Abbarapu58b24d82022-07-12 09:19:03 +053036#define ATF_HANDOFF_PARAMS_MAX_SIZE sizeof(struct xfsbl_atf_handoff_params)
37
Venkatesh Yadav Abbarapuc70726f2022-05-16 17:44:33 +053038enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32,
39 entry_point_info_t *bl33,
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070040 uint64_t atf_handoff_addr);
41
Michal Simekc98da1c2023-02-09 10:28:58 +010042/* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */
43#define JEDEC_XILINX_MFID U(0x49)
44#define JEDEC_XILINX_BKID U(0)
45
Venkatesh Yadav Abbarapu1463dd52020-01-07 03:25:16 -070046#endif /* PLAT_STARTUP_H */