linux/arch/arm/mach-omap2/omap-secure.h
<<
>>
Prefs
   1/*
   2 * omap-secure.h: OMAP Secure infrastructure header.
   3 *
   4 * Copyright (C) 2011 Texas Instruments, Inc.
   5 *      Santosh Shilimkar <santosh.shilimkar@ti.com>
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2 as
   9 * published by the Free Software Foundation.
  10 */
  11#ifndef OMAP_ARCH_OMAP_SECURE_H
  12#define OMAP_ARCH_OMAP_SECURE_H
  13
  14/* Monitor error code */
  15#define  API_HAL_RET_VALUE_NS2S_CONVERSION_ERROR        0xFFFFFFFE
  16#define  API_HAL_RET_VALUE_SERVICE_UNKNWON              0xFFFFFFFF
  17
  18/* HAL API error codes */
  19#define  API_HAL_RET_VALUE_OK           0x00
  20#define  API_HAL_RET_VALUE_FAIL         0x01
  21
  22/* Secure HAL API flags */
  23#define FLAG_START_CRITICAL             0x4
  24#define FLAG_IRQFIQ_MASK                0x3
  25#define FLAG_IRQ_ENABLE                 0x2
  26#define FLAG_FIQ_ENABLE                 0x1
  27#define NO_FLAG                         0x0
  28
  29/* Maximum Secure memory storage size */
  30#define OMAP_SECURE_RAM_STORAGE (88 * SZ_1K)
  31
  32/* Secure low power HAL API index */
  33#define OMAP4_HAL_SAVESECURERAM_INDEX   0x1a
  34#define OMAP4_HAL_SAVEHW_INDEX          0x1b
  35#define OMAP4_HAL_SAVEALL_INDEX         0x1c
  36#define OMAP4_HAL_SAVEGIC_INDEX         0x1d
  37
  38/* Secure Monitor mode APIs */
  39#define OMAP4_MON_SCU_PWR_INDEX         0x108
  40#define OMAP4_MON_L2X0_DBG_CTRL_INDEX   0x100
  41#define OMAP4_MON_L2X0_CTRL_INDEX       0x102
  42#define OMAP4_MON_L2X0_AUXCTRL_INDEX    0x109
  43#define OMAP4_MON_L2X0_PREFETCH_INDEX   0x113
  44
  45/* Secure PPA(Primary Protected Application) APIs */
  46#define OMAP4_PPA_L2_POR_INDEX          0x23
  47#define OMAP4_PPA_CPU_ACTRL_SMP_INDEX   0x25
  48
  49#ifndef __ASSEMBLER__
  50
  51extern u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs,
  52                                u32 arg1, u32 arg2, u32 arg3, u32 arg4);
  53extern u32 omap_smc2(u32 id, u32 falg, u32 pargs);
  54extern phys_addr_t omap_secure_ram_mempool_base(void);
  55extern int omap_secure_ram_reserve_memblock(void);
  56
  57#ifdef CONFIG_OMAP4_ERRATA_I688
  58extern int omap_barrier_reserve_memblock(void);
  59#else
  60static inline void omap_barrier_reserve_memblock(void)
  61{ }
  62#endif
  63#endif /* __ASSEMBLER__ */
  64#endif /* OMAP_ARCH_OMAP_SECURE_H */
  65