blob: 4bde93f804d30a7c0b1b217a92b6ebb35b8ec688 [file] [log] [blame]
Andreas Dannenberg6469e1a2016-06-27 09:19:18 -05001/*
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 */
19u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...);
20
Andreas Dannenberg1549e2f2016-06-27 09:19:19 -050021/*
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 */
28int secure_boot_verify_image(void **p_image, size_t *p_size);
29
Daniel Allred5f858eb2016-09-02 00:40:21 -050030/*
31 * Invoke a secure HAL API that allows configuration of the external memory
32 * firewall regions.
33 */
34int 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 */
44int 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 */
52int secure_emif_firewall_lock(void);
53
Andreas Dannenberg6469e1a2016-06-27 09:19:18 -050054#endif /* _OMAP_SEC_COMMON_H_ */