omap_sec_common.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * (C) Copyright 2016
  3. * Texas Instruments, <www.ti.com>
  4. *
  5. * Andreas Dannenberg <dannenberg@ti.com>
  6. *
  7. * SPDX-License-Identifier: GPL-2.0+
  8. */
  9. #ifndef _OMAP_SEC_COMMON_H_
  10. #define _OMAP_SEC_COMMON_H_
  11. #include <common.h>
  12. /*
  13. * Invoke secure ROM API on high-security (HS) device variants. It formats
  14. * the variable argument list into the format expected by the ROM code before
  15. * triggering the actual low-level smc entry.
  16. */
  17. u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...);
  18. /*
  19. * Invoke a secure ROM API on high-secure (HS) device variants that can be used
  20. * to verify a secure blob by authenticating and optionally decrypting it. The
  21. * exact operation performed depends on how the certificate that was embedded
  22. * into the blob during the signing/encryption step when the secure blob was
  23. * first created.
  24. */
  25. int secure_boot_verify_image(void **p_image, size_t *p_size);
  26. /*
  27. * Invoke a secure HAL API that allows configuration of the external memory
  28. * firewall regions.
  29. */
  30. int secure_emif_firewall_setup(uint8_t region_num, uint32_t start_addr,
  31. uint32_t size, uint32_t access_perm,
  32. uint32_t initiator_perm);
  33. /*
  34. * Invoke a secure HAL API on high-secure (HS) device variants that reserves a
  35. * region of external memory for secure world use, and protects it using memory
  36. * firewalls that prevent public world access. This API is intended to setaside
  37. * memory that will be used for a secure world OS/TEE.
  38. */
  39. int secure_emif_reserve(void);
  40. /*
  41. * Invoke a secure HAL API to lock the external memory firewall configurations.
  42. * After this API is called, none of the HAL APIs for configuring the that
  43. * firewall will be usable (calls to those APIs will return failure and have
  44. * no effect).
  45. */
  46. int secure_emif_firewall_lock(void);
  47. /*
  48. * Invoke a secure HAL API to authenticate and install a Trusted Execution
  49. * Environment (TEE) image.
  50. */
  51. int secure_tee_install(u32 tee_image);
  52. #endif /* _OMAP_SEC_COMMON_H_ */