plat_startup.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
  3. * Copyright (c) 2023, Advanced Micro Devices, Inc. All rights reserved.
  4. *
  5. * SPDX-License-Identifier: BSD-3-Clause
  6. */
  7. #ifndef PLAT_STARTUP_H
  8. #define PLAT_STARTUP_H
  9. #include <common/bl_common.h>
  10. /* For Xilinx bootloader XBL handover */
  11. enum xbl_handoff {
  12. XBL_HANDOFF_SUCCESS = 0,
  13. XBL_HANDOFF_NO_STRUCT,
  14. XBL_HANDOFF_INVAL_STRUCT,
  15. XBL_HANDOFF_TOO_MANY_PARTS
  16. };
  17. #define XBL_MAX_PARTITIONS 8U
  18. /* Structure corresponding to each partition entry */
  19. struct xbl_partition {
  20. uint64_t entry_point;
  21. uint64_t flags;
  22. };
  23. /* Structure for handoff parameters to TrustedFirmware-A (TF-A) */
  24. struct xbl_handoff_params {
  25. uint8_t magic[4];
  26. uint32_t num_entries;
  27. struct xbl_partition partition[XBL_MAX_PARTITIONS];
  28. };
  29. #define HANDOFF_PARAMS_MAX_SIZE sizeof(struct xbl_handoff_params)
  30. enum xbl_handoff xbl_handover(entry_point_info_t *bl32,
  31. entry_point_info_t *bl33,
  32. uint64_t handoff_addr);
  33. /* JEDEC Standard Manufacturer's Identification Code and Bank ID JEP106 */
  34. #define JEDEC_XILINX_MFID U(0x49)
  35. #define JEDEC_XILINX_BKID U(0)
  36. #endif /* PLAT_STARTUP_H */