omap_sec_common.h 2.1 KB

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