14d9f825aSVenkatesh Yadav Abbarapu /* 24d9f825aSVenkatesh Yadav Abbarapu * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved. 3*8f9ba3f3SMichal Simek * Copyright (C) 2023, Advanced Micro Devices, Inc. All rights reserved. 44d9f825aSVenkatesh Yadav Abbarapu * 54d9f825aSVenkatesh Yadav Abbarapu * SPDX-License-Identifier: BSD-3-Clause 64d9f825aSVenkatesh Yadav Abbarapu */ 74d9f825aSVenkatesh Yadav Abbarapu 84d9f825aSVenkatesh Yadav Abbarapu #ifndef PLAT_STARTUP_H 94d9f825aSVenkatesh Yadav Abbarapu #define PLAT_STARTUP_H 104d9f825aSVenkatesh Yadav Abbarapu 11885e2683SClaus Pedersen #include <common/bl_common.h> 12885e2683SClaus Pedersen 134d9f825aSVenkatesh Yadav Abbarapu /* For FSBL handover */ 144d9f825aSVenkatesh Yadav Abbarapu enum fsbl_handoff { 154d9f825aSVenkatesh Yadav Abbarapu FSBL_HANDOFF_SUCCESS = 0, 164d9f825aSVenkatesh Yadav Abbarapu FSBL_HANDOFF_NO_STRUCT, 174d9f825aSVenkatesh Yadav Abbarapu FSBL_HANDOFF_INVAL_STRUCT, 184d9f825aSVenkatesh Yadav Abbarapu FSBL_HANDOFF_TOO_MANY_PARTS 194d9f825aSVenkatesh Yadav Abbarapu }; 204d9f825aSVenkatesh Yadav Abbarapu 21237a7de1SVenkatesh Yadav Abbarapu #define FSBL_MAX_PARTITIONS 8U 22237a7de1SVenkatesh Yadav Abbarapu 23237a7de1SVenkatesh Yadav Abbarapu /* Structure corresponding to each partition entry */ 24237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_partition { 25237a7de1SVenkatesh Yadav Abbarapu uint64_t entry_point; 26237a7de1SVenkatesh Yadav Abbarapu uint64_t flags; 27237a7de1SVenkatesh Yadav Abbarapu }; 28237a7de1SVenkatesh Yadav Abbarapu 29237a7de1SVenkatesh Yadav Abbarapu /* Structure for handoff parameters to ARM Trusted Firmware (ATF) */ 30237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_atf_handoff_params { 31237a7de1SVenkatesh Yadav Abbarapu uint8_t magic[4]; 32237a7de1SVenkatesh Yadav Abbarapu uint32_t num_entries; 33237a7de1SVenkatesh Yadav Abbarapu struct xfsbl_partition partition[FSBL_MAX_PARTITIONS]; 34237a7de1SVenkatesh Yadav Abbarapu }; 35237a7de1SVenkatesh Yadav Abbarapu 36205c7ad4SVenkatesh Yadav Abbarapu #define ATF_HANDOFF_PARAMS_MAX_SIZE sizeof(struct xfsbl_atf_handoff_params) 37205c7ad4SVenkatesh Yadav Abbarapu 38944e7ea9SVenkatesh Yadav Abbarapu enum fsbl_handoff fsbl_atf_handover(entry_point_info_t *bl32, 39944e7ea9SVenkatesh Yadav Abbarapu entry_point_info_t *bl33, 404d9f825aSVenkatesh Yadav Abbarapu uint64_t atf_handoff_addr); 414d9f825aSVenkatesh Yadav Abbarapu 42*8f9ba3f3SMichal Simek /* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */ 43*8f9ba3f3SMichal Simek #define JEDEC_XILINX_MFID U(0x49) 44*8f9ba3f3SMichal Simek #define JEDEC_XILINX_BKID U(0) 45*8f9ba3f3SMichal Simek 464d9f825aSVenkatesh Yadav Abbarapu #endif /* PLAT_STARTUP_H */ 47