-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Santosh Shilimkar
authored and
Kevin Hilman
committed
Dec 8, 2011
1 parent
87004c0
commit 3662b4a
Showing
5 changed files
with
122 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 3c50729b3fa1cd8ca1f347e6caf1081204cf1a7c | ||
refs/heads/master: ba9456ac9c72a7a5d4d59340aba4259351832521 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/* | ||
* 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 | ||
|
||
|
||
/* 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 | ||
|
||
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); | ||
|
||
#endif /* OMAP_ARCH_OMAP_SECURE_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* | ||
* OMAP Secure API infrastructure. | ||
* | ||
* 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. | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/io.h> | ||
|
||
#include <asm/cacheflush.h> | ||
|
||
#include <mach/omap-secure.h> | ||
|
||
/** | ||
* omap_sec_dispatcher: Routine to dispatch low power secure | ||
* service routines | ||
* @idx: The HAL API index | ||
* @flag: The flag indicating criticality of operation | ||
* @nargs: Number of valid arguments out of four. | ||
* @arg1, arg2, arg3 args4: Parameters passed to secure API | ||
* | ||
* Return the non-zero error value on failure. | ||
*/ | ||
u32 omap_secure_dispatcher(u32 idx, u32 flag, u32 nargs, u32 arg1, u32 arg2, | ||
u32 arg3, u32 arg4) | ||
{ | ||
u32 ret; | ||
u32 param[5]; | ||
|
||
param[0] = nargs; | ||
param[1] = arg1; | ||
param[2] = arg2; | ||
param[3] = arg3; | ||
param[4] = arg4; | ||
|
||
/* | ||
* Secure API needs physical address | ||
* pointer for the parameters | ||
*/ | ||
flush_cache_all(); | ||
outer_clean_range(__pa(param), __pa(param + 5)); | ||
ret = omap_smc2(idx, flag, __pa(param)); | ||
|
||
return ret; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters