arm: omap5: secure API for EMIF memory reservations

Create a few public APIs which rely on secure world ROM/HAL
APIs for their implementation. These are intended to be used
to reserve a portion of the EMIF memory and configure hardware
firewalls around that region to prevent public code from
manipulating or interfering with that memory.

Signed-off-by: Daniel Allred <d-allred@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Daniel Allred
2016-09-02 00:40:21 -05:00
committed by Tom Rini
parent 4c854b6199
commit 6d132b2b09
3 changed files with 151 additions and 0 deletions

View File

@@ -27,4 +27,28 @@ u32 secure_rom_call(u32 service, u32 proc_id, u32 flag, ...);
*/
int secure_boot_verify_image(void **p_image, size_t *p_size);
/*
* Invoke a secure HAL API that allows configuration of the external memory
* firewall regions.
*/
int secure_emif_firewall_setup(uint8_t region_num, uint32_t start_addr,
uint32_t size, uint32_t access_perm,
uint32_t initiator_perm);
/*
* Invoke a secure HAL API on high-secure (HS) device variants that reserves a
* region of external memory for secure world use, and protects it using memory
* firewalls that prevent public world access. This API is intended to setaside
* memory that will be used for a secure world OS/TEE.
*/
int secure_emif_reserve(void);
/*
* Invoke a secure HAL API to lock the external memory firewall configurations.
* After this API is called, none of the HAL APIs for configuring the that
* firewall will be usable (calls to those APIs will return failure and have
* no effect).
*/
int secure_emif_firewall_lock(void);
#endif /* _OMAP_SEC_COMMON_H_ */