2011-06-06 17:56:49 +05:30
/*
* omap - secure . h : OMAP Secure infrastructure header .
*
* Copyright ( C ) 2011 Texas Instruments , Inc .
* Santosh Shilimkar < santosh . shilimkar @ ti . com >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef OMAP_ARCH_OMAP_SECURE_H
# define OMAP_ARCH_OMAP_SECURE_H
/* Monitor error code */
# define API_HAL_RET_VALUE_NS2S_CONVERSION_ERROR 0xFFFFFFFE
# define API_HAL_RET_VALUE_SERVICE_UNKNWON 0xFFFFFFFF
/* HAL API error codes */
# define API_HAL_RET_VALUE_OK 0x00
# define API_HAL_RET_VALUE_FAIL 0x01
/* Secure HAL API flags */
# define FLAG_START_CRITICAL 0x4
# define FLAG_IRQFIQ_MASK 0x3
# define FLAG_IRQ_ENABLE 0x2
# define FLAG_FIQ_ENABLE 0x1
# define NO_FLAG 0x0
2011-06-06 20:28:23 +05:30
/* Maximum Secure memory storage size */
# define OMAP_SECURE_RAM_STORAGE (88 * SZ_1K)
2011-06-06 17:56:49 +05:30
/* Secure low power HAL API index */
# define OMAP4_HAL_SAVESECURERAM_INDEX 0x1a
# define OMAP4_HAL_SAVEHW_INDEX 0x1b
# define OMAP4_HAL_SAVEALL_INDEX 0x1c
# define OMAP4_HAL_SAVEGIC_INDEX 0x1d
2010-06-16 22:19:48 +05:30
/* Secure Monitor mode APIs */
# define OMAP4_MON_SCU_PWR_INDEX 0x108
2011-01-09 02:59:09 +05:30
# define OMAP4_MON_L2X0_DBG_CTRL_INDEX 0x100
# define OMAP4_MON_L2X0_CTRL_INDEX 0x102
# define OMAP4_MON_L2X0_AUXCTRL_INDEX 0x109
# define OMAP4_MON_L2X0_PREFETCH_INDEX 0x113
2010-06-16 22:19:48 +05:30
/* Secure PPA(Primary Protected Application) APIs */
2011-01-09 02:59:09 +05:30
# define OMAP4_PPA_L2_POR_INDEX 0x23
2010-06-16 22:19:48 +05:30
# define OMAP4_PPA_CPU_ACTRL_SMP_INDEX 0x25
# ifndef __ASSEMBLER__
2011-06-06 17:56:49 +05:30
extern u32 omap_secure_dispatcher ( u32 idx , u32 flag , u32 nargs ,
u32 arg1 , u32 arg2 , u32 arg3 , u32 arg4 ) ;
extern u32 omap_smc2 ( u32 id , u32 falg , u32 pargs ) ;
2011-06-06 20:28:23 +05:30
extern phys_addr_t omap_secure_ram_mempool_base ( void ) ;
2012-10-02 00:17:06 +05:30
extern int omap_secure_ram_reserve_memblock ( void ) ;
2011-06-06 17:56:49 +05:30
2012-10-02 00:17:06 +05:30
# ifdef CONFIG_OMAP4_ERRATA_I688
extern int omap_barrier_reserve_memblock ( void ) ;
# else
static inline void omap_barrier_reserve_memblock ( void )
{ }
# endif
2010-06-16 22:19:48 +05:30
# endif /* __ASSEMBLER__ */
2011-06-06 17:56:49 +05:30
# endif /* OMAP_ARCH_OMAP_SECURE_H */