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 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 */ 16u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...); 17 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 */ 25int secure_boot_verify_image(void **p_image, size_t *p_size); 26 27/* 28 * Return the start of secure reserved RAM, if a default start address has 29 * not been configured then return a region at the end of the external DRAM. 30 */ 31u32 get_sec_mem_start(void); 32 33/* 34 * Invoke a secure HAL API that allows configuration of the external memory 35 * firewall regions. 36 */ 37int secure_emif_firewall_setup(uint8_t region_num, uint32_t start_addr, 38 uint32_t size, uint32_t access_perm, 39 uint32_t initiator_perm); 40 41/* 42 * Invoke a secure HAL API on high-secure (HS) device variants that reserves a 43 * region of external memory for secure world use, and protects it using memory 44 * firewalls that prevent public world access. This API is intended to setaside 45 * memory that will be used for a secure world OS/TEE. 46 */ 47int secure_emif_reserve(void); 48 49/* 50 * Invoke a secure HAL API to lock the external memory firewall configurations. 51 * After this API is called, none of the HAL APIs for configuring the that 52 * firewall will be usable (calls to those APIs will return failure and have 53 * no effect). 54 */ 55int secure_emif_firewall_lock(void); 56 57/* 58 * Invoke a secure HAL API to authenticate and install a Trusted Execution 59 * Environment (TEE) image. 60 */ 61int secure_tee_install(u32 tee_image); 62 63#endif /* _OMAP_SEC_COMMON_H_ */ 64