1#ifndef __ASM_SECURE_H 2#define __ASM_SECURE_H 3 4#include <config.h> 5 6#ifdef CONFIG_ARMV7_SECURE_BASE 7/* 8 * Warning, horror ahead. 9 * 10 * The target code lives in our "secure ram", but u-boot doesn't know 11 * that, and has blindly added reloc_off to every relocation 12 * entry. Gahh. Do the opposite conversion. This hack also prevents 13 * GCC from generating code veeners, which u-boot doesn't relocate at 14 * all... 15 */ 16#define secure_ram_addr(_fn) ({ \ 17 DECLARE_GLOBAL_DATA_PTR; \ 18 void *__fn = _fn; \ 19 typeof(_fn) *__tmp = (__fn - gd->reloc_off); \ 20 __tmp; \ 21 }) 22#else 23#define secure_ram_addr(_fn) (_fn) 24#endif 25 26#endif 27