2011-06-06 16:26:49 +04:00
/*
* omap - secure . h : OMAP Secure infrastructure header .
*
* Copyright ( C ) 2011 Texas Instruments , Inc .
* Santosh Shilimkar < santosh . shilimkar @ ti . com >
2013-09-18 23:43:56 +04:00
* Copyright ( C ) 2012 Ivaylo Dimitrov < freemangordon @ abv . bg >
* Copyright ( C ) 2013 Pali Rohár < pali . rohar @ gmail . com >
2011-06-06 16:26:49 +04:00
*
* 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 18:58:23 +04:00
/* Maximum Secure memory storage size */
# define OMAP_SECURE_RAM_STORAGE (88 * SZ_1K)
2011-06-06 16:26:49 +04:00
/* 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 20:49:48 +04:00
/* Secure Monitor mode APIs */
# define OMAP4_MON_SCU_PWR_INDEX 0x108
2011-01-09 00:29:09 +03:00
# 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 20:49:48 +04:00
2013-10-10 11:43:48 +04:00
# define OMAP5_DRA7_MON_SET_CNTFRQ_INDEX 0x109
2013-02-08 15:37:31 +04:00
# define OMAP5_MON_AMBA_IF_INDEX 0x108
2013-10-10 11:43:48 +04:00
2010-06-16 20:49:48 +04:00
/* Secure PPA(Primary Protected Application) APIs */
2011-01-09 00:29:09 +03:00
# define OMAP4_PPA_L2_POR_INDEX 0x23
2010-06-16 20:49:48 +04:00
# define OMAP4_PPA_CPU_ACTRL_SMP_INDEX 0x25
2013-09-18 23:43:56 +04:00
/* Secure RX-51 PPA (Primary Protected Application) APIs */
# define RX51_PPA_HWRNG 29
# define RX51_PPA_L2_INVAL 40
# define RX51_PPA_WRITE_ACR 42
2010-06-16 20:49:48 +04:00
# ifndef __ASSEMBLER__
2011-06-06 16:26:49 +04:00
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 ) ;
2013-09-08 11:43:29 +04:00
extern u32 omap_smc3 ( u32 id , u32 process , u32 flag , u32 pargs ) ;
2011-06-06 18:58:23 +04:00
extern phys_addr_t omap_secure_ram_mempool_base ( void ) ;
2012-10-01 22:47:06 +04:00
extern int omap_secure_ram_reserve_memblock ( void ) ;
2011-06-06 16:26:49 +04:00
2013-09-18 23:43:56 +04:00
extern u32 rx51_secure_dispatcher ( u32 idx , u32 process , u32 flag , u32 nargs ,
u32 arg1 , u32 arg2 , u32 arg3 , u32 arg4 ) ;
extern u32 rx51_secure_update_aux_cr ( u32 set_bits , u32 clear_bits ) ;
2013-09-20 17:25:07 +04:00
extern u32 rx51_secure_rng_call ( u32 ptr , u32 count , u32 flag ) ;
2013-09-18 23:43:56 +04:00
2013-11-19 01:56:48 +04:00
# ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
2013-10-10 11:43:48 +04:00
void set_cntfreq ( void ) ;
2013-11-19 01:56:48 +04:00
# else
static inline void set_cntfreq ( void )
{
}
# endif
2010-06-16 20:49:48 +04:00
# endif /* __ASSEMBLER__ */
2011-06-06 16:26:49 +04:00
# endif /* OMAP_ARCH_OMAP_SECURE_H */