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