mtk_plat_common.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #ifndef MTK_PLAT_COMMON_H
  7. #define MTK_PLAT_COMMON_H
  8. #include <stdint.h>
  9. #include <common/bl_common.h>
  10. #include <common/param_header.h>
  11. /*******************************************************************************
  12. * Function and variable prototypes
  13. ******************************************************************************/
  14. #define SMC32_PARAM_MASK (0xFFFFFFFF)
  15. #define JEDEC_MTK_BKID U(4)
  16. #define JEDEC_MTK_MFID U(0x26)
  17. struct mtk_bl31_params {
  18. param_header_t h;
  19. image_info_t *bl31_image_info;
  20. entry_point_info_t *bl32_ep_info;
  21. image_info_t *bl32_image_info;
  22. entry_point_info_t *bl33_ep_info;
  23. image_info_t *bl33_image_info;
  24. };
  25. /* Declarations for mtk_plat_common.c */
  26. uint32_t plat_get_spsr_for_bl32_entry(void);
  27. uint32_t plat_get_spsr_for_bl33_entry(void);
  28. void clean_top_32b_of_param(uint32_t smc_fid, u_register_t *x1,
  29. u_register_t *x2,
  30. u_register_t *x3,
  31. u_register_t *x4);
  32. void bl31_prepare_kernel_entry(uint64_t k32_64);
  33. void enable_ns_access_to_cpuectlr(void);
  34. void boot_to_kernel(uint64_t x1, uint64_t x2, uint64_t x3, uint64_t x4);
  35. uint64_t get_kernel_info_pc(void);
  36. uint64_t get_kernel_info_r0(void);
  37. uint64_t get_kernel_info_r1(void);
  38. uint64_t get_kernel_info_r2(void);
  39. extern struct atf_arg_t gteearg;
  40. #endif /* MTK_PLAT_COMMON_H */