diff options
author | Tom Rini <trini@ti.com> | 2014-07-29 09:41:35 -0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-07-29 09:41:35 -0400 |
commit | 362f16b1e9e94024a511adae9977d145ef942b50 (patch) | |
tree | e0e359fb074493fa8deab65abe0feb4b8fefde3a /arch/arm/include/asm/secure.h | |
parent | 302e609fe653baf1ae3a7573d2f4eafd86ab696b (diff) | |
parent | 9d195a546179bc732aba9eacccf0a9a3db591288 (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Diffstat (limited to 'arch/arm/include/asm/secure.h')
-rw-r--r-- | arch/arm/include/asm/secure.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/include/asm/secure.h b/arch/arm/include/asm/secure.h new file mode 100644 index 0000000000..effdb1858d --- /dev/null +++ b/arch/arm/include/asm/secure.h @@ -0,0 +1,26 @@ +#ifndef __ASM_SECURE_H +#define __ASM_SECURE_H + +#include <config.h> + +#ifdef CONFIG_ARMV7_SECURE_BASE +/* + * Warning, horror ahead. + * + * The target code lives in our "secure ram", but u-boot doesn't know + * that, and has blindly added reloc_off to every relocation + * entry. Gahh. Do the opposite conversion. This hack also prevents + * GCC from generating code veeners, which u-boot doesn't relocate at + * all... + */ +#define secure_ram_addr(_fn) ({ \ + DECLARE_GLOBAL_DATA_PTR; \ + void *__fn = _fn; \ + typeof(_fn) *__tmp = (__fn - gd->reloc_off); \ + __tmp; \ + }) +#else +#define secure_ram_addr(_fn) (_fn) +#endif + +#endif |