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 12 #include <common.h> 13 14 /* 15 * Invoke secure ROM API on high-security (HS) device variants. It formats 16 * the variable argument list into the format expected by the ROM code before 17 * triggering the actual low-level smc entry. 18 */ 19 u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...); 20 21 /* 22 * Invoke a secure ROM API on high-secure (HS) device variants that can be used 23 * to verify a secure blob by authenticating and optionally decrypting it. The 24 * exact operation performed depends on how the certificate that was embedded 25 * into the blob during the signing/encryption step when the secure blob was 26 * first created. 27 */ 28 int secure_boot_verify_image(void **p_image, size_t *p_size); 29 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 /* 39 * Invoke a secure HAL API on high-secure (HS) device variants that reserves a 40 * region of external memory for secure world use, and protects it using memory 41 * firewalls that prevent public world access. This API is intended to setaside 42 * memory that will be used for a secure world OS/TEE. 43 */ 44 int secure_emif_reserve(void); 45 46 /* 47 * Invoke a secure HAL API to lock the external memory firewall configurations. 48 * After this API is called, none of the HAL APIs for configuring the that 49 * firewall will be usable (calls to those APIs will return failure and have 50 * no effect). 51 */ 52 int secure_emif_firewall_lock(void); 53 54 #endif /* _OMAP_SEC_COMMON_H_ */ 55